@@ -3246,6 +3246,26 @@ static void safe_api()
32463246#endif
32473247}
32483248
3249+ static void isAbsolutePath () {
3250+ #ifdef _WIN32
3251+ ASSERT_EQUALS (true , simplecpp::isAbsolutePath (" C:\\ foo\\ bar" ));
3252+ ASSERT_EQUALS (true , simplecpp::isAbsolutePath (" C:/foo/bar" ));
3253+ ASSERT_EQUALS (true , simplecpp::isAbsolutePath (" \\\\ foo\\ bar" ));
3254+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" foo\\ bar" ));
3255+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" foo/bar" ));
3256+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" foo.cpp" ));
3257+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" C:foo.cpp" ));
3258+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" C:foo\\ bar.cpp" ));
3259+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" bar.cpp" ));
3260+ // ASSERT_EQUALS(true, simplecpp::isAbsolutePath("\\")); // TODO
3261+ #else
3262+ ASSERT_EQUALS (true , simplecpp::isAbsolutePath (" /foo/bar" ));
3263+ // ASSERT_EQUALS(true, simplecpp::isAbsolutePath("/")); // TODO
3264+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" foo/bar" ));
3265+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" foo.cpp" ));
3266+ #endif
3267+ }
3268+
32493269// crashes detected by fuzzer
32503270static void fuzz_crash ()
32513271{
@@ -3525,6 +3545,8 @@ int main(int argc, char **argv)
35253545
35263546 TEST_CASE (safe_api);
35273547
3548+ TEST_CASE (isAbsolutePath);
3549+
35283550 TEST_CASE (fuzz_crash);
35293551
35303552 TEST_CASE (leak);
0 commit comments