commit 5e7f33dfc6a5ab1120f194dcd469ff659c98bc15
parent 1f2f3127500c5018b9760adc7dd025e9f19ae35b
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Mon, 9 Dec 2019 10:39:46 +0100
Add tests
Diffstat:
1 file changed, 32 insertions(+), 0 deletions(-)
diff --git a/src/test_sg3_report_2.c b/src/test_sg3_report_2.c
@@ -76,6 +76,18 @@ validate
return RES_OK;
}
+static res_T
+validate2
+ (const unsigned itri,
+ const unsigned properties[3],
+ void* context,
+ int* properties_conflict)
+{
+ (void)itri; (void)properties; (void)context;
+ *properties_conflict = (itri % 2 == 0) ? 0 : itri;
+ return RES_OK;
+}
+
int
main(int argc, char** argv)
{
@@ -364,11 +376,31 @@ main(int argc, char** argv)
OK(sg3_report_get_properties_conflict_count(report, &count));
CHK(count == 0);
+ /* Clear geometry */
+ SG3(geometry_ref_put(geometry));
+ OK(sg3_report_ref_put(report));
+ OK(sg3_report_create(dev, &report));
+ OK(sg3_geometry_create(dev, report, &geometry));
+
+ /* Successful add geometry with merge callback */
+ OK(sg3_geometry_add(geometry, ntriangles, get_indices, get_properties,
+ nvertices, get_position, add_trg, merge_trg, &ctx));
+ OK(sg3_report_get_merge_conflict_count(report, &count));
+ CHK(count == 0);
+
OK(sg3_report_validate_properties(report, validate, NULL));
OK(sg3_report_get_properties_conflict_count(report, &count));
CHK(count == 0);
OK(sg3_report_dump_as_obj(report, stdout, SG3_ALL_TRIANGLES));
+ OK(sg3_report_validate_properties(report, validate, NULL));
+ OK(sg3_report_get_properties_conflict_count(report, &count));
+ CHK(count == 0);
+
+ OK(sg3_report_validate_properties(report, validate2, NULL));
+ OK(sg3_report_get_properties_conflict_count(report, &count));
+ CHK(count == ntriangles / 2);
+
OK(sg3_geometry_ref_put(geometry));
OK(sg3_report_ref_put(report));
OK(sg3_device_ref_put(dev));