]> git.saurik.com Git - apt.git/blob - test/testdeb.cc
* merged lp:~evfool/apt/fix641673
[apt.git] / test / testdeb.cc
1 #include <apt-pkg/dirstream.h>
2 #include <apt-pkg/debfile.h>
3 #include <apt-pkg/error.h>
4 #include <apt-pkg/extracttar.h>
5
6 class NullStream : public pkgDirStream
7 {
8 public:
9 virtual bool DoItem(Item &Itm,int &Fd) {return true;};
10 };
11
12 bool Test(const char *File)
13 {
14 FileFd Fd(File,FileFd::ReadOnly);
15 debDebFile Deb(Fd);
16
17 if (_error->PendingError() == true)
18 return false;
19
20 // Get the archive member and positition the file
21 const ARArchive::Member *Member = Deb.GotoMember("data.tar.gz");
22 if (Member == 0)
23 return false;
24
25 // Extract it.
26 ExtractTar Tar(Deb.GetFile(),Member->Size, "gzip");
27 NullStream Dir;
28 if (Tar.Go(Dir) == false)
29 return false;
30
31 return true;
32 }
33
34 int main(int argc, const char *argv[])
35 {
36 Test(argv[1]);
37 _error->DumpErrors();
38 return 0;
39 }