// it. Additionally `levels` single-character, '/'-separated subpaths are split
// from the beginning of `name` before joining them all.
//
-// Throws if cache dir levels is greater than the length of `name`.
+// `levels` must be less than the length of `name` and in the interval [1,8].
//
// E.g. "ABCDEF" and ".foo" will become "/ccache/A/B/CDEF.foo" when the cache
// directory is "/ccache" and cache dir levels is 2.
TEST_CASE("Util::get_path_in_cache")
{
- {
- std::string path =
- Util::get_path_in_cache("/zz/ccache", 0, "ABCDEF", ".suffix");
- CHECK(path == "/zz/ccache/ABCDEF.suffix");
- }
-
- {
- std::string path =
- Util::get_path_in_cache("/zz/ccache", 1, "ABCDEF", ".suffix");
- CHECK(path == "/zz/ccache/A/BCDEF.suffix");
- }
-
- {
- std::string path =
- Util::get_path_in_cache("/zz/ccache", 4, "ABCDEF", ".suffix");
- CHECK(path == "/zz/ccache/A/B/C/D/EF.suffix");
- }
-
- {
- std::string path = Util::get_path_in_cache("/zz/ccache", 0, "", ".suffix");
- CHECK(path == "/zz/ccache/.suffix");
- }
-
- {
- std::string path =
- Util::get_path_in_cache("/zz/ccache", 2, "AB", ".suffix");
- CHECK(path == "/zz/ccache/A/B/.suffix");
- }
-
- REQUIRE_THROWS_WITH(Util::get_path_in_cache("/zz/ccache", 3, "AB", ".suffix"),
- EndsWith("string_view::at()"));
+ CHECK(Util::get_path_in_cache("/zz/ccache", 1, "ABCDEF", ".suffix")
+ == "/zz/ccache/A/BCDEF.suffix");
+ CHECK(Util::get_path_in_cache("/zz/ccache", 4, "ABCDEF", ".suffix")
+ == "/zz/ccache/A/B/C/D/EF.suffix");
}
TEST_CASE("Util::int_to_big_endian")