diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/buildtool/TARGETS | 1 | ||||
-rw-r--r-- | test/buildtool/common/repository_config.test.cpp | 7 | ||||
-rw-r--r-- | test/buildtool/execution_api/bazel/TARGETS | 2 | ||||
-rw-r--r-- | test/buildtool/execution_api/bazel/bazel_msg_factory.test.cpp | 2 | ||||
-rw-r--r-- | test/buildtool/execution_api/local/TARGETS | 45 | ||||
-rw-r--r-- | test/buildtool/file_system/TARGETS | 14 | ||||
-rw-r--r-- | test/buildtool/file_system/object_cas.test.cpp (renamed from test/buildtool/execution_api/local/local_cas.test.cpp) | 10 | ||||
-rw-r--r-- | test/buildtool/storage/TARGETS | 37 | ||||
-rwxr-xr-x | test/buildtool/storage/data/executable_file (renamed from test/buildtool/execution_api/data/executable_file) | 0 | ||||
-rwxr-xr-x | test/buildtool/storage/data/non_executable_file (renamed from test/buildtool/execution_api/data/non_executable_file) | 0 | ||||
-rw-r--r-- | test/buildtool/storage/data/subdir1/file1 (renamed from test/buildtool/execution_api/data/subdir1/file1) | 0 | ||||
-rw-r--r-- | test/buildtool/storage/data/subdir1/subdir2/file2 (renamed from test/buildtool/execution_api/data/subdir1/subdir2/file2) | 0 | ||||
-rw-r--r-- | test/buildtool/storage/local_ac.test.cpp (renamed from test/buildtool/execution_api/local/local_ac.test.cpp) | 38 | ||||
-rw-r--r-- | test/buildtool/storage/local_cas.test.cpp (renamed from test/buildtool/execution_api/local/local_storage.test.cpp) | 114 | ||||
-rw-r--r-- | test/utils/hermeticity/local.hpp | 12 |
15 files changed, 132 insertions, 150 deletions
diff --git a/test/buildtool/TARGETS b/test/buildtool/TARGETS index f7fb17ce..89d4cf15 100644 --- a/test/buildtool/TARGETS +++ b/test/buildtool/TARGETS @@ -12,6 +12,7 @@ , [["./", "logging", "TESTS"], "logging"] , [["./", "main", "TESTS"], "main"] , [["./", "multithreading", "TESTS"], "multithreading"] + , [["./", "storage", "TESTS"], "storage"] , [["./", "system", "TESTS"], "system"] ] } diff --git a/test/buildtool/common/repository_config.test.cpp b/test/buildtool/common/repository_config.test.cpp index 13d0bab9..406ca2fe 100644 --- a/test/buildtool/common/repository_config.test.cpp +++ b/test/buildtool/common/repository_config.test.cpp @@ -14,7 +14,7 @@ #include "catch2/catch.hpp" #include "src/buildtool/common/repository_config.hpp" -#include "src/buildtool/execution_api/local/local_cas.hpp" +#include "src/buildtool/storage/storage.hpp" #include "test/utils/hermeticity/local.hpp" namespace { @@ -73,9 +73,10 @@ template <class T> // Read graph from CAS [[nodiscard]] auto ReadGraph(std::string const& hash) -> nlohmann::json { - auto& cas = LocalCAS<ObjectType::File>::Instance(); + auto const& cas = Storage::Instance().CAS(); auto blob = cas.BlobPath( - ArtifactDigest{hash, /*does not matter*/ 0, /*is_tree=*/false}); + ArtifactDigest{hash, /*does not matter*/ 0, /*is_tree=*/false}, + /*is_executable=*/false); REQUIRE(blob); auto content = FileSystemManager::ReadFile(*blob); REQUIRE(content); diff --git a/test/buildtool/execution_api/bazel/TARGETS b/test/buildtool/execution_api/bazel/TARGETS index 26026139..1b70c429 100644 --- a/test/buildtool/execution_api/bazel/TARGETS +++ b/test/buildtool/execution_api/bazel/TARGETS @@ -62,7 +62,7 @@ { "type": ["@", "rules", "CC/test", "test"] , "name": ["msg_factory"] , "srcs": ["bazel_msg_factory.test.cpp"] - , "data": [["test/buildtool/execution_api", "test_data"]] + , "data": [["test/buildtool/storage", "test_data"]] , "private-deps": [ ["@", "catch2", "", "catch2"] , ["test", "catch-main"] diff --git a/test/buildtool/execution_api/bazel/bazel_msg_factory.test.cpp b/test/buildtool/execution_api/bazel/bazel_msg_factory.test.cpp index e91d6d9e..67deb467 100644 --- a/test/buildtool/execution_api/bazel/bazel_msg_factory.test.cpp +++ b/test/buildtool/execution_api/bazel/bazel_msg_factory.test.cpp @@ -22,7 +22,7 @@ #include "src/buildtool/file_system/object_type.hpp" TEST_CASE("Bazel internals: MessageFactory", "[execution_api]") { - std::filesystem::path workspace{"test/buildtool/execution_api/data"}; + std::filesystem::path workspace{"test/buildtool/storage/data"}; std::filesystem::path subdir1 = workspace / "subdir1"; std::filesystem::path subdir2 = subdir1 / "subdir2"; diff --git a/test/buildtool/execution_api/local/TARGETS b/test/buildtool/execution_api/local/TARGETS index 22c459ce..c0131568 100644 --- a/test/buildtool/execution_api/local/TARGETS +++ b/test/buildtool/execution_api/local/TARGETS @@ -1,31 +1,4 @@ -{ "local_cas": - { "type": ["@", "rules", "CC/test", "test"] - , "name": ["local_cas"] - , "srcs": ["local_cas.test.cpp"] - , "private-deps": - [ ["@", "catch2", "", "catch2"] - , ["test", "catch-main"] - , ["src/buildtool/crypto", "hash_function"] - , ["src/buildtool/execution_api/local", "local"] - , ["src/buildtool/file_system", "file_system_manager"] - , ["test/utils", "local_hermeticity"] - ] - , "stage": ["test", "buildtool", "execution_api", "local"] - } -, "local_ac": - { "type": ["@", "rules", "CC/test", "test"] - , "name": ["local_ac"] - , "srcs": ["local_ac.test.cpp"] - , "private-deps": - [ ["@", "catch2", "", "catch2"] - , ["test", "catch-main"] - , ["src/buildtool/execution_api/local", "local"] - , ["src/buildtool/file_system", "file_system_manager"] - , ["test/utils", "local_hermeticity"] - ] - , "stage": ["test", "buildtool", "execution_api", "local"] - } -, "local_execution": +{ "local_execution": { "type": ["@", "rules", "CC/test", "test"] , "name": ["local_execution"] , "srcs": ["local_execution.test.cpp"] @@ -51,23 +24,9 @@ ] , "stage": ["test", "buildtool", "execution_api", "local"] } -, "local_storage": - { "type": ["@", "rules", "CC/test", "test"] - , "name": ["local_storage"] - , "srcs": ["local_storage.test.cpp"] - , "data": [["test/buildtool/execution_api", "test_data"]] - , "private-deps": - [ ["@", "catch2", "", "catch2"] - , ["test", "catch-main"] - , ["src/buildtool/execution_api/local", "local"] - , ["test/utils", "local_hermeticity"] - ] - , "stage": ["test", "buildtool", "execution_api", "local"] - } , "TESTS": { "type": "install" , "tainted": ["test"] - , "deps": - ["local_ac", "local_api", "local_cas", "local_execution", "local_storage"] + , "deps": ["local_api", "local_execution"] } } diff --git a/test/buildtool/file_system/TARGETS b/test/buildtool/file_system/TARGETS index 285cafac..93477387 100644 --- a/test/buildtool/file_system/TARGETS +++ b/test/buildtool/file_system/TARGETS @@ -10,6 +10,19 @@ ] , "stage": ["test", "buildtool", "file_system"] } +, "object_cas": + { "type": ["@", "rules", "CC/test", "test"] + , "name": ["object_cas"] + , "srcs": ["object_cas.test.cpp"] + , "private-deps": + [ ["@", "catch2", "", "catch2"] + , ["test", "catch-main"] + , ["src/buildtool/crypto", "hash_function"] + , ["src/buildtool/file_system", "file_system_manager"] + , ["test/utils", "local_hermeticity"] + ] + , "stage": ["test", "buildtool", "file_system"] + } , "git_tree": { "type": ["@", "rules", "CC/test", "test"] , "name": ["git_tree"] @@ -93,6 +106,7 @@ , "deps": [ "file_root" , "file_system_manager" + , "object_cas" , "git_tree" , "directory_entries" , "git_repo" diff --git a/test/buildtool/execution_api/local/local_cas.test.cpp b/test/buildtool/file_system/object_cas.test.cpp index 14a86628..bf20a287 100644 --- a/test/buildtool/execution_api/local/local_cas.test.cpp +++ b/test/buildtool/file_system/object_cas.test.cpp @@ -16,16 +16,17 @@ #include "catch2/catch.hpp" #include "src/buildtool/crypto/hash_function.hpp" -#include "src/buildtool/execution_api/local/local_cas.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" +#include "src/buildtool/file_system/object_cas.hpp" #include "test/utils/hermeticity/local.hpp" -TEST_CASE_METHOD(HermeticLocalTestFixture, "LocalCAS", "[execution_api]") { +TEST_CASE_METHOD(HermeticLocalTestFixture, "ObjectCAS", "[file_system]") { std::string test_content{"test"}; auto test_digest = ArtifactDigest::Create<ObjectType::File>(test_content); SECTION("CAS for files") { - LocalCAS<ObjectType::File> cas{}; + ObjectCAS<ObjectType::File> cas{StorageConfig::GenerationCacheDir(0) / + "casf"}; CHECK(not cas.BlobPath(test_digest)); SECTION("Add blob from bytes and verify") { @@ -63,7 +64,8 @@ TEST_CASE_METHOD(HermeticLocalTestFixture, "LocalCAS", "[execution_api]") { } SECTION("CAS for executables") { - LocalCAS<ObjectType::Executable> cas{}; + ObjectCAS<ObjectType::Executable> cas{ + StorageConfig::GenerationCacheDir(0) / "casx"}; CHECK(not cas.BlobPath(test_digest)); SECTION("Add blob from bytes and verify") { diff --git a/test/buildtool/storage/TARGETS b/test/buildtool/storage/TARGETS new file mode 100644 index 00000000..abfab7b7 --- /dev/null +++ b/test/buildtool/storage/TARGETS @@ -0,0 +1,37 @@ +{ "test_data": + { "type": ["@", "rules", "data", "staged"] + , "srcs": + [ "data/executable_file" + , "data/non_executable_file" + , "data/subdir1/file1" + , "data/subdir1/subdir2/file2" + ] + , "stage": ["test", "buildtool", "storage"] + } +, "local_cas": + { "type": ["@", "rules", "CC/test", "test"] + , "name": ["local_cas"] + , "srcs": ["local_cas.test.cpp"] + , "data": [["test/buildtool/storage", "test_data"]] + , "private-deps": + [ ["@", "catch2", "", "catch2"] + , ["test", "catch-main"] + , ["test/utils", "local_hermeticity"] + ] + , "stage": ["test", "buildtool", "storage"] + } +, "local_ac": + { "type": ["@", "rules", "CC/test", "test"] + , "name": ["local_ac"] + , "srcs": ["local_ac.test.cpp"] + , "private-deps": + [ ["@", "catch2", "", "catch2"] + , ["test", "catch-main"] + , ["src/buildtool/file_system", "file_system_manager"] + , ["test/utils", "local_hermeticity"] + ] + , "stage": ["test", "buildtool", "storage"] + } +, "TESTS": + {"type": "install", "tainted": ["test"], "deps": ["local_cas", "local_ac"]} +} diff --git a/test/buildtool/execution_api/data/executable_file b/test/buildtool/storage/data/executable_file index 30d74d25..30d74d25 100755 --- a/test/buildtool/execution_api/data/executable_file +++ b/test/buildtool/storage/data/executable_file diff --git a/test/buildtool/execution_api/data/non_executable_file b/test/buildtool/storage/data/non_executable_file index 30d74d25..30d74d25 100755 --- a/test/buildtool/execution_api/data/non_executable_file +++ b/test/buildtool/storage/data/non_executable_file diff --git a/test/buildtool/execution_api/data/subdir1/file1 b/test/buildtool/storage/data/subdir1/file1 index 30d74d25..30d74d25 100644 --- a/test/buildtool/execution_api/data/subdir1/file1 +++ b/test/buildtool/storage/data/subdir1/file1 diff --git a/test/buildtool/execution_api/data/subdir1/subdir2/file2 b/test/buildtool/storage/data/subdir1/subdir2/file2 index 30d74d25..30d74d25 100644 --- a/test/buildtool/execution_api/data/subdir1/subdir2/file2 +++ b/test/buildtool/storage/data/subdir1/subdir2/file2 diff --git a/test/buildtool/execution_api/local/local_ac.test.cpp b/test/buildtool/storage/local_ac.test.cpp index b37bced9..19da0e59 100644 --- a/test/buildtool/execution_api/local/local_ac.test.cpp +++ b/test/buildtool/storage/local_ac.test.cpp @@ -16,21 +16,21 @@ #include "catch2/catch.hpp" #include "gsl-lite/gsl-lite.hpp" -#include "src/buildtool/execution_api/local/local_ac.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" +#include "src/buildtool/storage/storage.hpp" #include "test/utils/hermeticity/local.hpp" [[nodiscard]] static auto RunDummyExecution( - gsl::not_null<LocalAC*> const& ac, - gsl::not_null<LocalCAS<ObjectType::File>*> cas_, + gsl::not_null<LocalAC<true> const*> const& ac, + gsl::not_null<LocalCAS<true> const*> const& cas_, bazel_re::Digest const& action_id, std::string const& seed) -> bool; TEST_CASE_METHOD(HermeticLocalTestFixture, "LocalAC: Single action, single result", - "[execution_api]") { - LocalCAS cas{}; - LocalAC ac{&cas}; + "[storage]") { + auto const& ac = Storage::Instance().ActionCache(); + auto const& cas = Storage::Instance().CAS(); auto action_id = ArtifactDigest::Create<ObjectType::File>("action"); CHECK(not ac.CachedResult(action_id)); @@ -41,9 +41,9 @@ TEST_CASE_METHOD(HermeticLocalTestFixture, TEST_CASE_METHOD(HermeticLocalTestFixture, "LocalAC: Two different actions, two different results", - "[execution_api]") { - LocalCAS cas{}; - LocalAC ac{&cas}; + "[storage]") { + auto const& ac = Storage::Instance().ActionCache(); + auto const& cas = Storage::Instance().CAS(); auto action_id1 = ArtifactDigest::Create<ObjectType::File>("action1"); auto action_id2 = ArtifactDigest::Create<ObjectType::File>("action2"); @@ -70,9 +70,9 @@ TEST_CASE_METHOD(HermeticLocalTestFixture, TEST_CASE_METHOD(HermeticLocalTestFixture, "LocalAC: Two different actions, same two results", - "[execution_api]") { - LocalCAS cas{}; - LocalAC ac{&cas}; + "[storage]") { + auto const& ac = Storage::Instance().ActionCache(); + auto const& cas = Storage::Instance().CAS(); auto action_id1 = ArtifactDigest::Create<ObjectType::File>("action1"); auto action_id2 = ArtifactDigest::Create<ObjectType::File>("action2"); @@ -98,10 +98,10 @@ TEST_CASE_METHOD(HermeticLocalTestFixture, } TEST_CASE_METHOD(HermeticLocalTestFixture, - "LocalAC: Same two actions, two differnet results", - "[execution_api]") { - LocalCAS cas{}; - LocalAC ac{&cas}; + "LocalAC: Same two actions, two different results", + "[storage]") { + auto const& ac = Storage::Instance().ActionCache(); + auto const& cas = Storage::Instance().CAS(); auto action_id = ArtifactDigest::Create<ObjectType::File>("same action"); CHECK(not ac.CachedResult(action_id)); @@ -123,15 +123,15 @@ TEST_CASE_METHOD(HermeticLocalTestFixture, CHECK(result_content1 != result_content2); } -auto RunDummyExecution(gsl::not_null<LocalAC*> const& ac, - gsl::not_null<LocalCAS<ObjectType::File>*> cas_, +auto RunDummyExecution(gsl::not_null<LocalAC<true> const*> const& ac, + gsl::not_null<LocalCAS<true> const*> const& cas_, bazel_re::Digest const& action_id, std::string const& seed) -> bool { bazel_re::ActionResult result{}; *result.add_output_files() = [&]() { bazel_re::OutputFile out{}; out.set_path(seed); - auto digest = cas_->StoreBlobFromBytes(""); + auto digest = cas_->StoreBlob(""); out.set_allocated_digest( gsl::owner<bazel_re::Digest*>{new bazel_re::Digest{*digest}}); out.set_is_executable(false); diff --git a/test/buildtool/execution_api/local/local_storage.test.cpp b/test/buildtool/storage/local_cas.test.cpp index ff2493ae..95d119bf 100644 --- a/test/buildtool/execution_api/local/local_storage.test.cpp +++ b/test/buildtool/storage/local_cas.test.cpp @@ -15,34 +15,34 @@ #include <string> #include "catch2/catch.hpp" -#include "src/buildtool/execution_api/local/local_storage.hpp" +#include "src/buildtool/storage/storage.hpp" #include "test/utils/hermeticity/local.hpp" TEST_CASE_METHOD(HermeticLocalTestFixture, - "LocalStorage: Add blob to storage from bytes", - "[execution_api]") { + "LocalCAS: Add blob to storage from bytes", + "[storage]") { std::string test_bytes("test"); - LocalStorage storage{}; + auto const& cas = Storage::Instance().CAS(); auto test_digest = ArtifactDigest::Create<ObjectType::File>(test_bytes); // check blob not in storage - CHECK(not storage.BlobPath(test_digest, true)); - CHECK(not storage.BlobPath(test_digest, false)); + CHECK(not cas.BlobPath(test_digest, true)); + CHECK(not cas.BlobPath(test_digest, false)); // ensure previous calls did not accidentially create the blob - CHECK(not storage.BlobPath(test_digest, true)); - CHECK(not storage.BlobPath(test_digest, false)); + CHECK(not cas.BlobPath(test_digest, true)); + CHECK(not cas.BlobPath(test_digest, false)); SECTION("Add non-executable blob to storage") { - CHECK(storage.StoreBlob(test_bytes, false)); + CHECK(cas.StoreBlob(test_bytes, false)); - auto file_path = storage.BlobPath(test_digest, false); + auto file_path = cas.BlobPath(test_digest, false); REQUIRE(file_path); CHECK(FileSystemManager::IsFile(*file_path)); CHECK(not FileSystemManager::IsExecutable(*file_path)); - auto exe_path = storage.BlobPath(test_digest, true); + auto exe_path = cas.BlobPath(test_digest, true); REQUIRE(exe_path); CHECK(FileSystemManager::IsFile(*exe_path)); CHECK(FileSystemManager::IsExecutable(*exe_path)); @@ -50,14 +50,14 @@ TEST_CASE_METHOD(HermeticLocalTestFixture, } SECTION("Add executable blob to storage") { - CHECK(storage.StoreBlob(test_bytes, true)); + CHECK(cas.StoreBlob(test_bytes, true)); - auto file_path = storage.BlobPath(test_digest, false); + auto file_path = cas.BlobPath(test_digest, false); REQUIRE(file_path); CHECK(FileSystemManager::IsFile(*file_path)); CHECK(not FileSystemManager::IsExecutable(*file_path)); - auto exe_path = storage.BlobPath(test_digest, true); + auto exe_path = cas.BlobPath(test_digest, true); REQUIRE(exe_path); CHECK(FileSystemManager::IsFile(*exe_path)); CHECK(FileSystemManager::IsExecutable(*exe_path)); @@ -66,47 +66,32 @@ TEST_CASE_METHOD(HermeticLocalTestFixture, } TEST_CASE_METHOD(HermeticLocalTestFixture, - "LocalStorage: Add blob to storage from non-executable file", - "[execution_api]") { + "LocalCAS: Add blob to storage from non-executable file", + "[storage]") { std::filesystem::path non_exec_file{ - "test/buildtool/execution_api/data/non_executable_file"}; + "test/buildtool/storage/data/non_executable_file"}; - LocalStorage storage{}; + auto const& cas = Storage::Instance().CAS(); auto test_blob = CreateBlobFromFile(non_exec_file); REQUIRE(test_blob); // check blob not in storage - CHECK(not storage.BlobPath(test_blob->digest, true)); - CHECK(not storage.BlobPath(test_blob->digest, false)); + CHECK(not cas.BlobPath(test_blob->digest, true)); + CHECK(not cas.BlobPath(test_blob->digest, false)); // ensure previous calls did not accidentially create the blob - CHECK(not storage.BlobPath(test_blob->digest, true)); - CHECK(not storage.BlobPath(test_blob->digest, false)); - - SECTION("Add blob to storage without specifying x-bit") { - CHECK(storage.StoreBlob(non_exec_file)); - - auto file_path = storage.BlobPath(test_blob->digest, false); - REQUIRE(file_path); - CHECK(FileSystemManager::IsFile(*file_path)); - CHECK(not FileSystemManager::IsExecutable(*file_path)); - - auto exe_path = storage.BlobPath(test_blob->digest, true); - REQUIRE(exe_path); - CHECK(FileSystemManager::IsFile(*exe_path)); - CHECK(FileSystemManager::IsExecutable(*exe_path)); - CHECK(not FileSystemManager::IsExecutable(*file_path)); - } + CHECK(not cas.BlobPath(test_blob->digest, true)); + CHECK(not cas.BlobPath(test_blob->digest, false)); SECTION("Add non-executable blob to storage") { - CHECK(storage.StoreBlob(non_exec_file, false)); + CHECK(cas.StoreBlob(non_exec_file, false)); - auto file_path = storage.BlobPath(test_blob->digest, false); + auto file_path = cas.BlobPath(test_blob->digest, false); REQUIRE(file_path); CHECK(FileSystemManager::IsFile(*file_path)); CHECK(not FileSystemManager::IsExecutable(*file_path)); - auto exe_path = storage.BlobPath(test_blob->digest, true); + auto exe_path = cas.BlobPath(test_blob->digest, true); REQUIRE(exe_path); CHECK(FileSystemManager::IsFile(*exe_path)); CHECK(FileSystemManager::IsExecutable(*exe_path)); @@ -114,14 +99,14 @@ TEST_CASE_METHOD(HermeticLocalTestFixture, } SECTION("Add executable blob to storage") { - CHECK(storage.StoreBlob(non_exec_file, true)); + CHECK(cas.StoreBlob(non_exec_file, true)); - auto file_path = storage.BlobPath(test_blob->digest, false); + auto file_path = cas.BlobPath(test_blob->digest, false); REQUIRE(file_path); CHECK(FileSystemManager::IsFile(*file_path)); CHECK(not FileSystemManager::IsExecutable(*file_path)); - auto exe_path = storage.BlobPath(test_blob->digest, true); + auto exe_path = cas.BlobPath(test_blob->digest, true); REQUIRE(exe_path); CHECK(FileSystemManager::IsFile(*exe_path)); CHECK(FileSystemManager::IsExecutable(*exe_path)); @@ -130,47 +115,32 @@ TEST_CASE_METHOD(HermeticLocalTestFixture, } TEST_CASE_METHOD(HermeticLocalTestFixture, - "LocalStorage: Add blob to storage from executable file", - "[execution_api]") { + "LocalCAS: Add blob to storage from executable file", + "[storage]") { std::filesystem::path exec_file{ - "test/buildtool/execution_api/data/executable_file"}; + "test/buildtool/storage/data/executable_file"}; - LocalStorage storage{}; + auto const& cas = Storage::Instance().CAS(); auto test_blob = CreateBlobFromFile(exec_file); REQUIRE(test_blob); // check blob not in storage - CHECK(not storage.BlobPath(test_blob->digest, true)); - CHECK(not storage.BlobPath(test_blob->digest, false)); + CHECK(not cas.BlobPath(test_blob->digest, true)); + CHECK(not cas.BlobPath(test_blob->digest, false)); // ensure previous calls did not accidentially create the blob - CHECK(not storage.BlobPath(test_blob->digest, true)); - CHECK(not storage.BlobPath(test_blob->digest, false)); - - SECTION("Add blob to storage without specifying x-bit") { - CHECK(storage.StoreBlob(exec_file)); - - auto file_path = storage.BlobPath(test_blob->digest, false); - REQUIRE(file_path); - CHECK(FileSystemManager::IsFile(*file_path)); - CHECK(not FileSystemManager::IsExecutable(*file_path)); - - auto exe_path = storage.BlobPath(test_blob->digest, true); - REQUIRE(exe_path); - CHECK(FileSystemManager::IsFile(*exe_path)); - CHECK(FileSystemManager::IsExecutable(*exe_path)); - CHECK(not FileSystemManager::IsExecutable(*file_path)); - } + CHECK(not cas.BlobPath(test_blob->digest, true)); + CHECK(not cas.BlobPath(test_blob->digest, false)); SECTION("Add non-executable blob to storage") { - CHECK(storage.StoreBlob(exec_file, false)); + CHECK(cas.StoreBlob(exec_file, false)); - auto file_path = storage.BlobPath(test_blob->digest, false); + auto file_path = cas.BlobPath(test_blob->digest, false); REQUIRE(file_path); CHECK(FileSystemManager::IsFile(*file_path)); CHECK(not FileSystemManager::IsExecutable(*file_path)); - auto exe_path = storage.BlobPath(test_blob->digest, true); + auto exe_path = cas.BlobPath(test_blob->digest, true); REQUIRE(exe_path); CHECK(FileSystemManager::IsFile(*exe_path)); CHECK(FileSystemManager::IsExecutable(*exe_path)); @@ -178,14 +148,14 @@ TEST_CASE_METHOD(HermeticLocalTestFixture, } SECTION("Add executable blob to storage") { - CHECK(storage.StoreBlob(exec_file, true)); + CHECK(cas.StoreBlob(exec_file, true)); - auto file_path = storage.BlobPath(test_blob->digest, false); + auto file_path = cas.BlobPath(test_blob->digest, false); REQUIRE(file_path); CHECK(FileSystemManager::IsFile(*file_path)); CHECK(not FileSystemManager::IsExecutable(*file_path)); - auto exe_path = storage.BlobPath(test_blob->digest, true); + auto exe_path = cas.BlobPath(test_blob->digest, true); REQUIRE(exe_path); CHECK(FileSystemManager::IsFile(*exe_path)); CHECK(FileSystemManager::IsExecutable(*exe_path)); diff --git a/test/utils/hermeticity/local.hpp b/test/utils/hermeticity/local.hpp index 0b55723a..2b67cf10 100644 --- a/test/utils/hermeticity/local.hpp +++ b/test/utils/hermeticity/local.hpp @@ -16,10 +16,10 @@ #define INCLUDED_SRC_TEST_UTILS_HERMETICITY_LOCAL_HPP #include "src/buildtool/common/statistics.hpp" -#include "src/buildtool/execution_api/local/config.hpp" -#include "src/buildtool/execution_api/local/local_cas.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" #include "src/buildtool/logging/logger.hpp" +#include "src/buildtool/storage/config.hpp" +#include "src/buildtool/storage/storage.hpp" class HermeticLocalTestFixture { public: @@ -36,12 +36,10 @@ class HermeticLocalTestFixture { if (FileSystemManager::RemoveDirectory(case_dir, true) and FileSystemManager::CreateDirectoryExclusive(case_dir) and - LocalExecutionConfig::SetBuildRoot(case_dir)) { + StorageConfig::SetBuildRoot(case_dir)) { // After the build root has been changed, the file roots of the - // static CAS instances needs to be updated. - LocalCAS<ObjectType::File>::Instance().Reset(); - LocalCAS<ObjectType::Executable>::Instance().Reset(); - LocalCAS<ObjectType::Tree>::Instance().Reset(); + // static storage instances need to be updated. + Storage::Reinitialize(); Logger::Log(LogLevel::Debug, "created test-local cache dir {}", case_dir.string()); |