| 18 | |
| 19 | #ifdef __cpp_lib_filesystem |
| 20 | TEST(std_test, path) { |
| 21 | using std::filesystem::path; |
| 22 | EXPECT_EQ(fmt::format("{}", path("/usr/bin")), "/usr/bin"); |
| 23 | |
| 24 | // see #4303 |
| 25 | const path p = "/usr/bin"; |
| 26 | EXPECT_EQ(fmt::format("{}", p), "/usr/bin"); |
| 27 | |
| 28 | EXPECT_EQ(fmt::format("{:?}", path("/usr/bin")), "\"/usr/bin\""); |
| 29 | EXPECT_EQ(fmt::format("{:8}", path("foo")), "foo "); |
| 30 | |
| 31 | EXPECT_EQ(fmt::format("{}", path("foo\"bar")), "foo\"bar"); |
| 32 | EXPECT_EQ(fmt::format("{:?}", path("foo\"bar")), "\"foo\\\"bar\""); |
| 33 | |
| 34 | EXPECT_EQ(fmt::format("{:g}", path("/usr/bin")), "/usr/bin"); |
| 35 | # ifdef _WIN32 |
| 36 | EXPECT_EQ(fmt::format("{}", path("C:\\foo")), "C:\\foo"); |
| 37 | EXPECT_EQ(fmt::format("{:g}", path("C:\\foo")), "C:/foo"); |
| 38 | |
| 39 | EXPECT_EQ(fmt::format("{}", path(L"\x0428\x0447\x0443\x0447\x044B\x043D\x0448" |
| 40 | L"\x0447\x044B\x043D\x0430")), |
| 41 | "Шчучыншчына"); |
| 42 | EXPECT_EQ(fmt::format("{}", path(L"\xD800")), "\xED\xA0\x80"); |
| 43 | EXPECT_EQ(fmt::format("{}", path(L"[\xD800]")), "[\xED\xA0\x80]"); |
| 44 | EXPECT_EQ(fmt::format("{}", path(L"[\xD83D\xDE00]")), "[\xF0\x9F\x98\x80]"); |
| 45 | EXPECT_EQ(fmt::format("{}", path(L"[\xD83D\xD83D\xDE00]")), |
| 46 | "[\xED\xA0\xBD\xF0\x9F\x98\x80]"); |
| 47 | EXPECT_EQ(fmt::format("{:?}", path(L"\xD800")), "\"\\ud800\""); |
| 48 | # endif |
| 49 | } |
| 50 | |
| 51 | // Intentionally delayed include to test #4303 |
| 52 | # include "fmt/ranges.h" |
nothing calls this directly
no test coverage detected