X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FConsole%2FConfigFile.test.cc;h=692fad62a71462604c281529e9bec5cb31dff1fa;hb=d80f142699130075658d6448c90adf71338f2c5a;hp=5d424c01256617c954e0b9d162baeab57bd7ee26;hpb=f13780e9e4da7df981d6f6542fbdc714beb34765;p=senf.git diff --git a/senf/Utils/Console/ConfigFile.test.cc b/senf/Utils/Console/ConfigFile.test.cc index 5d424c0..692fad6 100644 --- a/senf/Utils/Console/ConfigFile.test.cc +++ b/senf/Utils/Console/ConfigFile.test.cc @@ -62,6 +62,17 @@ namespace { } +#define SENF_CHECK_THROW_SYSTEMEXCEPTION( expr, errorNumber, msg) \ + try { \ + BOOST_TEST_PASSPOINT(); \ + expr; \ + BOOST_ERROR( "senf::SystemException is expected"); \ + } catch( senf::SystemException const & ex ) { \ + BOOST_CHECK( ex.anyOf( errorNumber)); \ + BOOST_CHECK( ex.message().find(msg) != std::string::npos); \ + } \ + + SENF_AUTO_UNIT_TEST(configFile) { namespace fty = senf::console::factory; @@ -93,9 +104,17 @@ SENF_AUTO_UNIT_TEST(configFile) { senf::console::ConfigFile cfg ("i don't exist"); + SENF_CHECK_THROW_SYSTEMEXCEPTION(cfg.parse(), ENOENT, "i don't exist"); cfg.ignoreMissing(); SENF_CHECK_NO_THROW( cfg.parse() ); } + { + std::string etc_shaddow ("/etc/shadow"); + if (getuid() != 0 && boost::filesystem::exists(etc_shaddow)) { + senf::console::ConfigFile cfg (etc_shaddow); + SENF_CHECK_THROW_SYSTEMEXCEPTION( cfg.parse(), EACCES, etc_shaddow); + } + } } SENF_AUTO_UNIT_TEST(configFileRestrict) @@ -150,7 +169,7 @@ SENF_AUTO_UNIT_TEST(configFileSkipGroup) senf::console::ScopedDirectory<> dir2; senf::console::root().add("dir2", dir2); - dir2.mkdir("dir3").add("fun2", fty::Command(&fun2)); + dir2.add("dir3",fty::Directory()).add("fun2", fty::Command(&fun2)); dir2.add("fun1", fty::Command(&fun1)); { @@ -193,12 +212,12 @@ SENF_AUTO_UNIT_TEST(configRestrictAndLink) senf::console::ScopedDirectory<> dir2; dir1.add("dir2", dir2); - dir2.mkdir("dir3").add("fun2", fty::Command(&fun2)); + dir2.add("dir3",fty::Directory()).add("fun2", fty::Command(&fun2)); dir2.add("fun1", fty::Command(&fun1)); senf::console::ScopedDirectory<> dir4; senf::console::root().add("dir4", dir4); - dir4.link("link1", dir2); + dir4.add("link1", fty::Link(dir2)); { senf::console::ConfigFile cfg (cfgf.name(), dir4);