This page collects the results of running the test suite from my ghc::filesystem
on
std::filesystem
implementations of various compiler suites. Shown are only issues that
trigger a fail or a warning, compared to the behaviour of ghc::filesystem
.
Title | clang-7.1 | clang-8.0 | clang-9.0.1 | gcc-8.3 | gcc-9.2 | msvc-19.16 | msvc-19.23 |
---|---|---|---|---|---|---|---|
[fs.path.generic] | /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:363: warning: This implementation doesn't support path("//host").has_root_name() == true [C++17 30.12.8.1 par. 4] on this platform, tests based on this are skipped. (Should be okay.) |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:363: warning: This implementation doesn't support path("//host").has_root_name() == true [C++17 30.12.8.1 par. 4] on this platform, tests based on this are skipped. (Should be okay.) |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:363: warning: This implementation doesn't support path("//host").has_root_name() == true [C++17 30.12.8.1 par. 4] on this platform, tests based on this are skipped. (Should be okay.) |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:363: warning: This implementation doesn't support path("//host").has_root_name() == true [C++17 30.12.8.1 par. 4] on this platform, tests based on this are skipped. (Should be okay.) |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:363: warning: This implementation doesn't support path("//host").has_root_name() == true [C++17 30.12.8.1 par. 4] on this platform, tests based on this are skipped. (Should be okay.) |
||
[fs.path.native.obs] | /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:574: FAILED: CHECK( fs::u8path("\xc3\xa4/\xe2\x82\xac\xf0\x9d\x84\x9e").u16string() == std::u16string(u"\u00E4/\u20AC\U0001D11E") ) due to unexpected exception with messages: This check might fail on GCC8 (with "Illegal byte sequence") due to not detecting the valid unicode codepoint U+1D11E. filesystem error: Cannot convert character sequence: Invalid or incomplete multibyte or wide character |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:570: FAILED: CHECK( fs::u8path("\xc3\xa4/\xe2\x82\xac").wstring() == std::wstring(L"ä/€") ) due to unexpected exception with message: filesystem error: Cannot convert character sequence: Invalid or incomplete multibyte or wide character |
|||||
[fs.path.generic.obs] | /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:599: FAILED: CHECK( fs::u8path("\xc3\xa4/\xe2\x82\xac").generic_wstring() == std::wstring(L"ä/€") ) due to unexpected exception with message: filesystem error: Cannot convert character sequence: Invalid or incomplete multibyte or wide character |
||||||
[fs.path.itr] | C:\projects\filesystem\test\filesystem_test.cpp(965): FAILED: CHECK( "/,foo,bar" == iterateResult(fs::path("///foo/bar")) ) with expansion: "/,foo,bar" == "///,foo,bar" C:\projects\filesystem\test\filesystem_test.cpp(982): FAILED: CHECK( "bar,foo,/" == reverseIterateResult(fs::path("///foo/bar")) ) with expansion: "bar,foo,/" == "bar,foo,///" |
C:\projects\filesystem\test\filesystem_test.cpp(965): FAILED: CHECK( "/,foo,bar" == iterateResult(fs::path("///foo/bar")) ) with expansion: "/,foo,bar" == "///,foo,bar" C:\projects\filesystem\test\filesystem_test.cpp(982): FAILED: CHECK( "bar,foo,/" == reverseIterateResult(fs::path("///foo/bar")) ) with expansion: "bar,foo,/" == "bar,foo,///" |
|||||
[fs.path.io] | C:\projects\filesystem\test\filesystem_test.cpp(1052): FAILED: CHECK( os.str() == "\"\\\\root\\\\foo bar\"" ) with expansion: ""/root/foo bar"" == ""\\root\\foo bar"" C:\projects\filesystem\test\filesystem_test.cpp(1061): FAILED: CHECK( os.str() == "\"\\\\root\\\\foo\\\"bar\"" ) with expansion: ""/root/foo\"bar"" == ""\\root\\foo\"bar"" |
C:\projects\filesystem\test\filesystem_test.cpp(1052): FAILED: CHECK( os.str() == "\"\\\\root\\\\foo bar\"" ) with expansion: ""/root/foo bar"" == ""\\root\\foo bar"" C:\projects\filesystem\test\filesystem_test.cpp(1061): FAILED: CHECK( os.str() == "\"\\\\root\\\\foo\\\"bar\"" ) with expansion: ""/root/foo\"bar"" == ""\\root\\foo\"bar"" |
|||||
[fs.dir.entry] | /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1191: FAILED: CHECK_THROWS_AS( none.refresh(), fs::filesystem_error ) because no exception was thrown where one was expected: /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1195: FAILED: CHECK_THROWS_AS( de.assign(""), fs::filesystem_error ) because no exception was thrown where one was expected: /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1242: FAILED: CHECK_THROWS_AS( de.replace_filename("bar"), fs::filesystem_error ) because no exception was thrown where one was expected: |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1191: FAILED: CHECK_THROWS_AS( none.refresh(), fs::filesystem_error ) because no exception was thrown where one was expected: /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1195: FAILED: CHECK_THROWS_AS( de.assign(""), fs::filesystem_error ) because no exception was thrown where one was expected: /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1242: FAILED: CHECK_THROWS_AS( de.replace_filename("bar"), fs::filesystem_error ) because no exception was thrown where one was expected: |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1191: FAILED: CHECK_THROWS_AS( none.refresh(), fs::filesystem_error ) because no exception was thrown where one was expected: /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1195: FAILED: CHECK_THROWS_AS( de.assign(""), fs::filesystem_error ) because no exception was thrown where one was expected: /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1242: FAILED: CHECK_THROWS_AS( de.replace_filename("bar"), fs::filesystem_error ) because no exception was thrown where one was expected: |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1191: FAILED: CHECK_THROWS_AS( none.refresh(), fs::filesystem_error ) because no exception was thrown where one was expected: /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1195: FAILED: CHECK_THROWS_AS( de.assign(""), fs::filesystem_error ) because no exception was thrown where one was expected: /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1242: FAILED: CHECK_THROWS_AS( de.replace_filename("bar"), fs::filesystem_error ) because no exception was thrown where one was expected: |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1191: FAILED: CHECK_THROWS_AS( none.refresh(), fs::filesystem_error ) because no exception was thrown where one was expected: /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1195: FAILED: CHECK_THROWS_AS( de.assign(""), fs::filesystem_error ) because no exception was thrown where one was expected: /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1242: FAILED: CHECK_THROWS_AS( de.replace_filename("bar"), fs::filesystem_error ) because no exception was thrown where one was expected: |
C:\projects\filesystem\test\filesystem_test.cpp(1195): FAILED: CHECK_THROWS_AS( de.assign(""), fs::filesystem_error ) because no exception was thrown where one was expected: C:\projects\filesystem\test\filesystem_test.cpp(1198): FAILED: CHECK( ec ) with expansion: system:0 C:\projects\filesystem\test\filesystem_test.cpp(1242): FAILED: CHECK_THROWS_AS( de.replace_filename("bar"), fs::filesystem_error ) because no exception was thrown where one was expected: C:\projects\filesystem\test\filesystem_test.cpp(1246): FAILED: CHECK( ec ) with expansion: system:0 C:\projects\filesystem\test\filesystem_test.cpp(1261): FAILED: CHECK( de2none.status().type() == fs::file_type::not_found ) with expansion: 2 == 1 C:\projects\filesystem\test\filesystem_test.cpp(1262): FAILED: CHECK( de2none.status(ec).type() == fs::file_type::not_found ) with expansion: 2 == 1 C:\projects\filesystem\test\filesystem_test.cpp(1263): FAILED: CHECK( ec ) with expansion: system:0 |
|
[fs.op.absolute] | /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1503: FAILED: CHECK( fs::absolute("") == fs::current_path() / "" ) due to unexpected exception with message: filesystem error: cannot make absolute path: Invalid argument /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1509: FAILED: CHECK( fs::absolute("", ec) == fs::current_path() / "" ) with expansion: "" == "/home/travis/build/gulrak/filesystem/build/" /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1510: FAILED: CHECK( !ec ) with expansion: false |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1503: FAILED: CHECK( fs::absolute("") == fs::current_path() / "" ) due to unexpected exception with message: filesystem error: cannot make absolute path: Invalid argument [] /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1509: FAILED: CHECK( fs::absolute("", ec) == fs::current_path() / "" ) with expansion: "" == "/home/travis/build/gulrak/filesystem/build/" /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1510: FAILED: CHECK( !ec ) with expansion: false |
C:\projects\filesystem\test\filesystem_test.cpp(1503): FAILED: CHECK( fs::absolute("") == fs::current_path() / "" ) with expansion: "" == "C:\projects\filesystem\build\" C:\projects\filesystem\test\filesystem_test.cpp(1505): FAILED: CHECK( fs::absolute(".") == fs::current_path() / "." ) with expansion: "C:\projects\filesystem\build" == "C:\projects\filesystem\build\." C:\projects\filesystem\test\filesystem_test.cpp(1509): FAILED: CHECK( fs::absolute("", ec) == fs::current_path() / "" ) with expansion: "" == "C:\projects\filesystem\build\" |
C:\projects\filesystem\test\filesystem_test.cpp(1503): FAILED: CHECK( fs::absolute("") == fs::current_path() / "" ) with expansion: "" == "C:\projects\filesystem\build\" C:\projects\filesystem\test\filesystem_test.cpp(1505): FAILED: CHECK( fs::absolute(".") == fs::current_path() / "." ) with expansion: "C:\projects\filesystem\build" == "C:\projects\filesystem\build\." C:\projects\filesystem\test\filesystem_test.cpp(1509): FAILED: CHECK( fs::absolute("", ec) == fs::current_path() / "" ) with expansion: "" == "C:\projects\filesystem\build\" |
|||
[fs.op.canonical] | /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1517: FAILED: CHECK_THROWS_AS( fs::canonical(""), fs::filesystem_error ) because no exception was thrown where one was expected: /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1520: FAILED: CHECK( fs::canonical("", ec) == "" ) with expansion: "/home/travis/build/gulrak/filesystem/build" == "" /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1521: FAILED: CHECK( ec ) with expansion: system:0 |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1517: FAILED: CHECK_THROWS_AS( fs::canonical(""), fs::filesystem_error ) because no exception was thrown where one was expected: /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1520: FAILED: CHECK( fs::canonical("", ec) == "" ) with expansion: "/home/travis/build/gulrak/filesystem/build" == "" /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1521: FAILED: CHECK( ec ) with expansion: system:0 |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1517: FAILED: CHECK_THROWS_AS( fs::canonical(""), fs::filesystem_error ) because no exception was thrown where one was expected: /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1520: FAILED: CHECK( fs::canonical("", ec) == "" ) with expansion: "/home/travis/build/gulrak/filesystem/build" == "" /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1521: FAILED: CHECK( ec ) with expansion: system:0 |
C:\projects\filesystem\test\filesystem_test.cpp(1517): FAILED: CHECK_THROWS_AS( fs::canonical(""), fs::filesystem_error ) because no exception was thrown where one was expected: C:\projects\filesystem\test\filesystem_test.cpp(1521): FAILED: CHECK( ec ) with expansion: system:0 |
C:\projects\filesystem\test\filesystem_test.cpp(1517): FAILED: CHECK_THROWS_AS( fs::canonical(""), fs::filesystem_error ) because no exception was thrown where one was expected: C:\projects\filesystem\test\filesystem_test.cpp(1521): FAILED: CHECK( ec ) with expansion: system:0 |
||
[fs.op.create_directories] | C:\projects\filesystem\test\filesystem_test.cpp(1709): FAILED: CHECK_THROWS_AS( fs::create_directories(p), fs::filesystem_error ) because no exception was thrown where one was expected: This test expects conformance with P1164R1. (implemented by GCC with issue #86910.) C:\projects\filesystem\test\filesystem_test.cpp(1714): FAILED: CHECK( ec ) with expansion: system:0 with message: This test expects conformance with P1164R1. (implemented by GCC with issue #86910.) |
||||||
[fs.op.create_directory] | /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1756: FAILED: REQUIRE_THROWS_AS( fs::create_directory(p), fs::filesystem_error ) because no exception was thrown where one was expected: This test expects conformance with P1164R1. (implemented by GCC with issue #86910.) |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1756: FAILED: REQUIRE_THROWS_AS( fs::create_directory(p), fs::filesystem_error ) because no exception was thrown where one was expected: This test expects conformance with P1164R1. (implemented by GCC with issue #86910.) |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1756: FAILED: REQUIRE_THROWS_AS( fs::create_directory(p), fs::filesystem_error ) because no exception was thrown where one was expected: This test expects conformance with P1164R1. (implemented by GCC with issue #86910.) |
C:\projects\filesystem\test\filesystem_test.cpp(1756): FAILED: REQUIRE_THROWS_AS( fs::create_directory(p), fs::filesystem_error ) because no exception was thrown where one was expected: This test expects conformance with P1164R1. (implemented by GCC with issue #86910.) |
|||
[fs.op.equivalent] | /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1854: FAILED: REQUIRE_THROWS_AS( fs::equivalent("foo", "foo3"), fs::filesystem_error ) because no exception was thrown where one was expected: This test expects LWG #2937 result conformance. |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:1854: FAILED: REQUIRE_THROWS_AS( fs::equivalent("foo", "foo3"), fs::filesystem_error ) because no exception was thrown where one was expected: This test expects LWG #2937 result conformance. |
|||||
[fs.op.weakly_canonical] | /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:2600: FAILED: CHECK( fs::weakly_canonical("") == "." ) with expansion: "/home/travis/build/gulrak/filesystem/build" == "." with message: This might fail on std::implementations that return fs::current_path() for fs::canonical("") |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:2600: FAILED: CHECK( fs::weakly_canonical("") == "." ) with expansion: "/home/travis/build/gulrak/filesystem/build" == "." with message: This might fail on std::implementations that return fs::current_path() for fs::canonical("") |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:2600: FAILED: CHECK( fs::weakly_canonical("") == "." ) with expansion: "/home/travis/build/gulrak/filesystem/build" == "." with message: This might fail on std::implementations that return fs::current_path() for fs::canonical("") |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:2600: FAILED: CHECK( fs::weakly_canonical("") == "." ) with expansion: "" == "." with message: This might fail on std::implementations that return fs::current_path() for fs::canonical("") /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:2607: FAILED: CHECK( fs::weakly_canonical("foo/bar") == fs::current_path() / "foo/bar" ) with expansion: "foo/bar" == "/home/travis/build/gulrak/filesystem/build/foo/bar" with message: This might fail on std::implementations that return fs::current_path() for fs::canonical("") /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:2608: FAILED: CHECK( fs::weakly_canonical("foo/./bar") == fs::current_path() / "foo/bar" ) with expansion: "foo/bar" == "/home/travis/build/gulrak/filesystem/build/foo/bar" with message: This might fail on std::implementations that return fs::current_path() for fs::canonical("") /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:2609: FAILED: CHECK( fs::weakly_canonical("foo/../bar") == fs::current_path() / "bar" ) with expansion: "bar" == "/home/travis/build/gulrak/filesystem/build/bar" with message: This might fail on std::implementations that return fs::current_path() for fs::canonical("") |
/home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:2600: FAILED: CHECK( fs::weakly_canonical("") == "." ) with expansion: "" == "." with message: This might fail on std::implementations that return fs::current_path() for fs::canonical("") /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:2607: FAILED: CHECK( fs::weakly_canonical("foo/bar") == fs::current_path() / "foo/bar" ) with expansion: "foo/bar" == "/home/travis/build/gulrak/filesystem/build/foo/bar" with message: This might fail on std::implementations that return fs::current_path() for fs::canonical("") /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:2608: FAILED: CHECK( fs::weakly_canonical("foo/./bar") == fs::current_path() / "foo/bar" ) with expansion: "foo/bar" == "/home/travis/build/gulrak/filesystem/build/foo/bar" with message: This might fail on std::implementations that return fs::current_path() for fs::canonical("") /home/travis/build/gulrak/filesystem/test/filesystem_test.cpp:2609: FAILED: CHECK( fs::weakly_canonical("foo/../bar") == fs::current_path() / "bar" ) with expansion: "bar" == "/home/travis/build/gulrak/filesystem/build/bar" with message: This might fail on std::implementations that return fs::current_path() for fs::canonical("") |