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:
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());