@@ -45,7 +45,7 @@ static int assertEquals(const std::string &expected, const std::string &actual,
4545 if (expected != actual) {
4646 numberOfFailedAssertions++;
4747 std::cerr << " ------ assertion failed ---------" << std::endl;
48- std::cerr << " line " << line << std::endl;
48+ std::cerr << " line test.cpp: " << line << std::endl;
4949 std::cerr << " expected:" << pprint (expected) << std::endl;
5050 std::cerr << " actual:" << pprint (actual) << std::endl;
5151 }
@@ -3246,6 +3246,39 @@ 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+
3255+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" foo\\ bar" ));
3256+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" foo/bar" ));
3257+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" foo.cpp" ));
3258+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" C:foo.cpp" ));
3259+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" C:foo\\ bar.cpp" ));
3260+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" bar.cpp" ));
3261+ // ASSERT_EQUALS(true, simplecpp::isAbsolutePath("\\")); // TODO
3262+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" 0:\\ foo\\ bar" ));
3263+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" 0:/foo/bar" ));
3264+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" \\ foo\\ bar" ));
3265+ // ASSERT_EQUALS(false, simplecpp::isAbsolutePath("\\\\")); // TODO
3266+ // ASSERT_EQUALS(false, simplecpp::isAbsolutePath("//")); // TODO
3267+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" /foo/bar" ));
3268+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" /" ));
3269+ #else
3270+ ASSERT_EQUALS (true , simplecpp::isAbsolutePath (" /foo/bar" ));
3271+ ASSERT_EQUALS (true , simplecpp::isAbsolutePath (" /" ));
3272+ ASSERT_EQUALS (true , simplecpp::isAbsolutePath (" //host/foo/bar" ));
3273+
3274+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" foo/bar" ));
3275+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" foo.cpp" ));
3276+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" C:\\ foo\\ bar" ));
3277+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" C:/foo/bar" ));
3278+ ASSERT_EQUALS (false , simplecpp::isAbsolutePath (" \\\\ foo\\ bar" ));
3279+ #endif
3280+ }
3281+
32493282// crashes detected by fuzzer
32503283static void fuzz_crash ()
32513284{
@@ -3531,6 +3564,8 @@ int main(int argc, char **argv)
35313564
35323565 TEST_CASE (safe_api);
35333566
3567+ TEST_CASE (isAbsolutePath);
3568+
35343569 TEST_CASE (fuzz_crash);
35353570
35363571 TEST_CASE (leak);
0 commit comments