From: Sandro Santilli Date: Mon, 4 Jul 2011 12:29:40 +0000 (+0000) Subject: Plug some memory leaks in the unit tests, to help finding lower-level ones... X-Git-Tag: 2.0.0alpha1~1264 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4b7b72860840c3c69c0710ceda72690c378ece80;p=postgis Plug some memory leaks in the unit tests, to help finding lower-level ones... git-svn-id: http://svn.osgeo.org/postgis/trunk@7578 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/liblwgeom/cunit/cu_algorithm.c b/liblwgeom/cunit/cu_algorithm.c index 5aba73dd7..acfc30855 100644 --- a/liblwgeom/cunit/cu_algorithm.c +++ b/liblwgeom/cunit/cu_algorithm.c @@ -770,7 +770,7 @@ static void test_geohash(void) geohash = lwgeom_geohash((LWGEOM*)lwmline,0); //printf("geohash %s\n",geohash); CU_ASSERT_STRING_EQUAL(geohash, "ss0"); - lwfree(lwmline); + lwgeom_free(lwmline); lwfree(geohash); } @@ -783,27 +783,27 @@ static void test_isclosed(void) /* Not Closed on 2D */ geom = lwgeom_from_ewkt("LINESTRING(1 2,3 4)", PARSER_CHECK_NONE); CU_ASSERT(!lwline_is_closed((LWLINE *) geom)); - lwfree(geom); + lwgeom_free(geom); /* Closed on 2D */ geom = lwgeom_from_ewkt("LINESTRING(1 2,3 4,1 2)", PARSER_CHECK_NONE); CU_ASSERT(lwline_is_closed((LWLINE *) geom)); - lwfree(geom); + lwgeom_free(geom); /* Not closed on 3D */ geom = lwgeom_from_ewkt("LINESTRING(1 2 3,4 5 6)", PARSER_CHECK_NONE); CU_ASSERT(!lwline_is_closed((LWLINE *) geom)); - lwfree(geom); + lwgeom_free(geom); /* Closed on 3D */ geom = lwgeom_from_ewkt("LINESTRING(1 2 3,4 5 6,1 2 3)", PARSER_CHECK_NONE); CU_ASSERT(lwline_is_closed((LWLINE *) geom)); - lwfree(geom); + lwgeom_free(geom); /* Closed on 4D, even if M is not the same */ geom = lwgeom_from_ewkt("LINESTRING(1 2 3 4,5 6 7 8,1 2 3 0)", PARSER_CHECK_NONE); CU_ASSERT(lwline_is_closed((LWLINE *) geom)); - lwfree(geom); + lwgeom_free(geom); /* CIRCULARSTRING */ @@ -811,27 +811,27 @@ static void test_isclosed(void) /* Not Closed on 2D */ geom = lwgeom_from_ewkt("CIRCULARSTRING(1 2,3 4,5 6)", PARSER_CHECK_NONE); CU_ASSERT(!lwcircstring_is_closed((LWCIRCSTRING *) geom)); - lwfree(geom); + lwgeom_free(geom); /* Closed on 2D */ geom = lwgeom_from_ewkt("CIRCULARSTRING(1 2,3 4,1 2)", PARSER_CHECK_NONE); CU_ASSERT(lwcircstring_is_closed((LWCIRCSTRING *) geom)); - lwfree(geom); + lwgeom_free(geom); /* Not closed on 3D */ geom = lwgeom_from_ewkt("CIRCULARSTRING(1 2 3,4 5 6,7 8 9)", PARSER_CHECK_NONE); CU_ASSERT(!lwcircstring_is_closed((LWCIRCSTRING *) geom)); - lwfree(geom); + lwgeom_free(geom); /* Closed on 3D */ geom = lwgeom_from_ewkt("CIRCULARSTRING(1 2 3,4 5 6,1 2 3)", PARSER_CHECK_NONE); CU_ASSERT(lwcircstring_is_closed((LWCIRCSTRING *) geom)); - lwfree(geom); + lwgeom_free(geom); /* Closed on 4D, even if M is not the same */ geom = lwgeom_from_ewkt("CIRCULARSTRING(1 2 3 4,5 6 7 8,1 2 3 0)", PARSER_CHECK_NONE); CU_ASSERT(lwcircstring_is_closed((LWCIRCSTRING *) geom)); - lwfree(geom); + lwgeom_free(geom); /* COMPOUNDCURVE */ @@ -839,42 +839,43 @@ static void test_isclosed(void) /* Not Closed on 2D */ geom = lwgeom_from_ewkt("COMPOUNDCURVE(CIRCULARSTRING(1 2,3 4,1 2),(1 2,7 8,5 6))", PARSER_CHECK_NONE); CU_ASSERT(!lwcompound_is_closed((LWCOMPOUND *) geom)); - lwfree(geom); + lwgeom_free(geom); geom = lwgeom_from_ewkt("COMPOUNDCURVE((1 2,3 4,1 2),CIRCULARSTRING(1 2,7 8,5 6))", PARSER_CHECK_NONE); CU_ASSERT(!lwcompound_is_closed((LWCOMPOUND *) geom)); - lwfree(geom); + lwgeom_free(geom); /* Closed on 2D */ geom = lwgeom_from_ewkt("COMPOUNDCURVE(CIRCULARSTRING(1 2,3 4,5 6), (5 6,7 8,1 2))", PARSER_CHECK_NONE); CU_ASSERT(lwcompound_is_closed((LWCOMPOUND *) geom)); - lwfree(geom); + lwgeom_free(geom); geom = lwgeom_from_ewkt("COMPOUNDCURVE((1 2,3 4,5 6),CIRCULARSTRING(5 6,7 8,1 2))", PARSER_CHECK_NONE); CU_ASSERT(lwcompound_is_closed((LWCOMPOUND *) geom)); - lwfree(geom); + lwgeom_free(geom); /* Not Closed on 3D */ geom = lwgeom_from_ewkt("COMPOUNDCURVE(CIRCULARSTRING(1 2 3,4 5 6,1 2 3),(1 2 3,7 8 9,10 11 12))", PARSER_CHECK_NONE); CU_ASSERT(!lwcompound_is_closed((LWCOMPOUND *) geom)); - lwfree(geom); + lwgeom_free(geom); geom = lwgeom_from_ewkt("COMPOUNDCURVE((1 2 3,4 5 6,1 2 3),CIRCULARSTRING(1 2 3,7 8 9,10 11 12))", PARSER_CHECK_NONE); CU_ASSERT(!lwcompound_is_closed((LWCOMPOUND *) geom)); - lwfree(geom); + lwgeom_free(geom); /* Closed on 3D */ geom = lwgeom_from_ewkt("COMPOUNDCURVE(CIRCULARSTRING(1 2 3,4 5 6,7 8 9),(7 8 9,10 11 12,1 2 3))", PARSER_CHECK_NONE); CU_ASSERT(lwcompound_is_closed((LWCOMPOUND *) geom)); - lwfree(geom); + lwgeom_free(geom); geom = lwgeom_from_ewkt("COMPOUNDCURVE((1 2 3,4 5 6,7 8 9),CIRCULARSTRING(7 8 9,10 11 12,1 2 3))", PARSER_CHECK_NONE); CU_ASSERT(lwcompound_is_closed((LWCOMPOUND *) geom)); - lwfree(geom); + lwgeom_free(geom); /* Closed on 4D, even if M is not the same */ geom = lwgeom_from_ewkt("COMPOUNDCURVE((1 2 3 4,5 6 7 8,9 10 11 12),CIRCULARSTRING(9 10 11 12,13 14 15 16,1 2 3 0))", PARSER_CHECK_NONE); CU_ASSERT(lwcompound_is_closed((LWCOMPOUND *) geom)); + lwgeom_free(geom); } /* diff --git a/liblwgeom/cunit/cu_geodetic.c b/liblwgeom/cunit/cu_geodetic.c index 2f6845888..364e5b937 100644 --- a/liblwgeom/cunit/cu_geodetic.c +++ b/liblwgeom/cunit/cu_geodetic.c @@ -460,16 +460,15 @@ static void test_edge_distance_to_edge(void) * Build LWGEOM on top of *aligned* structure so we can use the read-only * point access methods on them. */ -static LWGEOM* lwgeom_over_gserialized(char *wkt) +static LWGEOM* lwgeom_over_gserialized(char *wkt, GSERIALIZED **g) { LWGEOM *lwg; - GSERIALIZED *g; lwg = lwgeom_from_ewkt(wkt, PARSER_CHECK_NONE); FLAGS_SET_GEODETIC(lwg->flags, 1); - g = gserialized_from_lwgeom(lwg, 1, 0); + *g = gserialized_from_lwgeom(lwg, 1, 0); lwgeom_free(lwg); - return lwgeom_from_gserialized(g); + return lwgeom_from_gserialized(*g); } static void test_lwgeom_check_geodetic(void) @@ -495,19 +494,23 @@ static void test_lwgeom_check_geodetic(void) for ( i = 0; i < 6; i++ ) { - geom = lwgeom_over_gserialized(ewkt[i]); + GSERIALIZED *g; + geom = lwgeom_over_gserialized(ewkt[i], &g); CU_ASSERT_EQUAL(lwgeom_check_geodetic(geom), LW_TRUE); lwgeom_free(geom); + lwfree(g); } for ( i = 6; i < 12; i++ ) { + GSERIALIZED *g; //char *out_ewkt; - geom = lwgeom_over_gserialized(ewkt[i]); + geom = lwgeom_over_gserialized(ewkt[i], &g); CU_ASSERT_EQUAL(lwgeom_check_geodetic(geom), LW_FALSE); //out_ewkt = lwgeom_to_ewkt(geom, PARSER_CHECK_NONE); //printf("%s\n", out_ewkt); lwgeom_free(geom); + lwfree(g); } } @@ -539,7 +542,8 @@ static void test_gbox_calculation(void) for ( i = 0; i < 6; i++ ) { - geom = lwgeom_over_gserialized(ewkt[i]); + GSERIALIZED *g; + geom = lwgeom_over_gserialized(ewkt[i], &g); lwgeom_calculate_gbox_cartesian(geom, gbox); box3d = lwgeom_compute_box3d(geom); //printf("%g %g\n", gbox->xmin, box3d->xmin); @@ -547,7 +551,9 @@ static void test_gbox_calculation(void) CU_ASSERT_EQUAL(gbox->xmax, box3d->xmax); CU_ASSERT_EQUAL(gbox->ymin, box3d->ymin); CU_ASSERT_EQUAL(gbox->ymax, box3d->ymax); + lwgeom_free(geom); lwfree(box3d); + lwfree(g); } lwfree(gbox); } diff --git a/liblwgeom/cunit/cu_homogenize.c b/liblwgeom/cunit/cu_homogenize.c index b7d9f3a53..bd5d2839a 100644 --- a/liblwgeom/cunit/cu_homogenize.c +++ b/liblwgeom/cunit/cu_homogenize.c @@ -36,14 +36,19 @@ static void do_geom_test(char * in, char * out) static void do_coll_test(char * in, char * out) { LWGEOM *g, *h; + char *tmp; g = lwgeom_from_ewkt(in, PARSER_CHECK_NONE); h = lwcollection_homogenize((LWCOLLECTION *) g); - if (strcmp(lwgeom_to_ewkt(h, PARSER_CHECK_NONE), out)) + tmp = lwgeom_to_ewkt(h, PARSER_CHECK_NONE); + if (strcmp(tmp, out)) fprintf(stderr, "\nIn: %s\nOut: %s\nTheo: %s\n", - in, lwgeom_to_ewkt(h, PARSER_CHECK_NONE), out); - CU_ASSERT_STRING_EQUAL(lwgeom_to_ewkt(h, PARSER_CHECK_NONE), out); - lwfree(g); + in, tmp, out); + lwfree(tmp); + tmp = lwgeom_to_ewkt(h, PARSER_CHECK_NONE); + CU_ASSERT_STRING_EQUAL(tmp, out); + lwfree(tmp); + lwgeom_free(g); lwgeom_free(h); } diff --git a/liblwgeom/cunit/cu_libgeom.c b/liblwgeom/cunit/cu_libgeom.c index aec26a0f1..778497bdc 100644 --- a/liblwgeom/cunit/cu_libgeom.c +++ b/liblwgeom/cunit/cu_libgeom.c @@ -221,7 +221,7 @@ static void test_lwgeom_from_gserialized(void) out_ewkt = lwgeom_to_ewkt(geom, PARSER_CHECK_NONE); //printf("\n in = %s\nout = %s\n", in_ewkt, out_ewkt); CU_ASSERT_STRING_EQUAL(in_ewkt, out_ewkt); - lwgeom_release(geom); + lwgeom_free(geom); lwfree(g); lwfree(out_ewkt); } diff --git a/liblwgeom/cunit/cu_print.c b/liblwgeom/cunit/cu_print.c index c90432834..bca60d90d 100644 --- a/liblwgeom/cunit/cu_print.c +++ b/liblwgeom/cunit/cu_print.c @@ -38,13 +38,15 @@ static void test_lwprint_assert_format(char * point_wkt, const char * format, co { printf("\nAssert failed:\n\t%s\t(actual)\n\t%s\t(expected)\n", actual, expected); } - lwfree(test_point); + lwfree(actual); + lwgeom_free(test_point); } static void test_lwprint_assert_error(char * point_wkt, const char * format) { LWPOINT * test_point = (LWPOINT*)lwgeom_from_ewkt(point_wkt, PARSER_CHECK_NONE); cu_error_msg_reset(); - lwpoint_to_latlon(test_point, format); + char* tmp = lwpoint_to_latlon(test_point, format); + lwfree(tmp); if (0 == strlen(cu_error_msg)) { printf("\nAssert failed:\n\tFormat [%s] did not generate an error.\n", format); diff --git a/liblwgeom/cunit/cu_surface.c b/liblwgeom/cunit/cu_surface.c index 224657895..97b1b2118 100644 --- a/liblwgeom/cunit/cu_surface.c +++ b/liblwgeom/cunit/cu_surface.c @@ -107,6 +107,7 @@ void tin_parse(void) { LWGEOM *geom; GSERIALIZED *g; + char *tmp; cu_error_msg_reset(); /* Because i don't trust that much prior tests... ;) */ @@ -124,14 +125,18 @@ void tin_parse(void) geom = lwgeom_from_ewkt("TIN(((0 1,2 3,4 5,0 1)))", PARSER_CHECK_NONE); CU_ASSERT_EQUAL(strlen(cu_error_msg), 0); CU_ASSERT_EQUAL(geom->type, TINTYPE); - CU_ASSERT_STRING_EQUAL("TIN(((0 1,2 3,4 5,0 1)))", lwgeom_to_ewkt(geom, PARSER_CHECK_NONE)); + tmp = lwgeom_to_ewkt(geom, PARSER_CHECK_NONE); + CU_ASSERT_STRING_EQUAL("TIN(((0 1,2 3,4 5,0 1)))", tmp); + lwfree(tmp); lwgeom_free(geom); /* 3DM */ geom = lwgeom_from_ewkt("TINM(((0 1 2,3 4 5,6 7 8,0 1 2)))", PARSER_CHECK_NONE); CU_ASSERT_EQUAL(strlen(cu_error_msg), 0); CU_ASSERT_EQUAL(geom->type, TINTYPE); - CU_ASSERT_STRING_EQUAL("TINM(((0 1 2,3 4 5,6 7 8,0 1 2)))", lwgeom_to_ewkt(geom, PARSER_CHECK_NONE)); + tmp = lwgeom_to_ewkt(geom, PARSER_CHECK_NONE); + CU_ASSERT_STRING_EQUAL("TINM(((0 1 2,3 4 5,6 7 8,0 1 2)))", tmp); + lwfree(tmp); lwgeom_free(geom); /* ERROR: a missing Z values */ @@ -191,7 +196,9 @@ void tin_parse(void) CU_ASSERT_EQUAL(strlen(cu_error_msg), 0); CU_ASSERT_EQUAL(geom->type, TINTYPE); CU_ASSERT_EQUAL(geom->srid, SRID_UNKNOWN); - CU_ASSERT_STRING_EQUAL("TIN(((0 0 0,0 0 1,0 1 0,0 0 0)),((0 0 0,0 1 0,1 0 0,0 0 0)),((0 0 0,1 0 0,0 0 1,0 0 0)),((1 0 0,0 1 0,0 0 1,1 0 0)))", lwgeom_to_ewkt(geom, PARSER_CHECK_NONE)); + tmp = lwgeom_to_ewkt(geom, PARSER_CHECK_NONE); + CU_ASSERT_STRING_EQUAL("TIN(((0 0 0,0 0 1,0 1 0,0 0 0)),((0 0 0,0 1 0,1 0 0,0 0 0)),((0 0 0,1 0 0,0 0 1,0 0 0)),((1 0 0,0 1 0,0 0 1,1 0 0)))", tmp); + lwfree(tmp); lwgeom_free(geom); /* A 4D tetrahedron */ @@ -200,7 +207,9 @@ void tin_parse(void) CU_ASSERT_EQUAL(geom->type, TINTYPE); CU_ASSERT_EQUAL(FLAGS_GET_M(geom->flags), 1); CU_ASSERT_EQUAL(geom->srid, SRID_UNKNOWN); - CU_ASSERT_STRING_EQUAL("TIN(((0 0 0 0,0 0 1 0,0 1 0 2,0 0 0 0)),((0 0 0 0,0 1 0 0,1 0 0 4,0 0 0 0)),((0 0 0 0,1 0 0 0,0 0 1 6,0 0 0 0)),((1 0 0 0,0 1 0 0,0 0 1 0,1 0 0 0)))", lwgeom_to_ewkt(geom, PARSER_CHECK_NONE)); + tmp = lwgeom_to_ewkt(geom, PARSER_CHECK_NONE); + CU_ASSERT_STRING_EQUAL("TIN(((0 0 0 0,0 0 1 0,0 1 0 2,0 0 0 0)),((0 0 0 0,0 1 0 0,1 0 0 4,0 0 0 0)),((0 0 0 0,1 0 0 0,0 0 1 6,0 0 0 0)),((1 0 0 0,0 1 0 0,0 0 1 0,1 0 0 0)))", tmp); + lwfree(tmp); lwgeom_free(geom); /* explicit SRID */ @@ -208,7 +217,9 @@ void tin_parse(void) CU_ASSERT_EQUAL(strlen(cu_error_msg), 0); CU_ASSERT_EQUAL(geom->type, TINTYPE); CU_ASSERT_EQUAL(geom->srid, 4326); - CU_ASSERT_STRING_EQUAL("SRID=4326;TIN(((0 0 0,0 0 1,0 1 0,0 0 0)),((0 0 0,0 1 0,1 0 0,0 0 0)),((0 0 0,1 0 0,0 0 1,0 0 0)),((1 0 0,0 1 0,0 0 1,1 0 0)))", lwgeom_to_ewkt(geom, PARSER_CHECK_NONE)); + tmp = lwgeom_to_ewkt(geom, PARSER_CHECK_NONE); + CU_ASSERT_STRING_EQUAL("SRID=4326;TIN(((0 0 0,0 0 1,0 1 0,0 0 0)),((0 0 0,0 1 0,1 0 0,0 0 0)),((0 0 0,1 0 0,0 0 1,0 0 0)),((1 0 0,0 1 0,0 0 1,1 0 0)))", tmp); + lwfree(tmp); lwgeom_free(geom); /* geography support */ @@ -291,6 +302,7 @@ void polyhedralsurface_parse(void) { LWGEOM *geom; GSERIALIZED *g; + char *tmp; cu_error_msg_reset(); /* Because i don't trust that much prior tests... ;) */ @@ -298,16 +310,24 @@ void polyhedralsurface_parse(void) geom = lwgeom_from_ewkt("POLYHEDRALSURFACE(((0 1,2 3,4 5,0 1)))", PARSER_CHECK_NONE); CU_ASSERT_EQUAL(strlen(cu_error_msg), 0); CU_ASSERT_EQUAL(geom->type, POLYHEDRALSURFACETYPE); - CU_ASSERT_STRING_EQUAL("010D00000001000000010300000001000000040000000000000000000000000000000000F03F00000000000000400000000000000840000000000000104000000000000014400000000000000000000000000000F03F", lwgeom_to_hexwkb_old(geom, PARSER_CHECK_NONE, (char) -1)); - CU_ASSERT_STRING_EQUAL("POLYHEDRALSURFACE(((0 1,2 3,4 5,0 1)))", lwgeom_to_ewkt(geom, PARSER_CHECK_NONE)); + tmp = lwgeom_to_hexwkb_old(geom, PARSER_CHECK_NONE, (char) -1); + CU_ASSERT_STRING_EQUAL("010D00000001000000010300000001000000040000000000000000000000000000000000F03F00000000000000400000000000000840000000000000104000000000000014400000000000000000000000000000F03F", tmp); + lwfree(tmp); + tmp = lwgeom_to_ewkt(geom, PARSER_CHECK_NONE); + CU_ASSERT_STRING_EQUAL("POLYHEDRALSURFACE(((0 1,2 3,4 5,0 1)))", tmp); + lwfree(tmp); lwgeom_free(geom); /* 3DM */ geom = lwgeom_from_ewkt("POLYHEDRALSURFACEM(((0 1 2,3 4 5,6 7 8,0 1 2)))", PARSER_CHECK_NONE); CU_ASSERT_EQUAL(strlen(cu_error_msg), 0); CU_ASSERT_EQUAL(geom->type, POLYHEDRALSURFACETYPE); - CU_ASSERT_STRING_EQUAL("POLYHEDRALSURFACEM(((0 1 2,3 4 5,6 7 8,0 1 2)))", lwgeom_to_ewkt(geom, PARSER_CHECK_NONE)); - CU_ASSERT_STRING_EQUAL("010D00004001000000010300004001000000040000000000000000000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400000000000001C4000000000000020400000000000000000000000000000F03F0000000000000040", lwgeom_to_hexwkb_old(geom, PARSER_CHECK_NONE, (char) -1)); + tmp = lwgeom_to_ewkt(geom, PARSER_CHECK_NONE); + CU_ASSERT_STRING_EQUAL("POLYHEDRALSURFACEM(((0 1 2,3 4 5,6 7 8,0 1 2)))", tmp); + lwfree(tmp); + tmp = lwgeom_to_hexwkb_old(geom, PARSER_CHECK_NONE, (char) -1); + CU_ASSERT_STRING_EQUAL("010D00004001000000010300004001000000040000000000000000000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400000000000001C4000000000000020400000000000000000000000000000F03F0000000000000040", tmp); + lwfree(tmp); lwgeom_free(geom); /* ERROR: a missing Z values */ @@ -320,8 +340,12 @@ void polyhedralsurface_parse(void) geom = lwgeom_from_ewkt("POLYHEDRALSURFACE(((0 1 2,3 4 5,6 7 8,0 1 2),(9 10 11,12 13 14,15 16 17,9 10 11)))", PARSER_CHECK_NONE); CU_ASSERT_EQUAL(strlen(cu_error_msg), 0); CU_ASSERT_EQUAL(geom->type, POLYHEDRALSURFACETYPE); - CU_ASSERT_STRING_EQUAL("POLYHEDRALSURFACE(((0 1 2,3 4 5,6 7 8,0 1 2),(9 10 11,12 13 14,15 16 17,9 10 11)))", lwgeom_to_ewkt(geom, PARSER_CHECK_NONE)); - CU_ASSERT_STRING_EQUAL("010D00008001000000010300008002000000040000000000000000000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400000000000001C4000000000000020400000000000000000000000000000F03F00000000000000400400000000000000000022400000000000002440000000000000264000000000000028400000000000002A400000000000002C400000000000002E4000000000000030400000000000003140000000000000224000000000000024400000000000002640", lwgeom_to_hexwkb_old(geom, PARSER_CHECK_NONE, (char) -1)); + tmp = lwgeom_to_ewkt(geom, PARSER_CHECK_NONE); + CU_ASSERT_STRING_EQUAL("POLYHEDRALSURFACE(((0 1 2,3 4 5,6 7 8,0 1 2),(9 10 11,12 13 14,15 16 17,9 10 11)))", tmp); + lwfree(tmp); + tmp = lwgeom_to_hexwkb_old(geom, PARSER_CHECK_NONE, (char) -1); + CU_ASSERT_STRING_EQUAL("010D00008001000000010300008002000000040000000000000000000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400000000000001C4000000000000020400000000000000000000000000000F03F00000000000000400400000000000000000022400000000000002440000000000000264000000000000028400000000000002A400000000000002C400000000000002E4000000000000030400000000000003140000000000000224000000000000024400000000000002640", tmp); + lwfree(tmp); lwgeom_free(geom); /* ERROR: non closed rings */ @@ -364,8 +388,12 @@ void polyhedralsurface_parse(void) CU_ASSERT_EQUAL(strlen(cu_error_msg), 0); CU_ASSERT_EQUAL(geom->type, POLYHEDRALSURFACETYPE); CU_ASSERT_EQUAL(geom->srid, SRID_UNKNOWN); - CU_ASSERT_STRING_EQUAL("POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 0,0 0 0)),((0 0 0,0 1 0,1 0 0,0 0 0)),((0 0 0,1 0 0,0 0 1,0 0 0)),((1 0 0,0 1 0,0 0 1,1 0 0)))", lwgeom_to_ewkt(geom, PARSER_CHECK_NONE)); - CU_ASSERT_STRING_EQUAL("010D000080040000000103000080010000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000010300008001000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000000001030000800100000004000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000000001030000800100000004000000000000000000F03F000000000000000000000000000000000000000000000000000000000000F03F000000000000000000000000000000000000000000000000000000000000F03F000000000000F03F00000000000000000000000000000000", lwgeom_to_hexwkb_old(geom, PARSER_CHECK_NONE, (char) -1)); + tmp = lwgeom_to_ewkt(geom, PARSER_CHECK_NONE); + CU_ASSERT_STRING_EQUAL("POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 0,0 0 0)),((0 0 0,0 1 0,1 0 0,0 0 0)),((0 0 0,1 0 0,0 0 1,0 0 0)),((1 0 0,0 1 0,0 0 1,1 0 0)))", tmp); + lwfree(tmp); + tmp = lwgeom_to_hexwkb_old(geom, PARSER_CHECK_NONE, (char) -1); + CU_ASSERT_STRING_EQUAL("010D000080040000000103000080010000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000010300008001000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000000001030000800100000004000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000000001030000800100000004000000000000000000F03F000000000000000000000000000000000000000000000000000000000000F03F000000000000000000000000000000000000000000000000000000000000F03F000000000000F03F00000000000000000000000000000000", tmp); + lwfree(tmp); lwgeom_free(geom); /* A 4D tetrahedron */ @@ -374,8 +402,12 @@ void polyhedralsurface_parse(void) CU_ASSERT_EQUAL(geom->type, POLYHEDRALSURFACETYPE); CU_ASSERT_EQUAL(FLAGS_GET_M(geom->flags), 1); CU_ASSERT_EQUAL(geom->srid, SRID_UNKNOWN); - CU_ASSERT_STRING_EQUAL("POLYHEDRALSURFACE(((0 0 0 0,0 0 1 0,0 1 0 2,0 0 0 0)),((0 0 0 0,0 1 0 0,1 0 0 4,0 0 0 0)),((0 0 0 0,1 0 0 0,0 0 1 6,0 0 0 0)),((1 0 0 0,0 1 0 0,0 0 1 0,1 0 0 0)))", lwgeom_to_ewkt(geom, PARSER_CHECK_NONE)); - CU_ASSERT_STRING_EQUAL("010D0000C00400000001030000C00100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000F03F00000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000001030000C0010000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000F03F000000000000000000000000000000000000000000001040000000000000000000000000000000000000000000000000000000000000000001030000C001000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000001840000000000000000000000000000000000000000000000000000000000000000001030000C00100000004000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000F03F000000000000000000000000000000000000000000000000", lwgeom_to_hexwkb_old(geom, PARSER_CHECK_NONE, (char) -1)); + tmp = lwgeom_to_ewkt(geom, PARSER_CHECK_NONE); + CU_ASSERT_STRING_EQUAL("POLYHEDRALSURFACE(((0 0 0 0,0 0 1 0,0 1 0 2,0 0 0 0)),((0 0 0 0,0 1 0 0,1 0 0 4,0 0 0 0)),((0 0 0 0,1 0 0 0,0 0 1 6,0 0 0 0)),((1 0 0 0,0 1 0 0,0 0 1 0,1 0 0 0)))", tmp); + lwfree(tmp); + tmp = lwgeom_to_hexwkb_old(geom, PARSER_CHECK_NONE, (char) -1); + CU_ASSERT_STRING_EQUAL("010D0000C00400000001030000C00100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000F03F00000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000001030000C0010000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000F03F000000000000000000000000000000000000000000001040000000000000000000000000000000000000000000000000000000000000000001030000C001000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000001840000000000000000000000000000000000000000000000000000000000000000001030000C00100000004000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000F03F000000000000000000000000000000000000000000000000", tmp); + lwfree(tmp); lwgeom_free(geom); @@ -384,8 +416,12 @@ void polyhedralsurface_parse(void) CU_ASSERT_EQUAL(strlen(cu_error_msg), 0); CU_ASSERT_EQUAL(geom->type, POLYHEDRALSURFACETYPE); CU_ASSERT_EQUAL(geom->srid, 4326); - CU_ASSERT_STRING_EQUAL("SRID=4326;POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 0,0 0 0)),((0 0 0,0 1 0,1 0 0,0 0 0)),((0 0 0,1 0 0,0 0 1,0 0 0)),((1 0 0,0 1 0,0 0 1,1 0 0)))", lwgeom_to_ewkt(geom, PARSER_CHECK_NONE)); - CU_ASSERT_STRING_EQUAL("010D0000A0E6100000040000000103000080010000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000010300008001000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000000001030000800100000004000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000000001030000800100000004000000000000000000F03F000000000000000000000000000000000000000000000000000000000000F03F000000000000000000000000000000000000000000000000000000000000F03F000000000000F03F00000000000000000000000000000000", lwgeom_to_hexwkb_old(geom, PARSER_CHECK_NONE, (char) -1)); + tmp = lwgeom_to_ewkt(geom, PARSER_CHECK_NONE); + CU_ASSERT_STRING_EQUAL("SRID=4326;POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 0,0 0 0)),((0 0 0,0 1 0,1 0 0,0 0 0)),((0 0 0,1 0 0,0 0 1,0 0 0)),((1 0 0,0 1 0,0 0 1,1 0 0)))", tmp); + lwfree(tmp); + tmp = lwgeom_to_hexwkb_old(geom, PARSER_CHECK_NONE, (char) -1); + CU_ASSERT_STRING_EQUAL("010D0000A0E6100000040000000103000080010000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000010300008001000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000000001030000800100000004000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000000001030000800100000004000000000000000000F03F000000000000000000000000000000000000000000000000000000000000F03F000000000000000000000000000000000000000000000000000000000000F03F000000000000F03F00000000000000000000000000000000", tmp); + lwfree(tmp); lwgeom_free(geom);