diff options
author | David Kalnischkies <david@kalnischkies.de> | 2016-07-19 18:05:13 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2016-07-19 18:05:13 +0200 |
commit | bbd8308cc01941e51e2cbcf88168a5560abe6042 (patch) | |
tree | 1f82c7a91ed12c584bc7fa8f91e31397d37d69d5 /test/libapt | |
parent | 87f99f6fa701d2557811134380c1f232cf07a422 (diff) |
ensure Cnf::FindFile doesn't return files below /dev/null
Very unlikely, but if the parent is /dev/null, the child empty and the
grandchild a value we returned /dev/null/value which doesn't exist, so
hardly a problem, but for best operability we should be consistent in
our work and return /dev/null always.
Diffstat (limited to 'test/libapt')
-rw-r--r-- | test/libapt/configuration_test.cc | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/libapt/configuration_test.cc b/test/libapt/configuration_test.cc index 9fb580a01..bdc17cbf4 100644 --- a/test/libapt/configuration_test.cc +++ b/test/libapt/configuration_test.cc @@ -112,6 +112,34 @@ TEST(ConfigurationTest,DirsAndFiles) EXPECT_EQ("/rootdir/dev/null", Cnf.FindDir("Dir::State")); EXPECT_EQ("/rootdir/dev/null", Cnf.FindDir("Dir::State::lists")); } +TEST(ConfigurationTest,DevNullInPaths) +{ + Configuration Cnf; + EXPECT_EQ("", Cnf.FindFile("Dir")); + EXPECT_EQ("", Cnf.FindFile("Dir::State")); + EXPECT_EQ("", Cnf.FindFile("Dir::State::status")); + Cnf.Set("Dir::State", "/dev/null"); + EXPECT_EQ("/dev/null", Cnf.FindFile("Dir::State")); + Cnf.Set("Dir", "/"); + Cnf.Set("Dir::State::status", "status"); + EXPECT_EQ("/dev/null", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/dev/null", Cnf.FindFile("Dir::State::status")); + Cnf.Set("Dir::State", ""); + EXPECT_EQ("", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/status", Cnf.FindFile("Dir::State::status")); + Cnf.Set("Dir", "/dev/null"); + EXPECT_EQ("/dev/null", Cnf.FindFile("Dir")); + EXPECT_EQ("", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/dev/null", Cnf.FindFile("Dir::State::status")); + Cnf.Set("Dir", "/rootdir"); + EXPECT_EQ("/rootdir", Cnf.FindFile("Dir")); + EXPECT_EQ("", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/rootdir/status", Cnf.FindFile("Dir::State::status")); + Cnf.Set("Dir::State::status", "/foo/status"); + EXPECT_EQ("/rootdir", Cnf.FindFile("Dir")); + EXPECT_EQ("", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/foo/status", Cnf.FindFile("Dir::State::status")); +} TEST(ConfigurationTest,Vector) { Configuration Cnf; |