aboutsummaryrefslogtreecommitdiff
path: root/src/zencore
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2023-11-06 15:55:39 +0100
committerGitHub <[email protected]>2023-11-06 15:55:39 +0100
commit5295c9618cbae2bb937e188c072f66a77d793eb5 (patch)
tree6aeca701b20af5745eb7924c901c9708c098199b /src/zencore
parentstatsd for cas (#511) (diff)
downloadzen-5295c9618cbae2bb937e188c072f66a77d793eb5.tar.xz
zen-5295c9618cbae2bb937e188c072f66a77d793eb5.zip
gc v2 tests (#512)
* set MaxBlockCount at init * properly calculate total size * basic blockstore compact blocks test * correct detection of block swap * Use one implementation for CreateRandomBlob * reduce some data sets to increase speed of tests * reduce test time * rename BlockStoreCompactState::AddBlock -> BlockStoreCompactState::IncludeBlock
Diffstat (limited to 'src/zencore')
-rw-r--r--src/zencore/include/zencore/testutils.h9
-rw-r--r--src/zencore/testutils.cpp42
-rw-r--r--src/zencore/thread.cpp6
3 files changed, 49 insertions, 8 deletions
diff --git a/src/zencore/include/zencore/testutils.h b/src/zencore/include/zencore/testutils.h
index 04648c6de..f5526945a 100644
--- a/src/zencore/include/zencore/testutils.h
+++ b/src/zencore/include/zencore/testutils.h
@@ -2,7 +2,10 @@
#pragma once
-#include <filesystem>
+#if ZEN_WITH_TESTS
+
+# include <zencore/iobuffer.h>
+# include <filesystem>
namespace zen {
@@ -29,4 +32,8 @@ struct ScopedCurrentDirectoryChange
~ScopedCurrentDirectoryChange() { std::filesystem::current_path(OldPath); }
};
+IoBuffer CreateRandomBlob(uint64_t Size);
+
} // namespace zen
+
+#endif // ZEN_WITH_TESTS
diff --git a/src/zencore/testutils.cpp b/src/zencore/testutils.cpp
index dbc3ab5af..d4c8aeaef 100644
--- a/src/zencore/testutils.cpp
+++ b/src/zencore/testutils.cpp
@@ -1,10 +1,13 @@
// Copyright Epic Games, Inc. All Rights Reserved.
#include "zencore/testutils.h"
-#include <zencore/session.h>
-#include "zencore/string.h"
-#include <atomic>
+#if ZEN_WITH_TESTS
+
+# include <zencore/session.h>
+# include "zencore/string.h"
+
+# include <atomic>
namespace zen {
@@ -39,4 +42,35 @@ ScopedTemporaryDirectory::~ScopedTemporaryDirectory()
std::filesystem::remove_all(m_RootPath, Ec);
}
-} // namespace zen \ No newline at end of file
+IoBuffer
+CreateRandomBlob(uint64_t Size)
+{
+ static uint64_t Seed{0x7CEBF54E45B9F5D1};
+ auto Next = [](uint64_t& seed) {
+ uint64_t z = (seed += UINT64_C(0x9E3779B97F4A7C15));
+ z = (z ^ (z >> 30)) * UINT64_C(0xBF58476D1CE4E5B9);
+ z = (z ^ (z >> 27)) * UINT64_C(0x94D049BB133111EB);
+ return z ^ (z >> 31);
+ };
+
+ IoBuffer Data(Size);
+ uint64_t* DataPtr = reinterpret_cast<uint64_t*>(Data.MutableData());
+ while (Size > sizeof(uint64_t))
+ {
+ *DataPtr++ = Next(Seed);
+ Size -= sizeof(uint64_t);
+ }
+ uint64_t ByteNext = Next(Seed);
+ uint8_t* ByteDataPtr = reinterpret_cast<uint8_t*>(DataPtr);
+ while (Size > 0)
+ {
+ *ByteDataPtr++ = static_cast<uint8_t>(ByteNext & 0xff);
+ ByteNext >>= 8;
+ Size--;
+ }
+ return Data;
+};
+
+} // namespace zen
+
+#endif // ZEN_WITH_TESTS
diff --git a/src/zencore/thread.cpp b/src/zencore/thread.cpp
index e25ef7460..1f1b1b8f5 100644
--- a/src/zencore/thread.cpp
+++ b/src/zencore/thread.cpp
@@ -1209,7 +1209,7 @@ TEST_CASE("NamedEvent")
// Timeout test
for (uint32_t i = 0; i < 8; ++i)
{
- bool bEventSet = TestEvent.Wait(100);
+ bool bEventSet = TestEvent.Wait(10);
CHECK(!bEventSet);
}
@@ -1219,13 +1219,13 @@ TEST_CASE("NamedEvent")
ReadyEvent.Set();
NamedEvent TestEvent(Name);
- TestEvent.Wait(1000);
+ TestEvent.Wait(100);
});
NamedEvent ReadyEvent(Name + "_ready");
ReadyEvent.Wait();
- zen::Sleep(500);
+ zen::Sleep(50);
TestEvent.Set();
Waiter.join();