From 25370f438e19d9f6ae7471f0056d73253a0507db Mon Sep 17 00:00:00 2001 From: Mira Grudzinska Date: Wed, 19 Jun 2024 13:36:53 +0200 Subject: [PATCH] tests: add missing capi saver tests & ifdefs --- test/capi/capiSavers.cpp | 49 ++++++++++++++++++++++++++++++++++++++-- test/testSavers.cpp | 4 ++++ 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/test/capi/capiSavers.cpp b/test/capi/capiSavers.cpp index 2ac90796..e85fe4e2 100644 --- a/test/capi/capiSavers.cpp +++ b/test/capi/capiSavers.cpp @@ -36,7 +36,7 @@ TEST_CASE("Create and delete a Saver", "[capiSaver]") #ifdef THORVG_TVG_SAVER_SUPPORT -TEST_CASE("Save a paint into a file", "[capiSaver]") +TEST_CASE("Save a paint into tvg", "[capiSaver]") { Tvg_Saver* saver = tvg_saver_new(); REQUIRE(saver); @@ -101,10 +101,55 @@ TEST_CASE("Synchronize a Saver", "[capiSaver]") REQUIRE(tvg_saver_del(saver) == TVG_RESULT_SUCCESS); } +TEST_CASE("Save scene into tvg", "[capiSaver]") +{ + Tvg_Paint* picture = tvg_picture_new(); + REQUIRE(picture); + + Tvg_Saver* saver = tvg_saver_new(); + REQUIRE(saver); + + FILE* file = fopen(TEST_DIR"/rawimage_200x300.raw", "r"); + REQUIRE(file); + uint32_t* data = (uint32_t*)malloc(sizeof(uint32_t) * (200*300)); + + if (data && fread(data, sizeof(uint32_t), 200 * 300, file) > 0) { + REQUIRE(tvg_picture_load_raw(picture, data, 200, 300, true, true) == TVG_RESULT_SUCCESS); + REQUIRE(tvg_saver_save(saver, picture, TEST_DIR"/test.tvg", 88) == TVG_RESULT_SUCCESS); + REQUIRE(tvg_saver_sync(saver) == TVG_RESULT_SUCCESS); + } + + REQUIRE(tvg_saver_del(saver) == TVG_RESULT_SUCCESS); + + fclose(file); + free(data); +} + +#ifdef THORVG_SVG_LOADER_SUPPORT + +TEST_CASE("Save svg into tvg", "[capiSaver]") +{ + Tvg_Paint* picture = tvg_picture_new(); + REQUIRE(picture); + REQUIRE(tvg_picture_load(picture, TEST_DIR"/logo.svg") == TVG_RESULT_SUCCESS); + REQUIRE(tvg_picture_set_size(picture, 222, 333) == TVG_RESULT_SUCCESS); + REQUIRE(tvg_paint_translate(picture, 123.45, 54.321) == TVG_RESULT_SUCCESS); + + Tvg_Saver* saver = tvg_saver_new(); + REQUIRE(saver); + + REQUIRE(tvg_saver_save(saver, picture, TEST_DIR"/test.tvg", 100) == TVG_RESULT_SUCCESS); + REQUIRE(tvg_saver_sync(saver) == TVG_RESULT_SUCCESS); + + REQUIRE(tvg_saver_del(saver) == TVG_RESULT_SUCCESS); +} + +#endif + #endif -#ifdef THORVG_GIF_SAVER_SUPPORT +#if defined(THORVG_GIF_SAVER_SUPPORT) && defined(THORVG_LOTTIE_LOADER_SUPPORT) TEST_CASE("Save a lottie into gif", "[capiSavers]") { diff --git a/test/testSavers.cpp b/test/testSavers.cpp index 469c9162..90c63fd9 100644 --- a/test/testSavers.cpp +++ b/test/testSavers.cpp @@ -47,6 +47,8 @@ TEST_CASE("Save empty shape", "[tvgSavers]") REQUIRE(saver->save(std::move(shape), TEST_DIR"/test.tvg") == Result::Unknown); } +#ifdef THORVG_SVG_LOADER_SUPPORT + TEST_CASE("Save svg into tvg", "[tvgSavers]") { REQUIRE(Initializer::init(0) == Result::Success); @@ -64,6 +66,8 @@ TEST_CASE("Save svg into tvg", "[tvgSavers]") REQUIRE(Initializer::term() == Result::Success); } +#endif + TEST_CASE("Save scene into tvg", "[tvgSavers]") { REQUIRE(Initializer::init(0) == Result::Success);