From e8d8a4c95e3c2dfb38c82896ef2044b87a2efc96 Mon Sep 17 00:00:00 2001 From: codereader Date: Sat, 5 Mar 2022 06:30:55 +0100 Subject: [PATCH] #5912: Start creating unit tests covering the GeometryStore implementation --- test/CMakeLists.txt | 1 + test/GeometryStore.cpp | 38 ++++++++++++++++++++++++++ tools/msvc/Tests/Tests.vcxproj | 1 + tools/msvc/Tests/Tests.vcxproj.filters | 1 + 4 files changed, 41 insertions(+) create mode 100644 test/GeometryStore.cpp diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f5d5772053..7c4111826d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -10,6 +10,7 @@ add_executable(drtest Entity.cpp Favourites.cpp FileTypes.cpp + GeometryStore.cpp Grid.cpp HeadlessOpenGLContext.cpp ImageLoading.cpp diff --git a/test/GeometryStore.cpp b/test/GeometryStore.cpp new file mode 100644 index 0000000000..d1147201ed --- /dev/null +++ b/test/GeometryStore.cpp @@ -0,0 +1,38 @@ +#include "gtest/gtest.h" + +#include "render/GeometryStore.h" + +namespace test +{ + +class NullSyncObjectProvider final : + public render::ISyncObjectProvider +{ +public: + std::size_t invocationCount = 0; + + render::ISyncObject::Ptr createSyncObject() override + { + ++invocationCount; + return {}; + } + + static NullSyncObjectProvider& Instance() + { + static NullSyncObjectProvider _instance; + return _instance; + } +}; + +TEST(GeometryStore, SyncObjectAcquisition) +{ + render::GeometryStore store(NullSyncObjectProvider::Instance()); + + store.onFrameStart(); + store.onFrameFinished(); + + EXPECT_EQ(NullSyncObjectProvider::Instance().invocationCount, 1) << + "GeometryStore should have acquired one sync object"; +} + +} diff --git a/tools/msvc/Tests/Tests.vcxproj b/tools/msvc/Tests/Tests.vcxproj index 937ce0f545..fb7c94db0e 100644 --- a/tools/msvc/Tests/Tests.vcxproj +++ b/tools/msvc/Tests/Tests.vcxproj @@ -84,6 +84,7 @@ + diff --git a/tools/msvc/Tests/Tests.vcxproj.filters b/tools/msvc/Tests/Tests.vcxproj.filters index 03ddd7c814..21d8920c9d 100644 --- a/tools/msvc/Tests/Tests.vcxproj.filters +++ b/tools/msvc/Tests/Tests.vcxproj.filters @@ -56,6 +56,7 @@ +