star-cad

Geometric operators for computer-aided design
git clone git://git.meso-star.fr/star-cad.git
Log | Files | Refs | README | LICENSE

commit 81f446948e84c9365d8f8213275dc4057c1a4a75
parent 612044e770202a92fa1c9e6f04dfec0a6382d494
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Wed, 28 Dec 2022 19:08:31 +0100

Improve API testing (still incomplete) and adapt to latest changes

Diffstat:
Msrc/test_api.c | 38+++++++++++++++++++++++++-------------
1 file changed, 25 insertions(+), 13 deletions(-)

diff --git a/src/test_api.c b/src/test_api.c @@ -18,6 +18,7 @@ #include "test_common.h" #include <rsys/rsys.h> +#include <rsys/str.h> #include <rsys/math.h> #include <rsys/mem_allocator.h> #include <rsys/logger.h> @@ -47,12 +48,14 @@ main(int argc, char* argv[]) struct scad_geometry* geom1 = NULL; struct scad_geometry* geom2 = NULL; struct scad_geometry* geom = NULL; + struct scad_geometry* poly = NULL; struct scad_geometry** geom_array = NULL; struct scad_geometry* geoms[2]; struct scad_geometry* out_geoms[2]; struct mem_allocator allocator; struct logger logger; - size_t c; + const char* name; + size_t i, c; (void)argc; (void)argv; @@ -73,6 +76,7 @@ main(int argc, char* argv[]) BAD(scad_step_import("test.step", NULL, &geom_array, &c)); BAD(scad_scene_mesh()); BAD(scad_run_ui()); + BAD(scad_geometry_get_name(geom, &name)); /* cannot call any API function after a successful call to scad_finalize */ OK(scad_initialize(&logger, &allocator, 3)); @@ -91,6 +95,7 @@ main(int argc, char* argv[]) BAD(scad_step_import("test.step", NULL, &geom_array, &c)); BAD(scad_scene_mesh()); BAD(scad_run_ui()); + BAD(scad_geometry_get_name(geom, &name)); BAD(scad_initialize(&logger, &allocator, 4)); BAD(scad_initialize(&logger, &allocator, -1)); @@ -122,12 +127,11 @@ main(int argc, char* argv[]) OK(scad_add_disk(NULL, p1, 1, &geom)); OK(scad_geometry_delete(geom)); - BAD(scad_add_polygon(NULL, NULL, coord, 0, 3, &geom)); - BAD(scad_add_polygon(NULL, get_position, coord, 0, 2, &geom)); - BAD(scad_add_polygon(NULL, get_position, coord, 0, 2, &geom)); + BAD(scad_add_polygon(NULL, NULL, coord, 0, 3, &poly)); + BAD(scad_add_polygon(NULL, get_position, coord, 0, 2, &poly)); + BAD(scad_add_polygon(NULL, get_position, coord, 0, 2, &poly)); BAD(scad_add_polygon(NULL, get_position, coord, 0, 3, NULL)); - OK(scad_add_polygon(NULL, get_position, coord, 0, 3, &geom)); - OK(scad_geometry_delete(geom)); + OK(scad_add_polygon(NULL, get_position, coord, 0, 3, &poly)); BAD(scad_add_box(NULL, NULL, d1, &geom)); BAD(scad_add_box(NULL, p1, NULL, &geom)); @@ -186,7 +190,8 @@ main(int argc, char* argv[]) BAD(scad_geometries_partition(geoms, 0, 1, out_geoms)); BAD(scad_geometries_partition(geoms, 2, 1, NULL)); OK(scad_geometries_partition(geoms, 2, 1, out_geoms)); - OK(scad_geometry_delete(geom)); + OK(scad_geometry_delete(out_geoms[0])); + OK(scad_geometry_delete(out_geoms[1])); BAD(scad_geometry_boundary(NULL, NULL, 0, &geom)); BAD(scad_geometry_boundary(NULL, &geom1, 1, NULL)); @@ -213,13 +218,11 @@ main(int argc, char* argv[]) OK(scad_geometry_rotate(geom1, p1, d1, 1)); BAD(scad_geometry_extrude(NULL, NULL, d1, &geom)); - BAD(scad_geometry_extrude(geom1, NULL, NULL, &geom)); - BAD(scad_geometry_extrude(geom1, NULL, d1, NULL)); -#if 0 - /* Crash!? */ - OK(scad_geometry_extrude(geom1, NULL, d1, &geom)); + BAD(scad_geometry_extrude(poly, NULL, NULL, &geom)); + BAD(scad_geometry_extrude(poly, NULL, d1, NULL)); + OK(scad_geometry_extrude(poly, NULL, d1, &geom)); + OK(scad_geometry_delete(poly)); OK(scad_geometry_delete(geom)); -#endif BAD(scad_scene_write(NULL)); ERR(scad_scene_write("")); @@ -231,6 +234,10 @@ main(int argc, char* argv[]) BAD(scad_step_import("/tmp/test.step", "step", &geom_array, NULL)); ERR(scad_step_import("dont_exist.step", "step", &geom_array, &c)); OK(scad_step_import("/tmp/test.step", "step", &geom_array, &c)); + for(i = 0; i < c; i++) { + OK(scad_geometry_delete(geom_array[i])); + } + MEM_RM(&allocator, geom_array); BAD(scad_stl_export(NULL, NULL, 0)); BAD(scad_stl_export(geom2, NULL, 0)); /* geom2 has no name */ @@ -242,6 +249,11 @@ main(int argc, char* argv[]) OK(scad_stl_export_split(geom2, "/tmp/test", 0)); OK(scad_stl_export_split(geom1, NULL, 0)); + BAD(scad_geometry_get_name(NULL, &name)); + BAD(scad_geometry_get_name(geom1, NULL)); + OK(scad_geometry_get_name(geom1, &name)); + OK(scad_geometry_get_name(geom2, &name)); + logger_release(&logger); OK(scad_finalize());