commit 185b76b05ace10f04ee63d26318e1262fd2f04ad
parent 27c981786fa5969bbedd80fed0bed8cf33f97104
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Tue, 10 Jul 2018 15:51:03 +0200
Check get_enclosure_[count_]by_medium API calls: failure!
Diffstat:
2 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/src/senc2d.h b/src/senc2d.h
@@ -173,7 +173,7 @@ senc2d_descriptor_get_enclosure_count
SENC2D_API res_T
senc2d_descriptor_get_enclosure_count_by_medium
(const struct senc2d_descriptor* descriptor,
- const unsigned medium,
+ const unsigned imed,
unsigned* count);
SENC2D_API res_T
@@ -185,7 +185,7 @@ senc2d_descriptor_get_enclosure
SENC2D_API res_T
senc2d_descriptor_get_enclosure_by_medium
(struct senc2d_descriptor* descriptor,
- const unsigned medium,
+ const unsigned imed,
const unsigned idx,
struct senc2d_enclosure** enclosure);
diff --git a/src/test_senc2d_square_behind_square.c b/src/test_senc2d_square_behind_square.c
@@ -18,6 +18,31 @@
#include <rsys/double2.h>
+void check_desc(struct senc2d_descriptor* desc) {
+ unsigned mcount, ecount, i;
+ CHK(senc2d_descriptor_get_max_medium(desc, &mcount) == RES_OK);
+ CHK(mcount == 2);
+ CHK(senc2d_descriptor_get_enclosure_count(desc, &ecount) == RES_OK);
+ FOR_EACH(i, 0, mcount) {
+ unsigned j, ecount_bym;
+ int found = 0;
+ senc2d_descriptor_get_enclosure_count_by_medium(desc, i, &ecount_bym);
+ FOR_EACH(j, 0, ecount_bym) {
+ struct senc2d_enclosure* enc;
+ struct senc2d_enclosure_header h;
+ unsigned c, k;
+ CHK(senc2d_descriptor_get_enclosure_by_medium(desc, i, j, &enc) == RES_OK);
+ CHK(senc2d_enclosure_get_header(enc, &h) == RES_OK);
+ found += (h.enclosed_medium == i);
+ CHK(senc2d_enclosure_ref_put(enc) == RES_OK);
+ }
+ ASSERT(found == ecount_bym); /* All the enclosures enclose medim i */
+ ASSERT(ecount_bym);
+ ecount -= ecount_bym;
+ }
+ ASSERT(ecount == 0);
+}
+
int
main(int argc, char** argv)
{
@@ -58,10 +83,14 @@ main(int argc, char** argv)
nvertices, get_position, &ctx) == RES_OK);
CHK(senc2d_scene_analyze(scn, &desc) == RES_OK);
+
+ check_desc(desc);
/* Even further in +Y, even bigger */
d2(ctx.offset, -3, 30);
ctx.scale = 7;
+ /* Front/back media have been exchanged: external enclosure shows 2 media
+ * analyze will fail */
ctx.front_media = medium1;
ctx.back_media = medium0;