summaryrefslogtreecommitdiffstatsci
path: root/gunit_tests/surface.cpp
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2024-11-25 14:54:54 +0100
committerj-p <jp_bruyere@hotmail.com>2025-03-24 19:12:00 +0100
commit5f85e21f95a3c782641c0033ecb4df34d496299c (patch)
tree71dfe5cc1b33bd0f1d354ac8df649d5fb6324cc6 /gunit_tests/surface.cpp
parent06aae3f378fef9f346f1a4e2ff2f8c011a2151e9 (diff)
gunit tests + error handling improvments
Diffstat (limited to 'gunit_tests/surface.cpp')
-rw-r--r--gunit_tests/surface.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/gunit_tests/surface.cpp b/gunit_tests/surface.cpp
new file mode 100644
index 0000000..f4284d7
--- /dev/null
+++ b/gunit_tests/surface.cpp
@@ -0,0 +1,67 @@
+#include "vkvg.h"
+#include <gtest/gtest.h>
+
+// The fixture for testing class Foo.
+class SurfaceTest : public testing::Test {
+ public:
+ VkvgDevice dev;
+
+ protected:
+ // You can remove any or all of the following functions if their bodies would
+ // be empty.
+
+ SurfaceTest() {
+ vkvg_device_create_info_t info{};
+ dev = vkvg_device_create(&info);
+ }
+
+ ~SurfaceTest() override { vkvg_device_destroy(dev); }
+
+ void SetUp() override {}
+
+ void TearDown() override {}
+};
+
+TEST_F(SurfaceTest, SurfCreate) {
+ EXPECT_EQ(VKVG_STATUS_NULL_POINTER, vkvg_surface_status(NULL));
+
+ VkvgSurface surf = vkvg_surface_create(NULL, 0, 0);
+
+ EXPECT_EQ(VKVG_STATUS_DEVICE_ERROR, vkvg_surface_status(surf));
+
+ surf = vkvg_surface_create(dev, 512, 512);
+
+ EXPECT_EQ(VKVG_STATUS_SUCCESS, vkvg_device_status(dev));
+ EXPECT_EQ(VKVG_STATUS_SUCCESS, vkvg_surface_status(surf));
+
+ vkvg_surface_destroy(surf);
+}
+
+TEST_F(SurfaceTest, SurfReference) {
+ VkvgSurface surf = vkvg_surface_create(NULL, 0, 0);
+ EXPECT_EQ(0, vkvg_surface_get_reference_count(surf));
+ vkvg_surface_reference(surf);
+
+ EXPECT_EQ(VKVG_STATUS_DEVICE_ERROR, vkvg_surface_status(surf));
+
+ surf = vkvg_surface_create(dev, 512, 512);
+ EXPECT_EQ(VKVG_STATUS_SUCCESS, vkvg_device_status(dev));
+ EXPECT_EQ(VKVG_STATUS_SUCCESS, vkvg_surface_status(surf));
+ EXPECT_EQ(2, vkvg_device_get_reference_count(dev));
+ EXPECT_EQ(1, vkvg_surface_get_reference_count(surf));
+
+ vkvg_surface_reference(surf);
+
+ EXPECT_EQ(VKVG_STATUS_SUCCESS, vkvg_surface_status(surf));
+ EXPECT_EQ(2, vkvg_surface_get_reference_count(surf));
+ EXPECT_EQ(VKVG_STATUS_SUCCESS, vkvg_surface_status(surf));
+
+ vkvg_surface_destroy(surf);
+
+ EXPECT_EQ(VKVG_STATUS_SUCCESS, vkvg_surface_status(surf));
+ EXPECT_EQ(1, vkvg_surface_get_reference_count(surf));
+ EXPECT_EQ(VKVG_STATUS_SUCCESS, vkvg_surface_status(surf));
+
+ vkvg_surface_destroy(surf);
+ EXPECT_EQ(0, vkvg_surface_get_reference_count(surf));
+}