Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Bakker <jeroen@blender.org>2021-06-28 09:28:56 +0300
committerJeroen Bakker <jeroen@blender.org>2021-06-28 09:55:13 +0300
commitf53bd31690ad9e1ba91f0a23d8a3cdd6519c9cf7 (patch)
tree01cdfe0afdb63c8fdbbfa13f00faa61d5837efa4
parente94ec7934173548f22bf1af24c16c301a777526b (diff)
Cleanup GPU/Draw test cases.
In preparation of supporting vulkan. Draw/GPU tests should use GPU_TEST or DRAW_TEST macros. These macros will run the test on available drawing context backends like OpenGL or Vulkan. As in master there is only an OpenGL backend nothing changed.
-rw-r--r--source/blender/draw/tests/draw_testing.cc4
-rw-r--r--source/blender/draw/tests/draw_testing.hh8
-rw-r--r--source/blender/draw/tests/shaders_test.cc18
-rw-r--r--source/blender/gpu/tests/gpu_index_buffer_test.cc4
-rw-r--r--source/blender/gpu/tests/gpu_shader_test.cc15
-rw-r--r--source/blender/gpu/tests/gpu_testing.hh18
6 files changed, 52 insertions, 15 deletions
diff --git a/source/blender/draw/tests/draw_testing.cc b/source/blender/draw/tests/draw_testing.cc
index 0104437e921..45a857e7577 100644
--- a/source/blender/draw/tests/draw_testing.cc
+++ b/source/blender/draw/tests/draw_testing.cc
@@ -9,9 +9,9 @@
namespace blender::draw {
/* Base class for draw test cases. It will setup and tear down the GPU part around each test. */
-void DrawTest::SetUp()
+void DrawOpenGLTest::SetUp()
{
- GPUTest::SetUp();
+ GPUOpenGLTest::SetUp();
DRW_draw_state_init_gtests(GPU_SHADER_CFG_DEFAULT);
}
diff --git a/source/blender/draw/tests/draw_testing.hh b/source/blender/draw/tests/draw_testing.hh
index ec0b15b611e..00f0ac5bab7 100644
--- a/source/blender/draw/tests/draw_testing.hh
+++ b/source/blender/draw/tests/draw_testing.hh
@@ -5,9 +5,15 @@
namespace blender::draw {
/* Base class for draw test cases. It will setup and tear down the GPU part around each test. */
-class DrawTest : public blender::gpu::GPUTest {
+class DrawOpenGLTest : public blender::gpu::GPUOpenGLTest {
public:
void SetUp() override;
};
+#define DRAW_TEST(test_name) \
+ TEST_F(DrawOpenGLTest, test_name) \
+ { \
+ test_##test_name(); \
+ }
+
} // namespace blender::draw
diff --git a/source/blender/draw/tests/shaders_test.cc b/source/blender/draw/tests/shaders_test.cc
index cce69714f5e..0c7cbd4dac8 100644
--- a/source/blender/draw/tests/shaders_test.cc
+++ b/source/blender/draw/tests/shaders_test.cc
@@ -22,7 +22,7 @@
namespace blender::draw {
-TEST_F(DrawTest, workbench_glsl_shaders)
+static void test_workbench_glsl_shaders()
{
workbench_shader_library_ensure();
@@ -155,8 +155,9 @@ TEST_F(DrawTest, workbench_glsl_shaders)
workbench_shader_free();
}
+DRAW_TEST(workbench_glsl_shaders)
-TEST_F(DrawTest, gpencil_glsl_shaders)
+static void test_gpencil_glsl_shaders()
{
EXPECT_NE(GPENCIL_shader_antialiasing(0), nullptr);
EXPECT_NE(GPENCIL_shader_antialiasing(1), nullptr);
@@ -177,8 +178,9 @@ TEST_F(DrawTest, gpencil_glsl_shaders)
GPENCIL_shader_free();
}
+DRAW_TEST(gpencil_glsl_shaders)
-TEST_F(DrawTest, image_glsl_shaders)
+static void test_image_glsl_shaders()
{
IMAGE_shader_library_ensure();
@@ -187,8 +189,9 @@ TEST_F(DrawTest, image_glsl_shaders)
IMAGE_shader_free();
}
+DRAW_TEST(image_glsl_shaders)
-TEST_F(DrawTest, overlay_glsl_shaders)
+static void test_overlay_glsl_shaders()
{
OVERLAY_shader_library_ensure();
@@ -280,8 +283,9 @@ TEST_F(DrawTest, overlay_glsl_shaders)
OVERLAY_shader_free();
}
+DRAW_TEST(overlay_glsl_shaders)
-TEST_F(DrawTest, eevee_glsl_shaders_static)
+static void test_eevee_glsl_shaders_static()
{
EEVEE_shaders_material_shaders_init();
@@ -370,6 +374,7 @@ TEST_F(DrawTest, eevee_glsl_shaders_static)
EXPECT_NE(EEVEE_shaders_effect_reflection_resolve_sh_get(), nullptr);
EEVEE_shaders_free();
}
+DRAW_TEST(eevee_glsl_shaders_static)
static void test_draw_shaders(eParticleRefineShaderType sh_type)
{
@@ -378,7 +383,7 @@ static void test_draw_shaders(eParticleRefineShaderType sh_type)
DRW_shaders_free();
}
-TEST_F(DrawTest, draw_glsl_shaders)
+static void test_draw_glsl_shaders()
{
#ifndef __APPLE__
test_draw_shaders(PART_REFINE_SHADER_TRANSFORM_FEEDBACK);
@@ -386,5 +391,6 @@ TEST_F(DrawTest, draw_glsl_shaders)
#endif
test_draw_shaders(PART_REFINE_SHADER_TRANSFORM_FEEDBACK_WORKAROUND);
}
+DRAW_TEST(draw_glsl_shaders)
} // namespace blender::draw
diff --git a/source/blender/gpu/tests/gpu_index_buffer_test.cc b/source/blender/gpu/tests/gpu_index_buffer_test.cc
index 78e351af7f1..9d767b58a7b 100644
--- a/source/blender/gpu/tests/gpu_index_buffer_test.cc
+++ b/source/blender/gpu/tests/gpu_index_buffer_test.cc
@@ -10,7 +10,7 @@
namespace blender::gpu::tests {
-TEST_F(GPUTest, gpu_index_buffer_subbuilders)
+static void test_gpu_index_buffer_subbuilders()
{
const uint num_subbuilders = 10;
const uint verts_per_subbuilders = 100;
@@ -44,4 +44,6 @@ TEST_F(GPUTest, gpu_index_buffer_subbuilders)
GPU_INDEXBUF_DISCARD_SAFE(index_buffer);
}
+GPU_TEST(gpu_index_buffer_subbuilders)
+
} // namespace blender::gpu::tests
diff --git a/source/blender/gpu/tests/gpu_shader_test.cc b/source/blender/gpu/tests/gpu_shader_test.cc
index e8645b89e41..43ff86ebbd8 100644
--- a/source/blender/gpu/tests/gpu_shader_test.cc
+++ b/source/blender/gpu/tests/gpu_shader_test.cc
@@ -18,7 +18,7 @@
namespace blender::gpu::tests {
-TEST_F(GPUTest, gpu_shader_compute_2d)
+static void test_gpu_shader_compute_2d()
{
if (!GPU_compute_shader_support()) {
@@ -75,8 +75,9 @@ void main() {
GPU_texture_free(texture);
GPU_shader_free(shader);
}
+GPU_TEST(gpu_shader_compute_2d)
-TEST_F(GPUTest, gpu_shader_compute_1d)
+static void test_gpu_shader_compute_1d()
{
if (!GPU_compute_shader_support()) {
@@ -137,8 +138,9 @@ void main() {
GPU_texture_free(texture);
GPU_shader_free(shader);
}
+GPU_TEST(gpu_shader_compute_1d)
-TEST_F(GPUTest, gpu_shader_compute_vbo)
+static void test_gpu_shader_compute_vbo()
{
if (!GPU_compute_shader_support()) {
@@ -201,8 +203,9 @@ void main() {
GPU_vertbuf_discard(vbo);
GPU_shader_free(shader);
}
+GPU_TEST(gpu_shader_compute_vbo)
-TEST_F(GPUTest, gpu_shader_compute_ibo)
+static void test_gpu_shader_compute_ibo()
{
if (!GPU_compute_shader_support()) {
@@ -258,8 +261,9 @@ void main() {
GPU_indexbuf_discard(ibo);
GPU_shader_free(shader);
}
+GPU_TEST(gpu_shader_compute_ibo)
-TEST_F(GPUTest, gpu_shader_ssbo_binding)
+static void test_gpu_shader_ssbo_binding()
{
if (!GPU_compute_shader_support()) {
/* We can't test as a the platform does not support compute shaders. */
@@ -297,5 +301,6 @@ void main() {
GPU_shader_unbind();
GPU_shader_free(shader);
}
+GPU_TEST(gpu_shader_ssbo_binding)
} // namespace blender::gpu::tests
diff --git a/source/blender/gpu/tests/gpu_testing.hh b/source/blender/gpu/tests/gpu_testing.hh
index cf902a91264..c45770cb94e 100644
--- a/source/blender/gpu/tests/gpu_testing.hh
+++ b/source/blender/gpu/tests/gpu_testing.hh
@@ -15,13 +15,31 @@ namespace blender::gpu {
*/
class GPUTest : public ::testing::Test {
private:
+ GHOST_TDrawingContextType draw_context_type = GHOST_kDrawingContextTypeNone;
GHOST_SystemHandle ghost_system;
GHOST_ContextHandle ghost_context;
struct GPUContext *context;
protected:
+ GPUTest(GHOST_TDrawingContextType draw_context_type) : draw_context_type(draw_context_type)
+ {
+ }
+
void SetUp() override;
void TearDown() override;
};
+class GPUOpenGLTest : public GPUTest {
+ public:
+ GPUOpenGLTest() : GPUTest(GHOST_kDrawingContextTypeOpenGL)
+ {
+ }
+};
+
+#define GPU_TEST(test_name) \
+ TEST_F(GPUOpenGLTest, test_name) \
+ { \
+ test_##test_name(); \
+ }
+
} // namespace blender::gpu