Author: ericwf Date: Fri Jun 17 15:54:25 2016 New Revision: 273048 URL: http://llvm.org/viewvc/llvm-project?rev=273048&view=rev Log: Respect the processes umask in the create_directory test
Modified: libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp Modified: libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp?rev=273048&r1=273047&r2=273048&view=diff ============================================================================== --- libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp (original) +++ libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp Fri Jun 17 15:54:25 2016 @@ -26,9 +26,18 @@ #include "rapid-cxx-test.hpp" #include "filesystem_test_helper.hpp" +#include <sys/types.h> +#include <sys/stat.h> + using namespace std::experimental::filesystem; namespace fs = std::experimental::filesystem; +fs::perms read_umask() { + mode_t old_mask = umask(0); + umask(old_mask); // reset the mask to the old value. + return static_cast<fs::perms>(old_mask); +} + TEST_SUITE(filesystem_create_directory_test_suite) TEST_CASE(test_signatures) @@ -68,15 +77,8 @@ TEST_CASE(create_directory_one_level) TEST_CHECK(is_directory(dir)); auto st = status(dir); - perms owner_perms = perms::owner_all; - perms gperms = perms::group_all; - perms other_perms = perms::others_read | perms::others_exec; -#if defined(__APPLE__) || defined(__FreeBSD__) - gperms = perms::group_read | perms::group_exec; -#endif - TEST_CHECK((st.permissions() & perms::owner_all) == owner_perms); - TEST_CHECK((st.permissions() & perms::group_all) == gperms); - TEST_CHECK((st.permissions() & perms::others_all) == other_perms); + const perms expect_perms = perms::all & ~(read_umask()); + TEST_CHECK((st.permissions() & perms::all) == expect_perms); } TEST_CASE(create_directory_multi_level) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits