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