mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-08 05:33:36 +00:00
tests capi: revise the show-case & infrastructure.
This commit is contained in:
parent
5b99bc186d
commit
90dd1b5f98
4 changed files with 48 additions and 36 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2020-2021 Samsung Electronics Co., Ltd. All rights reserved.
|
* Copyright (c) 2021 Samsung Electronics Co., Ltd. All rights reserved.
|
||||||
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -21,61 +21,53 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <thorvg_capi.h>
|
#include <thorvg_capi.h>
|
||||||
#include "catch.hpp"
|
#include "../catch.hpp"
|
||||||
|
|
||||||
#define TEST_R 120
|
|
||||||
#define TEST_G 154
|
|
||||||
#define TEST_B 180
|
|
||||||
#define TEST_A 100
|
|
||||||
|
|
||||||
TEST_CASE("Set/Get fill color", "[tvgCapiShapeFill]")
|
TEST_CASE("Set/Get fill color", "[capiShapeFill]")
|
||||||
{
|
{
|
||||||
Tvg_Paint *paint = NULL;
|
Tvg_Paint *paint = tvg_shape_new();
|
||||||
paint = tvg_shape_new();
|
REQUIRE(paint);
|
||||||
|
|
||||||
|
REQUIRE(tvg_shape_set_fill_color(paint, 120, 154, 180, 100) == TVG_RESULT_SUCCESS);
|
||||||
|
|
||||||
uint8_t r = 0, g = 0, b = 0, a = 0;
|
uint8_t r = 0, g = 0, b = 0, a = 0;
|
||||||
|
|
||||||
REQUIRE(paint != NULL);
|
|
||||||
REQUIRE(tvg_shape_set_fill_color(paint, TEST_R, TEST_G, TEST_B, TEST_A) == TVG_RESULT_SUCCESS);
|
|
||||||
|
|
||||||
REQUIRE(tvg_shape_get_fill_color(paint, &r, &g, &b, &a) == TVG_RESULT_SUCCESS);
|
REQUIRE(tvg_shape_get_fill_color(paint, &r, &g, &b, &a) == TVG_RESULT_SUCCESS);
|
||||||
REQUIRE(r == TEST_R);
|
|
||||||
REQUIRE(g == TEST_G);
|
REQUIRE(r == 120);
|
||||||
REQUIRE(b == TEST_B);
|
REQUIRE(g == 154);
|
||||||
REQUIRE(a == TEST_A);
|
REQUIRE(b == 180);
|
||||||
|
REQUIRE(a == 100);
|
||||||
|
|
||||||
REQUIRE(tvg_paint_del(paint) == TVG_RESULT_SUCCESS);
|
REQUIRE(tvg_paint_del(paint) == TVG_RESULT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("Set/Get fill color on invalid shape", "[tvgCapiShapeFill]")
|
TEST_CASE("Set/Get fill color on invalid shape", "[capiShapeFill]")
|
||||||
{
|
{
|
||||||
Tvg_Paint *paint = NULL;
|
REQUIRE(tvg_shape_set_fill_color(NULL, 120, 154, 180, 100) == TVG_RESULT_INVALID_ARGUMENT);
|
||||||
|
|
||||||
uint8_t r = 0, g = 0, b = 0, a = 0;
|
|
||||||
|
|
||||||
REQUIRE(tvg_shape_set_fill_color(paint, TEST_R, TEST_G, TEST_B, TEST_A) == TVG_RESULT_INVALID_ARGUMENT);
|
uint8_t r, g, b, a;
|
||||||
REQUIRE(tvg_shape_get_fill_color(paint, &r, &g, &b, &a) == TVG_RESULT_INVALID_ARGUMENT);
|
REQUIRE(tvg_shape_get_fill_color(NULL, &r, &g, &b, &a) == TVG_RESULT_INVALID_ARGUMENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("Set/Get shape fill rule", "[tvgCapiShapeFill]")
|
TEST_CASE("Set/Get shape fill rule", "[capiShapeFill]")
|
||||||
{
|
{
|
||||||
Tvg_Paint *paint = NULL;
|
Tvg_Paint *paint = tvg_shape_new();
|
||||||
Tvg_Fill_Rule rule = TVG_FILL_RULE_WINDING;
|
REQUIRE(paint);
|
||||||
|
|
||||||
paint = tvg_shape_new();
|
|
||||||
|
|
||||||
REQUIRE(paint != NULL);
|
|
||||||
REQUIRE(tvg_shape_set_fill_rule(paint, TVG_FILL_RULE_EVEN_ODD) == TVG_RESULT_SUCCESS);
|
REQUIRE(tvg_shape_set_fill_rule(paint, TVG_FILL_RULE_EVEN_ODD) == TVG_RESULT_SUCCESS);
|
||||||
|
|
||||||
|
Tvg_Fill_Rule rule = TVG_FILL_RULE_WINDING;
|
||||||
REQUIRE(tvg_shape_get_fill_rule(paint, &rule) == TVG_RESULT_SUCCESS);
|
REQUIRE(tvg_shape_get_fill_rule(paint, &rule) == TVG_RESULT_SUCCESS);
|
||||||
REQUIRE(rule == TVG_FILL_RULE_EVEN_ODD);
|
REQUIRE(rule == TVG_FILL_RULE_EVEN_ODD);
|
||||||
|
|
||||||
REQUIRE(tvg_paint_del(paint) == TVG_RESULT_SUCCESS);
|
REQUIRE(tvg_paint_del(paint) == TVG_RESULT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("Set/Get shape fill rule on invalid object", "[tvgCapiShapeFill]")
|
TEST_CASE("Set/Get shape fill rule on invalid object", "[capiShapeFill]")
|
||||||
{
|
{
|
||||||
Tvg_Paint *paint = NULL;
|
REQUIRE(tvg_shape_set_fill_rule(NULL, TVG_FILL_RULE_EVEN_ODD) == TVG_RESULT_INVALID_ARGUMENT);
|
||||||
Tvg_Fill_Rule rule = TVG_FILL_RULE_WINDING;
|
|
||||||
|
|
||||||
REQUIRE(tvg_shape_set_fill_rule(paint, TVG_FILL_RULE_EVEN_ODD) == TVG_RESULT_INVALID_ARGUMENT);
|
Tvg_Fill_Rule rule;
|
||||||
REQUIRE(tvg_shape_get_fill_rule(paint, &rule) == TVG_RESULT_INVALID_ARGUMENT);
|
REQUIRE(tvg_shape_get_fill_rule(NULL, &rule) == TVG_RESULT_INVALID_ARGUMENT);
|
||||||
}
|
}
|
5
test/capi/capiMain.cpp
Normal file
5
test/capi/capiMain.cpp
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
// The only purpose of this file is to DEFINE the catch config so it can include main()
|
||||||
|
|
||||||
|
#define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one cpp file
|
||||||
|
|
||||||
|
#include "../catch.hpp"
|
11
test/capi/meson.build
Normal file
11
test/capi/meson.build
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
test_file = [
|
||||||
|
'capiMain.cpp',
|
||||||
|
'capiFill.cpp',
|
||||||
|
]
|
||||||
|
|
||||||
|
tests = executable('capiUnitTests',
|
||||||
|
test_file,
|
||||||
|
include_directories : headers,
|
||||||
|
link_with : thorvg_lib)
|
||||||
|
|
||||||
|
test('Capi Unit Tests', tests)
|
|
@ -3,7 +3,6 @@ test_file = [
|
||||||
'testInitializer.cpp',
|
'testInitializer.cpp',
|
||||||
'testSwCanvas.cpp',
|
'testSwCanvas.cpp',
|
||||||
'testSwCanvasBase.cpp',
|
'testSwCanvasBase.cpp',
|
||||||
'capi/testFill.cpp',
|
|
||||||
]
|
]
|
||||||
|
|
||||||
tests = executable('tvgUnitTests',
|
tests = executable('tvgUnitTests',
|
||||||
|
@ -12,3 +11,8 @@ tests = executable('tvgUnitTests',
|
||||||
link_with : thorvg_lib)
|
link_with : thorvg_lib)
|
||||||
|
|
||||||
test('Unit Tests', tests)
|
test('Unit Tests', tests)
|
||||||
|
|
||||||
|
if get_option('bindings').contains('capi') == true
|
||||||
|
subdir('capi')
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue