diff options
author | Michael Vogt <mvo@ubuntu.com> | 2014-04-01 12:28:56 +0200 |
---|---|---|
committer | Michael Vogt <mvo@ubuntu.com> | 2014-04-01 12:28:56 +0200 |
commit | be20eef52da4b7f361333ea70a8d705a98ae779e (patch) | |
tree | 4177a110ce6b1335fc4b85d5e53b298a65661f39 /test/libapt/sourcelist_test.cc | |
parent | a555cf8be53d8b5557f004ecbde8482a169b79f3 (diff) | |
parent | 21b3eac8f9ab8e12b43fa8998a5aa5465f29adc5 (diff) |
Merge remote-tracking branch 'upstream/debian/sid' into feature/apt-manpage
Conflicts:
cmdline/apt.cc
Diffstat (limited to 'test/libapt/sourcelist_test.cc')
-rw-r--r-- | test/libapt/sourcelist_test.cc | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test/libapt/sourcelist_test.cc b/test/libapt/sourcelist_test.cc new file mode 100644 index 000000000..71aa54f1e --- /dev/null +++ b/test/libapt/sourcelist_test.cc @@ -0,0 +1,60 @@ +#include <config.h> + +#include <apt-pkg/configuration.h> +#include <apt-pkg/sourcelist.h> +#include <apt-pkg/fileutl.h> + +#include <string> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +#include "assert.h" + +char *tempfile = NULL; +int tempfile_fd = -1; + +static void remove_tmpfile(void) +{ + if (tempfile_fd > 0) + close(tempfile_fd); + if (tempfile != NULL) { + unlink(tempfile); + free(tempfile); + } +} + +int main() +{ + _config->Set("APT::Sources::Use-Deb822", true); + + const char contents[] = "" + "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" + ; + + 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; +} |