Index: libcxx/test/std/input.output/filesystems/class.path/path.member/path.modifiers/make_preferred.pass.cpp =================================================================== --- libcxx/test/std/input.output/filesystems/class.path/path.member/path.modifiers/make_preferred.pass.cpp +++ libcxx/test/std/input.output/filesystems/class.path/path.member/path.modifiers/make_preferred.pass.cpp @@ -26,28 +26,35 @@ struct MakePreferredTestcase { const char* value; + const char* preferred_win; }; const MakePreferredTestcase TestCases[] = { - {""} - , {"hello_world"} - , {"/"} - , {"/foo/bar/baz/"} - , {"\\"} - , {"\\foo\\bar\\baz\\"} - , {"\\foo\\/bar\\/baz\\"} + {"", nullptr} + , {"hello_world", nullptr} + , {"/", "\\"} + , {"/foo/bar/baz/", "\\foo\\bar\\baz\\"} + , {"\\", nullptr} + , {"\\foo\\bar\\baz\\", nullptr} + , {"\\foo\\/bar\\/baz\\", "\\foo\\\\bar\\\\baz\\"} }; int main(int, char**) { // This operation is an identity operation on linux. + // On windows, compare with preferred_win, if set. using namespace fs; for (auto const & TC : TestCases) { path p(TC.value); assert(p == TC.value); path& Ref = (p.make_preferred()); - assert(p.native() == TC.value); +#ifdef _WIN32 + std::string s(TC.preferred_win ? TC.preferred_win : TC.value); +#else + std::string s(TC.value); +#endif + assert(p.string() == s); assert(&Ref == &p); }