summaryrefslogtreecommitdiff
path: root/test/libapt
diff options
context:
space:
mode:
authorMichael Vogt <mvo@debian.org>2014-01-24 23:00:57 +0100
committerMichael Vogt <mvo@debian.org>2014-01-24 23:00:57 +0100
commit34f7c486b10559997849c15c6b51577ec3f96bc1 (patch)
tree84a6a8c8a4c02c5d9b7d9fe1d52472c5e6eb7dec /test/libapt
parent1aef66d5e150c608276fabdf1c2d2aaca9c45b7f (diff)
parent2fd754cfe9a92fe85f4dd56447c70112b64b003e (diff)
Merge remote-tracking branch 'ajt/better-pdiffs-dk' into debian/sid
Diffstat (limited to 'test/libapt')
-rw-r--r--test/libapt/makefile6
-rw-r--r--test/libapt/sourcelist_test.cc53
2 files changed, 59 insertions, 0 deletions
diff --git a/test/libapt/makefile b/test/libapt/makefile
index 73403b24c..a8e053d6e 100644
--- a/test/libapt/makefile
+++ b/test/libapt/makefile
@@ -111,3 +111,9 @@ SLIBS = -lapt-pkg
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
index 000000000..701eeeaa7
--- /dev/null
+++ b/test/libapt/sourcelist_test.cc
@@ -0,0 +1,53 @@
+#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"
+ "URI: http://ftp.debian.org/debian\n"
+ "Suites: stable\n"
+ "Sections: 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"
+ ;
+
+ FileFd fd;
+ atexit(remove_tmpfile);
+ 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;
+}