summaryrefslogtreecommitdiff
path: root/test/libapt/getlistoffilesindir_test.cc
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2010-01-16 23:09:42 +0100
committerDavid Kalnischkies <kalnischkies@gmail.com>2010-01-16 23:09:42 +0100
commite29a6bb14dcc004d174ad8502b76623139fbee06 (patch)
tree246376ac5f6e5ce15c819086a5a13f27a20176eb /test/libapt/getlistoffilesindir_test.cc
parentdaee881bf82d23197d991227fa0ab36b918b4323 (diff)
Fix the newly introduced method GetListOfFilesInDir to not accept every
file if no extension is enforced (= restore old behaviour). (Closes: #565213) This commit includes also: * apt-pkg/policy.cc: - accept also partfiles with "pref" file extension as valid * apt-pkg/contrib/configuration.cc: - accept also partfiles with "conf" file extension as valid * doc/apt.conf.5.xml: - reorder description and split out syntax - add partfile name convention (Closes: #558348) * doc/apt_preferences.conf.5.xml: - describe partfile name convention also here And a lovely test application of course.
Diffstat (limited to 'test/libapt/getlistoffilesindir_test.cc')
-rw-r--r--test/libapt/getlistoffilesindir_test.cc82
1 files changed, 82 insertions, 0 deletions
diff --git a/test/libapt/getlistoffilesindir_test.cc b/test/libapt/getlistoffilesindir_test.cc
new file mode 100644
index 000000000..ed8d2dad6
--- /dev/null
+++ b/test/libapt/getlistoffilesindir_test.cc
@@ -0,0 +1,82 @@
+#include <apt-pkg/fileutl.h>
+
+#include "assert.h"
+#include <string>
+#include <vector>
+
+#include <stdio.h>
+#include <iostream>
+
+// simple helper to quickly output a vector of strings
+void dumpVector(std::vector<std::string> vec) {
+ for (std::vector<std::string>::const_iterator v = vec.begin();
+ v != vec.end(); v++)
+ std::cout << *v << std::endl;
+}
+
+#define P(x) string(argv[1]).append("/").append(x)
+
+int main(int argc,char *argv[])
+{
+ if (argc != 2) {
+ std::cout << "One parameter expected - given " << argc << std::endl;
+ return 100;
+ }
+
+ // Files with no extension
+ std::vector<std::string> files = GetListOfFilesInDir(argv[1], "", true);
+ equals(files.size(), 2);
+ equals(files[0], P("01yet-anothernormalfile"));
+ equals(files[1], P("anormalfile"));
+
+ // Files with no extension - should be the same as above
+ files = GetListOfFilesInDir(argv[1], "", true, true);
+ equals(files.size(), 2);
+ equals(files[0], P("01yet-anothernormalfile"));
+ equals(files[1], P("anormalfile"));
+
+ // Files with impossible extension
+ files = GetListOfFilesInDir(argv[1], "impossible", true);
+ equals(files.size(), 0);
+
+ // Files with impossible or no extension
+ files = GetListOfFilesInDir(argv[1], "impossible", true, true);
+ equals(files.size(), 2);
+ equals(files[0], P("01yet-anothernormalfile"));
+ equals(files[1], P("anormalfile"));
+
+ // Files with list extension - nothing more
+ files = GetListOfFilesInDir(argv[1], "list", true);
+ equals(files.size(), 4);
+ equals(files[0], P("01yet-anotherapt.list"));
+ equals(files[1], P("anormalapt.list"));
+ equals(files[2], P("linkedfile.list"));
+ equals(files[3], P("multi.dot.list"));
+
+ // Files with conf or no extension
+ files = GetListOfFilesInDir(argv[1], "conf", true, true);
+ equals(files.size(), 5);
+ equals(files[0], P("01yet-anotherapt.conf"));
+ equals(files[1], P("01yet-anothernormalfile"));
+ equals(files[2], P("anormalapt.conf"));
+ equals(files[3], P("anormalfile"));
+ equals(files[4], P("multi.dot.conf"));
+
+ // Files with disabled extension - nothing more
+ files = GetListOfFilesInDir(argv[1], "disabled", true);
+ equals(files.size(), 3);
+ equals(files[0], P("disabledfile.conf.disabled"));
+ equals(files[1], P("disabledfile.disabled"));
+ equals(files[2], P("disabledfile.list.disabled"));
+
+ // Files with disabled or no extension
+ files = GetListOfFilesInDir(argv[1], "disabled", true, true);
+ equals(files.size(), 5);
+ equals(files[0], P("01yet-anothernormalfile"));
+ equals(files[1], P("anormalfile"));
+ equals(files[2], P("disabledfile.conf.disabled"));
+ equals(files[3], P("disabledfile.disabled"));
+ equals(files[4], P("disabledfile.list.disabled"));
+
+ return 0;
+}