From 30f4beacf54e0148c1a004eff1b14f01b128fb35 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 8 Jul 2021 17:52:10 +0900 Subject: [PATCH] test capi: complement scene test cases. --- test/capi/capiScene.cpp | 85 ++++++++++++++++++++++++++++++++--------- test/testScene.cpp | 2 +- 2 files changed, 67 insertions(+), 20 deletions(-) mode change 100755 => 100644 test/capi/capiScene.cpp diff --git a/test/capi/capiScene.cpp b/test/capi/capiScene.cpp old mode 100755 new mode 100644 index 8cd6a602..ba6044be --- a/test/capi/capiScene.cpp +++ b/test/capi/capiScene.cpp @@ -23,42 +23,89 @@ #include #include "../catch.hpp" -TEST_CASE("Scene Creation", "[capiScene]") +TEST_CASE("Create a Scene", "[capiScene]") { Tvg_Paint* scene = tvg_scene_new(); REQUIRE(scene); - + REQUIRE(tvg_paint_del(scene) == TVG_RESULT_SUCCESS); } -TEST_CASE("Pushing Paints Into Scene", "[capiScene]") +TEST_CASE("Paints Into a Scene", "[capiScene]") { Tvg_Paint* scene = tvg_scene_new(); REQUIRE(scene); - Tvg_Paint* paint = tvg_picture_new(); - REQUIRE(paint); - - REQUIRE(tvg_scene_push(scene, paint) == TVG_RESULT_SUCCESS); - - + + //Pushing Paints + REQUIRE(tvg_scene_push(scene, tvg_shape_new()) == TVG_RESULT_SUCCESS); + REQUIRE(tvg_scene_push(scene, tvg_picture_new()) == TVG_RESULT_SUCCESS); + REQUIRE(tvg_scene_push(scene, tvg_scene_new()) == TVG_RESULT_SUCCESS); + + //Pusing Null Pointer + REQUIRE(tvg_scene_push(scene, NULL) == TVG_RESULT_INVALID_ARGUMENT); + + REQUIRE(tvg_paint_del(scene) == TVG_RESULT_SUCCESS); } -TEST_CASE("Scene Memory Reservation", "[capiScene]") +TEST_CASE("Scene Reservation", "[capiScene]") { Tvg_Paint* scene = tvg_scene_new(); REQUIRE(scene); - - REQUIRE(tvg_scene_reserve(scene,100) == TVG_RESULT_SUCCESS): - + + //Check Growth / Reduction + REQUIRE(tvg_scene_reserve(scene, 100) == TVG_RESULT_SUCCESS); + REQUIRE(tvg_scene_reserve(scene, 1000) == TVG_RESULT_SUCCESS); + REQUIRE(tvg_scene_reserve(scene, 100) == TVG_RESULT_SUCCESS); + REQUIRE(tvg_scene_reserve(scene, 0) == TVG_RESULT_SUCCESS); + + //Too big size + REQUIRE(tvg_scene_reserve(scene, -1) == TVG_RESULT_FAILED_ALLOCATION); + + REQUIRE(tvg_paint_del(scene) == TVG_RESULT_SUCCESS); } -TEST_CASE("Scene Clear", "[capiScene]") +TEST_CASE("Clear the Scene", "[capiScene]") { - Tvg_Paint* scene = tvg_scene_new(); - REQUIRE(scene); - - REQUIRE(tvg_scene_clear(scene,1) == TVG_RESULT_SUCCESS) ; - + Tvg_Paint* scene = tvg_scene_new(); + REQUIRE(scene); + + REQUIRE(tvg_scene_push(scene, tvg_shape_new()) == TVG_RESULT_SUCCESS); + REQUIRE(tvg_scene_clear(scene, true) == TVG_RESULT_SUCCESS); + + REQUIRE(tvg_paint_del(scene) == TVG_RESULT_SUCCESS); } +TEST_CASE("Scene reusing paints", "[capiScene]") +{ + REQUIRE(tvg_engine_init(TVG_ENGINE_SW, 0) == TVG_RESULT_SUCCESS); + Tvg_Canvas* canvas = tvg_swcanvas_create(); + REQUIRE(canvas); + + uint32_t* buffer = (uint32_t*) malloc(sizeof(uint32_t) * 200 * 200); + REQUIRE(buffer); + + REQUIRE(tvg_swcanvas_set_target(canvas, buffer, 200, 200, 200, TVG_COLORSPACE_ARGB8888) == TVG_RESULT_SUCCESS); + + Tvg_Paint* scene = tvg_scene_new(); + REQUIRE(scene); + + Tvg_Paint* shape = tvg_shape_new(); + REQUIRE(shape); + + REQUIRE(tvg_scene_push(scene, shape) == TVG_RESULT_SUCCESS); + REQUIRE(tvg_canvas_push(canvas, scene) == TVG_RESULT_SUCCESS); + REQUIRE(tvg_canvas_update(canvas) == TVG_RESULT_SUCCESS); + + //No deallocate shape. + REQUIRE(tvg_scene_clear(scene, false) == TVG_RESULT_SUCCESS); + + //Reuse shape. + REQUIRE(tvg_scene_push(scene, shape) == TVG_RESULT_SUCCESS); + + REQUIRE(tvg_canvas_destroy(canvas) == TVG_RESULT_SUCCESS); + + REQUIRE(tvg_engine_term(TVG_ENGINE_SW) == TVG_RESULT_SUCCESS); + + free(buffer); +} diff --git a/test/testScene.cpp b/test/testScene.cpp index 380c61fe..f52c5d06 100644 --- a/test/testScene.cpp +++ b/test/testScene.cpp @@ -44,7 +44,7 @@ TEST_CASE("Pushing Paints Into Scene", "[tvgScene]") //Pushing Null Pointer REQUIRE(scene->push(nullptr) == Result::MemoryCorruption); - //Pushing Invalid Object + //Pushing Invalid Paint std::unique_ptr shape = nullptr; REQUIRE(scene->push(move(shape)) == Result::MemoryCorruption); }