]> git.saurik.com Git - apt.git/commitdiff
add unittest for new sourceslist parser as well
authorMichael Vogt <mvo@debian.org>
Mon, 2 Dec 2013 07:21:49 +0000 (08:21 +0100)
committerMichael Vogt <mvo@debian.org>
Thu, 5 Dec 2013 14:30:56 +0000 (15:30 +0100)
test/libapt/makefile
test/libapt/sourcelist_test.cc [new file with mode: 0644]

index 73403b24c0abc03f89fdf7593ae117c142bdf582..a8e053d6e3f5934139aa421cb706264a0abd8dbf 100644 (file)
@@ -111,3 +111,9 @@ SLIBS = -lapt-pkg
 SOURCE = tagfile_test.cc
 include $(PROGRAM_H)
 
 SOURCE = tagfile_test.cc
 include $(PROGRAM_H)
 
+# test sourcelist
+PROGRAM = SourceList${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = sourcelist_test.cc
+include $(PROGRAM_H)
+
diff --git a/test/libapt/sourcelist_test.cc b/test/libapt/sourcelist_test.cc
new file mode 100644 (file)
index 0000000..6e83d08
--- /dev/null
@@ -0,0 +1,52 @@
+#include <apt-pkg/sourcelist.h>
+#include <apt-pkg/tagfile.h>
+
+#include "assert.h"
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+char *tempfile = NULL;
+int tempfile_fd = -1;
+
+void remove_tmpfile(void)
+{
+   if (tempfile_fd > 0)
+      close(tempfile_fd);
+   if (tempfile != NULL) {
+      unlink(tempfile);
+      free(tempfile);
+   }
+}
+
+int main(int argc, char *argv[])
+{
+   const char contents[] = ""
+      "Type: deb\n"
+      "URL: http://ftp.debian.org/debian\n"
+      "Dist: stable\n"
+      "Section: main\n"
+      "Comment: Some random string\n"
+      " that can be very long\n"
+      "\n"
+      "Type: deb\n"
+      "URL: http://ftp.debian.org/debian\n"
+      "Dist: unstable\n"
+      "Section: main non-free\n"
+      ;
+
+   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);
+
+   pkgSourceList sources(tempfile);
+   equals(sources.size(), 2);
+
+   /* clean up handled by atexit handler, so just return here */
+   return 0;
+}