]> git.saurik.com Git - apt.git/blobdiff - test/libapt/sourcelist_test.cc
Merge remote-tracking branch 'mvo/feature/apt-update-info' into debian/sid
[apt.git] / test / libapt / sourcelist_test.cc
index 6a625770fc7862751b1dfed1948039a3a65a9225..eb2d76c43d71d01883a41629c30d3be269470699 100644 (file)
@@ -1,52 +1,43 @@
+#include <config.h>
+
 #include <apt-pkg/sourcelist.h>
-#include <apt-pkg/tagfile.h>
+#include <apt-pkg/fileutl.h>
 
-#include "assert.h"
+#include <string>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
-char *tempfile = NULL;
-int tempfile_fd = -1;
+#include <gtest/gtest.h>
 
-void remove_tmpfile(void)
-{
-   if (tempfile_fd > 0)
-      close(tempfile_fd);
-   if (tempfile != NULL) {
-      unlink(tempfile);
-      free(tempfile);
-   }
-}
+#include "file-helpers.h"
 
-int main(int argc, char *argv[])
-{
-   const char contents[] = ""
-      "Type: deb\n"
-      "URI: http://ftp.debian.org/debian\n"
-      "Suite: stable\n"
-      "Section: main\n"
-      "Comment: Some random string\n"
-      " that can be very long\n"
-      "\n"
-      "Type: deb\n"
-      "URI: http://ftp.debian.org/debian\n"
-      "Suite: unstable\n"
-      "Section: main non-free\n"
-      ;
+class SourceList : public pkgSourceList {
+   public:
+      using pkgSourceList::ParseFileDeb822;
+};
 
+TEST(SourceListTest,ParseFileDeb822)
+{
    FileFd fd;
-   tempfile = strdup("apt-test.XXXXXXXX");
-   tempfile_fd = mkstemp(tempfile);
-
-   /* (Re-)Open (as FileFd), write and seek to start of the temp file */
-   equals(fd.OpenDescriptor(tempfile_fd, FileFd::ReadWrite), true);
-   equals(fd.Write(contents, strlen(contents)), true);
-   equals(fd.Seek(0), true);
+   char * tempfile;
+   createTemporaryFile("parsefiledeb822", fd, &tempfile,
+      "Types: deb\n"
+      "URIs: http://ftp.debian.org/debian\n"
+      "Suites: stable\n"
+      "Sections: main\n"
+      "Description: short\n"
+      " long description that can be very long\n"
+      "\n"
+      "Types: deb\n"
+      "URIs: http://ftp.debian.org/debian\n"
+      "Suites: unstable\n"
+      "Sections: main non-free\n");
+   fd.Close();
 
-   pkgSourceList sources(tempfile);
-   equals(sources.size(), 2);
+   SourceList sources;
+   EXPECT_EQ(2, sources.ParseFileDeb822(tempfile));
+   EXPECT_EQ(2, sources.size());
 
-   /* clean up handled by atexit handler, so just return here */
-   return 0;
+   unlink(tempfile);
 }