9 #include "xer_decoder.h"
11 static char buf[4096];
12 static int buf_offset;
15 buf_writer(const void *buffer, size_t size, void *app_key) {
17 assert(buf_offset + size < sizeof(buf));
18 memcpy(buf + buf_offset, buffer, size);
24 check_xer(e_Enum2 eval, char *xer_string) {
30 rv = xer_decode(0, &asn_DEF_Enum2, (void **)&e,
31 xer_string, strlen(xer_string));
32 assert(rv.code == RC_OK);
33 assert(rv.consumed == strlen(xer_string));
35 asn_INTEGER2long(e, &val);
36 printf("%s -> %ld == %d\n", xer_string, val, eval);
40 xer_encode(&asn_DEF_Enum2, e, XER_F_CANONICAL, buf_writer, 0);
42 sprintf(buf2, "<Enum2>%s</Enum2>", xer_string);
43 printf("%d -> %s == %s\n", eval, buf, buf2);
44 assert(0 == strcmp(buf, buf2));
46 ASN_STRUCT_FREE(asn_DEF_Enum2, e);
52 check_xer(Enum2_red, "<red/>");
53 check_xer(Enum2_green, "<green/>");
54 check_xer(Enum2_blue, "<blue/>");
55 check_xer(Enum2_orange, "<orange/>");
56 check_xer(Enum2_alpha, "<alpha/>");
57 check_xer(Enum2_beta, "<beta/>");
58 check_xer(Enum2_gamma, "<gamma/>");