[libcxx-commits] [PATCH] D89532: [libcxx] [test] Fix path.modifiers/make_preferred for windows
Martin Storsjö via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Oct 16 03:33:24 PDT 2020
mstorsjo created this revision.
mstorsjo added a reviewer: libc++.
Herald added a project: libc++.
Herald added 1 blocking reviewer(s): libc++.
mstorsjo requested review of this revision.
Use p.string() instead of p.native() for comparing with the expected value.
On posix file systems, the make_preferred operation is an identity operation, but on windows it isn't. Add a separate field in the test case table with the expected return value on windows.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D89532
Files:
libcxx/test/std/input.output/filesystems/class.path/path.member/path.modifiers/make_preferred.pass.cpp
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);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D89532.298580.patch
Type: text/x-patch
Size: 1457 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20201016/6d34dec1/attachment-0001.bin>
More information about the libcxx-commits
mailing list