diff options
author | Steven Wu <stevenwu@apple.com> | 2024-10-29 10:37:37 -0700 |
---|---|---|
committer | Steven Wu <stevenwu@apple.com> | 2024-10-29 10:37:37 -0700 |
commit | 0acb07c50c259b2022ef4bf60d414e4616e171d5 (patch) | |
tree | 071f604b046c8e84b725c3125c1235c3ae373fb5 /llvm/unittests/CAS/OnDiskKeyValueDBTest.cpp | |
parent | b510cdb895b9188e5819c4c85a6dab22a4d14385 (diff) | |
parent | be2c38e110a7e595bd27f0bf92ad5762108c96a8 (diff) | |
download | llvm-users/cachemeifyoucan/spr/cas-add-ondiskcas.zip llvm-users/cachemeifyoucan/spr/cas-add-ondiskcas.tar.gz llvm-users/cachemeifyoucan/spr/cas-add-ondiskcas.tar.bz2 |
[𝘀𝗽𝗿] initial versionusers/cachemeifyoucan/spr/cas-add-ondiskcas
Created using spr 1.3.5
Diffstat (limited to 'llvm/unittests/CAS/OnDiskKeyValueDBTest.cpp')
-rw-r--r-- | llvm/unittests/CAS/OnDiskKeyValueDBTest.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/llvm/unittests/CAS/OnDiskKeyValueDBTest.cpp b/llvm/unittests/CAS/OnDiskKeyValueDBTest.cpp new file mode 100644 index 0000000..3edc5e7 --- /dev/null +++ b/llvm/unittests/CAS/OnDiskKeyValueDBTest.cpp @@ -0,0 +1,54 @@ +//===- llvm/unittest/CAS/OnDiskKeyValueDBTest.cpp -------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "llvm/CAS/OnDiskKeyValueDB.h" +#include "OnDiskCommonUtils.h" +#include "llvm/Testing/Support/Error.h" +#include "llvm/Testing/Support/SupportHelpers.h" +#include "gtest/gtest.h" + +#if LLVM_ENABLE_ONDISK_CAS + +using namespace llvm; +using namespace llvm::cas; +using namespace llvm::cas::ondisk; +using namespace llvm::unittest::cas; + +TEST(OnDiskKeyValueDBTest, Basic) { + unittest::TempDir Temp("ondiskkv", /*Unique=*/true); + std::unique_ptr<OnDiskKeyValueDB> DB; + ASSERT_THAT_ERROR(OnDiskKeyValueDB::open(Temp.path(), "blake3", + sizeof(HashType), "test", + sizeof(ValueType)) + .moveInto(DB), + Succeeded()); + + { + std::optional<ArrayRef<char>> Val; + ASSERT_THAT_ERROR(DB->get(digest("hello")).moveInto(Val), Succeeded()); + EXPECT_FALSE(Val.has_value()); + } + + ValueType ValW = valueFromString("world"); + ArrayRef<char> Val; + ASSERT_THAT_ERROR(DB->put(digest("hello"), ValW).moveInto(Val), Succeeded()); + EXPECT_EQ(Val, ArrayRef(ValW)); + ASSERT_THAT_ERROR( + DB->put(digest("hello"), valueFromString("other")).moveInto(Val), + Succeeded()); + EXPECT_EQ(Val, ArrayRef(ValW)); + + { + std::optional<ArrayRef<char>> Val; + ASSERT_THAT_ERROR(DB->get(digest("hello")).moveInto(Val), Succeeded()); + EXPECT_TRUE(Val.has_value()); + EXPECT_EQ(*Val, ArrayRef(ValW)); + } +} + +#endif // LLVM_ENABLE_ONDISK_CAS |