PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ test_gserialized2_extended_flags()

static void test_gserialized2_extended_flags ( void  )
static

Definition at line 73 of file cu_gserialized2.c.

74 {
75  LWGEOM *lwg1, *lwg2;
76  GSERIALIZED *g;
77  size_t size = 0;
78 
79  /* No extended flags, so 32 bytes for a point */
80  lwg1 = lwgeom_from_wkt("POINT(100 100)", LW_PARSER_CHECK_NONE);
81  size = gserialized2_from_lwgeom_size(lwg1);
82  CU_ASSERT_EQUAL(size, 32);
83 
84  /* Add extended flag, we now expect 8 extra bytes */
85  FLAGS_SET_SOLID(lwg1->flags, 1);
86  CU_ASSERT_EQUAL(1, FLAGS_GET_SOLID(lwg1->flags));
87  size = gserialized2_from_lwgeom_size(lwg1);
88  CU_ASSERT_EQUAL(size, 40);
89 
90  /* We expect that the extended bit will be set on the serialization */
91  g = gserialized2_from_lwgeom(lwg1, &size);
92  CU_ASSERT_EQUAL(1, G2FLAGS_GET_EXTENDED(g->gflags));
93  /* And that the serialization in fact hits 40 bytes */
94  CU_ASSERT_EQUAL(size, 40);
95  lwgeom_free(lwg1);
96  lwg2 = lwgeom_from_gserialized2(g);
97  lwfree(g);
98  /* And that when deserialized again, the solid flag is still there */
99  CU_ASSERT_EQUAL(1, FLAGS_GET_SOLID(lwg2->flags));
100  lwgeom_free(lwg2);
101 
102 }
LWGEOM * lwgeom_from_gserialized2(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
size_t gserialized2_from_lwgeom_size(const LWGEOM *geom)
Return the memory size a GSERIALIZED will occupy for a given LWGEOM.
Definition: gserialized2.c:774
GSERIALIZED * gserialized2_from_lwgeom(LWGEOM *geom, size_t *size)
Allocate a new GSERIALIZED from an LWGEOM.
#define G2FLAGS_GET_EXTENDED(gflags)
Definition: gserialized2.h:26
void lwgeom_free(LWGEOM *geom)
Definition: lwgeom.c:1138
#define LW_PARSER_CHECK_NONE
Definition: liblwgeom.h:2060
void lwfree(void *mem)
Definition: lwutil.c:242
#define FLAGS_GET_SOLID(flags)
Definition: liblwgeom.h:184
LWGEOM * lwgeom_from_wkt(const char *wkt, const char check)
Definition: lwin_wkt.c:905
#define FLAGS_SET_SOLID(flags, value)
Definition: liblwgeom.h:191
uint8_t gflags
Definition: liblwgeom.h:432
lwflags_t flags
Definition: liblwgeom.h:447

References LWGEOM::flags, FLAGS_GET_SOLID, FLAGS_SET_SOLID, G2FLAGS_GET_EXTENDED, GSERIALIZED::gflags, gserialized2_from_lwgeom(), gserialized2_from_lwgeom_size(), LW_PARSER_CHECK_NONE, lwfree(), lwgeom_free(), lwgeom_from_gserialized2(), and lwgeom_from_wkt().

Referenced by gserialized2_suite_setup().

Here is the call graph for this function:
Here is the caller graph for this function: