Browse Source
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.debian/1.8.y

10 changed files with 267 additions and 22 deletions
@ -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; |
|||
} |
@ -1,10 +1,52 @@ |
|||
#!/bin/sh |
|||
set -e |
|||
|
|||
echo "Compiling the tests ..." |
|||
make |
|||
echo "Running all testcases ..." |
|||
PATH=$(pwd)/../../build/bin |
|||
for testapp in $(/bin/ls ${PATH}/*_libapt_test) |
|||
LDPATH=$(pwd)/../../build/bin |
|||
EXT="_libapt_test" |
|||
for testapp in $(ls ${LDPATH}/*$EXT) |
|||
do |
|||
echo -n "Testing with \033[1;35m$(/usr/bin/basename ${testapp})\033[0m ... " |
|||
LD_LIBRARY_PATH=${PATH} ${testapp} && echo "\033[1;32mOKAY\033[0m" || echo "\033[1;31mFAILED\033[0m" |
|||
name=$(basename ${testapp}) |
|||
tmppath="" |
|||
|
|||
if [ $name = "GetListOfFilesInDir${EXT}" ]; then |
|||
# TODO: very-low: move env creation to the actual test-app |
|||
echo "Prepare Testarea for \033[1;35m$name\033[0m ..." |
|||
tmppath=$(mktemp -d) |
|||
touch "${tmppath}/anormalfile" \ |
|||
"${tmppath}/01yet-anothernormalfile" \ |
|||
"${tmppath}/anormalapt.conf" \ |
|||
"${tmppath}/01yet-anotherapt.conf" \ |
|||
"${tmppath}/anormalapt.list" \ |
|||
"${tmppath}/01yet-anotherapt.list" \ |
|||
"${tmppath}/wrongextension.wron" \ |
|||
"${tmppath}/wrong-extension.wron" \ |
|||
"${tmppath}/strangefile." \ |
|||
"${tmppath}/s.t.r.a.n.g.e.f.i.l.e" \ |
|||
"${tmppath}/.hiddenfile" \ |
|||
"${tmppath}/.hiddenfile.conf" \ |
|||
"${tmppath}/.hiddenfile.list" \ |
|||
"${tmppath}/multi..dot" \ |
|||
"${tmppath}/multi.dot.conf" \ |
|||
"${tmppath}/multi.dot.list" \ |
|||
"${tmppath}/disabledfile.disabled" \ |
|||
"${tmppath}/disabledfile.conf.disabled" \ |
|||
"${tmppath}/disabledfile.list.disabled" \ |
|||
"${tmppath}/invälid.conf" \ |
|||
"${tmppath}/invalíd" \ |
|||
"${tmppath}/01invalíd" |
|||
ln -s "${tmppath}/anormalfile" "${tmppath}/linkedfile.list" |
|||
ln -s "${tmppath}/non-existing-file" "${tmppath}/brokenlink.list" |
|||
fi |
|||
|
|||
echo -n "Testing with \033[1;35m${name}\033[0m ... " |
|||
LD_LIBRARY_PATH=${LDPATH} ${testapp} ${tmppath} && echo "\033[1;32mOKAY\033[0m" || echo "\033[1;31mFAILED\033[0m" |
|||
|
|||
if [ -n "$tmppath" -a -d "$tmppath" ]; then |
|||
echo "Cleanup Testarea after \033[1;35m$name\033[0m ..." |
|||
rm -rf "$tmppath" |
|||
fi |
|||
|
|||
done |
|||
|
Loading…
Reference in new issue