commit ee478bde6a30516fa0357ad499b5837352b761db
parent acb392cd371c8b6240c76316f4499ace02a975fc
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Mon, 13 Jan 2020 15:55:36 +0100
Change remaining tests according to new API
Diffstat:
5 files changed, 43 insertions(+), 55 deletions(-)
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
@@ -29,16 +29,26 @@ find_package(RSys 0.8.1 REQUIRED)
find_package(OpenMP 2.0 REQUIRED)
if(NOT NO_TEST)
-find_package(StarSP 0.7 REQUIRED)
-find_package(Star3DUT 0.3.1 REQUIRED)
+ find_package(StarSP 0.7 REQUIRED)
+ find_package(Star3DUT 0.3.1 REQUIRED)
endif()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${RCMAKE_SOURCE_DIR})
include(rcmake)
include(rcmake_runtime)
-
+
if(NO_TEST)
-rcmake_append_runtime_dirs(_runtime_dirs RSys Star3D)
+ include_directories(
+ ${RSys_INCLUDE_DIR}
+ ${Star3D_INCLUDE_DIR})
+
+ rcmake_append_runtime_dirs(_runtime_dirs RSys Star3D)
+else()
+ include_directories(
+ ${RSys_INCLUDE_DIR}
+ ${Star3D_INCLUDE_DIR}
+ ${Star3DUT_INCLUDE_DIR}
+ ${StarSP_INCLUDE_DIR})
if(ADDITIONAL_TESTS)
rcmake_append_runtime_dirs(_runtime_dirs RSys StarSP Star3DUT Star3D)
@@ -81,11 +91,15 @@ rcmake_prepend_path(SENC_FILES_INC ${SENC_SOURCE_DIR})
rcmake_prepend_path(SENC_FILES_INC_API ${SENC_SOURCE_DIR})
rcmake_prepend_path(SENC_FILES_DOC ${PROJECT_SOURCE_DIR}/../)
+if(CMAKE_COMPILER_IS_GNUCC)
+ set(MATH_LIB m)
+endif()
+
add_library(senc SHARED
${SENC_FILES_SRC}
${SENC_FILES_INC}
${SENC_FILES_INC_API})
-target_link_libraries(senc RSys Star3D)
+target_link_libraries(senc RSys Star3D ${MATH_LIB})
set_target_properties(senc PROPERTIES
DEFINE_SYMBOL SENC_SHARED_BUILD
diff --git a/src/test_senc_inconsistant_cube.c b/src/test_senc_inconsistant_cube.c
@@ -51,7 +51,6 @@ static void
test(const int convention)
{
struct mem_allocator allocator;
- struct descriptor* desc = NULL;
struct senc_device* dev = NULL;
struct senc_scene* scn = NULL;
struct senc_enclosure* enclosure;
@@ -65,8 +64,6 @@ test(const int convention)
CHK(senc_device_create(NULL, &allocator, SENC_NTHREADS_DEFAULT, 1, &dev)
== RES_OK);
- CHK(senc_scene_create(dev, convention, &scn) == RES_OK);
-
/* A 3D cube.
* 2 enclosures (inside, outside) sharing the same triangles,
* but opposite sides.
@@ -74,19 +71,13 @@ test(const int convention)
* in the opposite rotation order. */
ctx.positions = box_vertices;
ctx.indices = inconsistant_box_indices;
- ctx.scale = 1;
- ctx.reverse_vrtx = 0;
- ctx.reverse_med = 0;
- d3(ctx.offset, 0, 0, 0);
ctx.front_media = inconsistant_medium_front;
ctx.back_media = inconsistant_medium_back;
- CHK(senc_scene_add_geometry(scn, inconsistant_box_ntriangles, get_indices,
- get_media, nvertices, get_position, NULL, NULL, &ctx) == RES_OK);
-
- CHK(senc_scene_analyze(scn, &desc) == RES_OK);
+ OK(senc_scene_create(dev, convention, inconsistant_box_ntriangles,
+ get_indices, get_media, nvertices, get_position, &ctx, &scn));
- CHK(senc_descriptor_get_enclosure_count(desc, &ecount) == RES_OK);
+ CHK(senc_scene_get_enclosure_count(scn, &ecount) == RES_OK);
CHK(ecount == 2);
CHK(senc_scene_get_convention(scn, &conv) == RES_OK);
@@ -99,7 +90,7 @@ test(const int convention)
char name[128];
enum senc_side side, expected_side;
unsigned gid;
- CHK(senc_descriptor_get_enclosure(desc, e, &enclosure) == RES_OK);
+ CHK(senc_scene_get_enclosure(scn, e, &enclosure) == RES_OK);
CHK(senc_enclosure_get_header(enclosure, &header) == RES_OK);
CHK(header.enclosed_media_count == 1);
CHK(senc_enclosure_get_medium(enclosure, 0, &medium) == RES_OK);
@@ -112,7 +103,7 @@ test(const int convention)
sprintf(name, "test_inconsistant_cube_%s_%s_%u.obj",
conv_front ? "front" : "back", conv_in ? "in" : "out", e);
- dump_enclosure(desc, e, name);
+ dump_enclosure(scn, e, name);
FOR_EACH(i, 0, header.triangle_count) {
int same, reversed, fst_reversed;
@@ -133,7 +124,6 @@ test(const int convention)
SENC(scene_ref_put(scn));
SENC(device_ref_put(dev));
- SENC(descriptor_ref_put(desc));
check_memory_allocator(&allocator);
mem_shutdown_proxy_allocator(&allocator);
diff --git a/src/test_senc_many_enclosures.c b/src/test_senc_many_enclosures.c
@@ -75,12 +75,12 @@ get_s3dut_position(const unsigned ivert, double pos[3], void* context)
s3dut_ivert = ivert % (unsigned)ctx->data.nvertices;
cyl_idx = ivert / (unsigned)ctx->data.nvertices;
/* k th cylinder of the imbrication at grid position i,j */
- i = cyl_idx / (NB_CYL_Y * NB_CYL_Z);
+ i = (int)cyl_idx / (NB_CYL_Y * NB_CYL_Z);
j = (cyl_idx / NB_CYL_Z ) % NB_CYL_Y;
k = cyl_idx % NB_CYL_Z;
ASSERT(i < NB_CYL_X && j < NB_CYL_Y && k < NB_CYL_Z);
- ASSERT((i * NB_CYL_Y * NB_CYL_Z + j * NB_CYL_Z + k) * ctx->data.nvertices
- + s3dut_ivert == ivert);
+ ASSERT((unsigned)(i * NB_CYL_Y * NB_CYL_Z + j * NB_CYL_Z + k)
+ * ctx->data.nvertices + s3dut_ivert == ivert);
center_x = 2 * (1 + NB_CYL_X) * (i - NB_CYL_X / 2);
center_y = 2 * (1 + NB_CYL_Y) * (j - NB_CYL_Y / 2);
/* Compute scale and offset from imbrication */
diff --git a/src/test_senc_sample_enclosure.c b/src/test_senc_sample_enclosure.c
@@ -27,7 +27,6 @@ int
main(int argc, char** argv)
{
struct mem_allocator allocator;
- struct descriptor* desc = NULL;
struct senc_device* dev = NULL;
struct senc_scene* scn = NULL;
struct senc_enclosure* enclosure = NULL;
@@ -44,53 +43,39 @@ main(int argc, char** argv)
float st[2];
(void)argc, (void)argv;
- CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK);
- CHK(senc_device_create(NULL, &allocator, SENC_NTHREADS_DEFAULT, 1, &dev)
- == RES_OK);
-
- CHK(senc_scene_create(dev,
- SENC_CONVENTION_NORMAL_FRONT | SENC_CONVENTION_NORMAL_INSIDE, &scn) == RES_OK);
-
- vrtx_get.type = S3D_FLOAT3;
- vrtx_get.usage = S3D_POSITION;
- vrtx_get.get = senc_s3d_enclosure_get_position__;
-
- S3D(device_create(NULL, &allocator, 0, &s3d));
-
- S3D(scene_create(s3d, &s3d_scn));
+ OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator));
+ OK(senc_device_create(NULL, &allocator, SENC_NTHREADS_DEFAULT, 1, &dev));
/* A 3D cube, but with a hole (incomplete).
* 1 single enclosure including both sides of triangles */
-
- ctx.positions = cube_vertices; /* Need a true cube */
+ ctx.positions = cube_vertices;
ctx.indices = box_indices;
- ctx.scale = 1;
- ctx.reverse_vrtx = 0;
- ctx.reverse_med = 0;
- d3(ctx.offset, 0, 0, 0);
ctx.front_media = medium0;
ctx.back_media = medium0;
- CHK(senc_scene_add_geometry(scn, ntriangles - 1, get_indices,
- get_media, nvertices, get_position, NULL, NULL, &ctx) == RES_OK);
-
- CHK(senc_scene_analyze(scn, &desc) == RES_OK);
+ OK(senc_scene_create(dev,
+ SENC_CONVENTION_NORMAL_FRONT | SENC_CONVENTION_NORMAL_INSIDE,
+ ntriangles - 1, get_indices, get_media, nvertices, get_position, &ctx,
+ &scn));
- CHK(senc_descriptor_get_enclosure(desc, 0, &enclosure) == RES_OK);
- CHK(senc_enclosure_get_header(enclosure, &header) == RES_OK);
+ OK(senc_scene_get_enclosure(scn, 0, &enclosure));
+ OK(senc_enclosure_get_header(enclosure, &header));
/* Put enclosure in a 3D view... */
+ vrtx_get.type = S3D_FLOAT3;
+ vrtx_get.usage = S3D_POSITION;
+ vrtx_get.get = senc_s3d_enclosure_get_position__;
+ S3D(device_create(NULL, &allocator, 0, &s3d));
+ S3D(scene_create(s3d, &s3d_scn));
S3D(shape_create_mesh(s3d, &s3d_shp));
S3D(mesh_setup_indexed_vertices(s3d_shp, header.triangle_count,
senc_s3d_enclosure_get_indices__, header.vertices_count, &vrtx_get, 1,
enclosure));
-
S3D(scene_attach_shape(s3d_scn, s3d_shp));
-
S3D(scene_view_create(s3d_scn, S3D_SAMPLE, &s3d_view));
/* ... and sample it. */
- CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK);
+ OK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng));
FOR_EACH(i, 0, 10000) {
struct s3d_attrib attrib;
int n, c;
@@ -123,7 +108,6 @@ main(int argc, char** argv)
SENC(enclosure_ref_put(enclosure));
SENC(scene_ref_put(scn));
SENC(device_ref_put(dev));
- SENC(descriptor_ref_put(desc));
SSP(rng_ref_put(rng));
diff --git a/src/test_senc_some_triangles.c b/src/test_senc_some_triangles.c
@@ -2723,7 +2723,7 @@ main(int argc, char** argv)
OK(senc_scene_get_enclosure(scn, e, &enclosure));
OK(senc_enclosure_get_header(enclosure, &header));
CHK(header.triangle_count ==
- e ? CYL_TRG_COUNT : NB_CYL * CYL_TRG_COUNT);
+ (e ? CYL_TRG_COUNT : NB_CYL * CYL_TRG_COUNT));
OK(senc_enclosure_ref_put(enclosure));
}