@@ -58,13 +58,16 @@ BOOST_AUTO_TEST_CASE(normalizeCLIPathForVFS_absolute_path)
58
58
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /a/b" , resolveSymlinks), " /a/b" );
59
59
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /a/b/" , resolveSymlinks), " /a/b/" );
60
60
61
- BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /a/./b/" , resolveSymlinks), " /a/b/" );
62
- BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /a/../a/b/" , resolveSymlinks), " /a/b/" );
63
61
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /a/b/c/.." , resolveSymlinks), " /a/b" );
64
62
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /a/b/c/../" , resolveSymlinks), " /a/b/" );
63
+ BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /a/./b/" , resolveSymlinks), " /a/b/" );
64
+ #if !defined(_WIN32) || BOOST_VERSION > 107600
65
+ // This throws on Windows due to a bug in Boost: https://github.com/boostorg/filesystem/issues/201
66
+ BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /a/../a/b/" , resolveSymlinks), " /a/b/" );
65
67
66
68
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /a/b/c/../../.." , resolveSymlinks), " /" );
67
69
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /a/b/c/../../../" , resolveSymlinks), " /" );
70
+ #endif
68
71
}
69
72
}
70
73
@@ -108,16 +111,20 @@ BOOST_AUTO_TEST_CASE(normalizeCLIPathForVFS_relative_path)
108
111
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ./a/b" , resolveSymlinks), expectedPrefix / " x/y/z/a/b" );
109
112
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ././a/b" , resolveSymlinks), expectedPrefix / " x/y/z/a/b" );
110
113
111
- BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" a/./b/" , resolveSymlinks), expectedPrefix / " x/y/z/a/b/" );
114
+
115
+ #if !defined(_WIN32) || BOOST_VERSION > 107600
116
+ // This throws on Windows due to a bug in Boost: https://github.com/boostorg/filesystem/issues/201
117
+ BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ../../a/.././../p/../q/../a/b" , resolveSymlinks), expectedPrefix / " a/b" );
118
+
112
119
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" a/../a/b/" , resolveSymlinks), expectedPrefix / " x/y/z/a/b/" );
120
+ #endif
121
+ BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" a/./b/" , resolveSymlinks), expectedPrefix / " x/y/z/a/b/" );
113
122
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" a/b/c/.." , resolveSymlinks), expectedPrefix / " x/y/z/a/b" );
114
123
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" a/b/c/../" , resolveSymlinks), expectedPrefix / " x/y/z/a/b/" );
115
124
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" a/b/c/..//" , resolveSymlinks), expectedPrefix / " x/y/z/a/b/" );
116
125
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" a/b/c/../.." , resolveSymlinks), expectedPrefix / " x/y/z/a" );
117
126
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" a/b/c/../../" , resolveSymlinks), expectedPrefix / " x/y/z/a/" );
118
127
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" a/b/c/../..//" , resolveSymlinks), expectedPrefix / " x/y/z/a/" );
119
-
120
- BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ../../a/.././../p/../q/../a/b" , resolveSymlinks), expectedPrefix / " a/b" );
121
128
}
122
129
}
123
130
@@ -233,26 +240,31 @@ BOOST_AUTO_TEST_CASE(normalizeCLIPathForVFS_path_beyond_root)
233
240
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /../." , resolveSymlinks), " /" );
234
241
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /../.." , resolveSymlinks), " /" );
235
242
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /../a" , resolveSymlinks), " /a" );
243
+ BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /../../a" , resolveSymlinks), " /a" );
244
+ #if !defined(_WIN32) || BOOST_VERSION > 107600
245
+ // This throws on Windows due to a bug in Boost: https://github.com/boostorg/filesystem/issues/201
236
246
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /../a/.." , resolveSymlinks), " /" );
237
247
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /../a/../.." , resolveSymlinks), " /" );
238
- BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /../../a" , resolveSymlinks), " /a" );
239
248
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /../../a/.." , resolveSymlinks), " /" );
240
249
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /../../a/../.." , resolveSymlinks), " /" );
241
250
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /a/../.." , resolveSymlinks), " /" );
242
251
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" /a/../../b/../.." , resolveSymlinks), " /" );
252
+ #endif
243
253
244
254
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" .." , resolveSymlinks), " /" );
245
255
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ../" , resolveSymlinks), " /" );
246
256
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ../." , resolveSymlinks), " /" );
247
257
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ../.." , resolveSymlinks), " /" );
248
258
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ../a" , resolveSymlinks), " /a" );
259
+ BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ../../a" , resolveSymlinks), " /a" );
260
+ #if !defined(_WIN32) || BOOST_VERSION > 107600
249
261
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ../a/.." , resolveSymlinks), " /" );
250
262
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ../a/../.." , resolveSymlinks), " /" );
251
- BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ../../a" , resolveSymlinks), " /a" );
252
263
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ../../a/.." , resolveSymlinks), " /" );
253
264
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" ../../a/../.." , resolveSymlinks), " /" );
254
265
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" a/../.." , resolveSymlinks), " /" );
255
266
BOOST_CHECK_EQUAL (FileReader::normalizeCLIPathForVFS (" a/../../b/../.." , resolveSymlinks), " /" );
267
+ #endif
256
268
}
257
269
}
258
270
0 commit comments