X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FConsole%2FConfigFile.test.cc;h=8cb3e302d0a96e8a5cde2355034a24be10fa438f;hb=941ca33da6ee01d78c07fa6b514de10da1ef3948;hp=8369e66c64ba9c11ee4b8019136de9d3e3742370;hpb=7d62c38fca85add3e5a04f0518d6f1417fa6ca69;p=senf.git diff --git a/senf/Utils/Console/ConfigFile.test.cc b/senf/Utils/Console/ConfigFile.test.cc index 8369e66..8cb3e30 100644 --- a/senf/Utils/Console/ConfigFile.test.cc +++ b/senf/Utils/Console/ConfigFile.test.cc @@ -62,6 +62,16 @@ namespace { } +#define SENF_CHECK_THROW_SYSTEMEXCEPTION( expr, errorNumber) \ + try { \ + BOOST_TEST_PASSPOINT(); \ + expr; \ + BOOST_ERROR( "senf::SystemException is expected"); \ + } catch( senf::SystemException const & ex ) { \ + BOOST_CHECK( ex.anyOf( errorNumber)); \ + } \ + + SENF_AUTO_UNIT_TEST(configFile) { namespace fty = senf::console::factory; @@ -93,9 +103,18 @@ SENF_AUTO_UNIT_TEST(configFile) { senf::console::ConfigFile cfg ("i don't exist"); + SENF_CHECK_THROW_SYSTEMEXCEPTION( + cfg.parse(), ENOENT); cfg.ignoreMissing(); SENF_CHECK_NO_THROW( cfg.parse() ); } + { + if (getuid() != 0 && boost::filesystem::exists("/etc/shadow")) { + senf::console::ConfigFile cfg ("/etc/shadow"); + SENF_CHECK_THROW_SYSTEMEXCEPTION( + cfg.parse(), EACCES); + } + } } SENF_AUTO_UNIT_TEST(configFileRestrict)