From: Jonathan Wakely Date: Wed, 25 Oct 2017 00:27:10 +0000 (+0100) Subject: PR libstdc++/82706 fix test for case where operations succeed X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e921c7e5a670ccc758bf58d82065d224a98671d9;p=gcc.git PR libstdc++/82706 fix test for case where operations succeed PR libstdc++/82706 * testsuite/27_io/filesystem/operations/permissions.cc: Fix test. From-SVN: r254067 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 4bcfbb25d25..dadec85c093 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2017-10-25 Jonathan Wakely + + PR libstdc++/82706 + * testsuite/27_io/filesystem/operations/permissions.cc: Fix test. + 2017-10-24 François Dumont * testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add diff --git a/libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc b/libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc index 97b7a7874f7..e190e886230 100644 --- a/libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc +++ b/libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc @@ -86,9 +86,10 @@ test03() create_symlink(f.path, p); std::error_code ec = make_error_code(std::errc::no_such_file_or_directory); - std::error_code ec2 = make_error_code(std::errc::invalid_argument); permissions(p, perms::owner_all, perm_options::replace|perm_options::nofollow, ec); + bool caught = false; + std::error_code ec2; try { permissions(p, perms::owner_all, @@ -96,11 +97,18 @@ test03() } catch (const std::filesystem::filesystem_error& ex) { + caught = true; ec2 = ex.code(); VERIFY( ex.path1() == p ); } // Both calls should succeed, or both should fail with same error: - VERIFY( ec == ec2 ); + if (ec) + { + VERIFY( caught ); + VERIFY( ec == ec2 ); + } + else + VERIFY( !caught ); remove(p); } @@ -114,9 +122,9 @@ test04() create_symlink(__gnu_test::nonexistent_path(), p); std::error_code ec = make_error_code(std::errc::no_such_file_or_directory); - std::error_code ec2 = make_error_code(std::errc::invalid_argument); permissions(p, perms::owner_all, ec); VERIFY( ec ); + std::error_code ec2; try { permissions(p, perms::owner_all);