diff options
Diffstat (limited to 'example/ndpiReader.c')
-rw-r--r-- | example/ndpiReader.c | 152 |
1 files changed, 81 insertions, 71 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c index 0a992b286..b40b7d30e 100644 --- a/example/ndpiReader.c +++ b/example/ndpiReader.c @@ -3082,87 +3082,95 @@ void automataUnitTest() { void serializerUnitTest() { ndpi_serializer serializer, deserializer; - int i; + int i, loop_id; u_int8_t trace = 0; - ndpi_serialization_format fmt = ndpi_serialization_format_tlv; - - //trace = 1; - //fmt = ndpi_serialization_format_json; - //fmt = ndpi_serialization_format_csv; + ndpi_serialization_format fmt; - assert(ndpi_init_serializer(&serializer, fmt) != -1); - - for(i=0; i<16; i++) { - char kbuf[32], vbuf[32]; - snprintf(kbuf, sizeof(kbuf), "Key %d", i); - snprintf(vbuf, sizeof(vbuf), "Value %d", i); - assert(ndpi_serialize_uint32_uint32(&serializer, i, i*i) != -1); - assert(ndpi_serialize_uint32_string(&serializer, i, "Data") != -1); - assert(ndpi_serialize_string_string(&serializer, kbuf, vbuf) != -1); - assert(ndpi_serialize_string_uint32(&serializer, kbuf, i*i) != -1); - assert(ndpi_serialize_string_float(&serializer, kbuf, (float)(i*i), "%f") != -1); - if ((i&0x3) == 0x3) ndpi_serialize_end_of_record(&serializer); - } + for(loop_id=0; loop_id<3; loop_id++) { + switch(loop_id) { + case 0: + fmt = ndpi_serialization_format_tlv; + break; - if (fmt == ndpi_serialization_format_json) { + case 1: + fmt = ndpi_serialization_format_json; + break; - assert(ndpi_serialize_start_of_list(&serializer, "List") != -1); + case 2: + fmt = ndpi_serialization_format_csv; + break; + } + assert(ndpi_init_serializer(&serializer, fmt) != -1); - for(i=0; i<4; i++) { + for(i=0; i<16; i++) { char kbuf[32], vbuf[32]; - snprintf(kbuf, sizeof(kbuf), "Ignored"); - snprintf(vbuf, sizeof(vbuf), "Item %d", i); + snprintf(kbuf, sizeof(kbuf), "Key %d", i); + snprintf(vbuf, sizeof(vbuf), "Value %d", i); assert(ndpi_serialize_uint32_uint32(&serializer, i, i*i) != -1); + assert(ndpi_serialize_uint32_string(&serializer, i, "Data") != -1); assert(ndpi_serialize_string_string(&serializer, kbuf, vbuf) != -1); + assert(ndpi_serialize_string_uint32(&serializer, kbuf, i*i) != -1); assert(ndpi_serialize_string_float(&serializer, kbuf, (float)(i*i), "%f") != -1); + if ((i&0x3) == 0x3) ndpi_serialize_end_of_record(&serializer); } - assert(ndpi_serialize_end_of_list(&serializer) != -1); - assert(ndpi_serialize_string_string(&serializer, "Last", "Ok") != -1); - if(trace) { - u_int32_t buffer_len = 0; - char *buffer = ndpi_serializer_get_buffer(&serializer, &buffer_len); - printf("%s\n", buffer); - exit(0); - } + if (fmt == ndpi_serialization_format_json) { + assert(ndpi_serialize_start_of_list(&serializer, "List") != -1); - } else if (fmt == ndpi_serialization_format_csv) { + for(i=0; i<4; i++) { + char kbuf[32], vbuf[32]; + snprintf(kbuf, sizeof(kbuf), "Ignored"); + snprintf(vbuf, sizeof(vbuf), "Item %d", i); + assert(ndpi_serialize_uint32_uint32(&serializer, i, i*i) != -1); + assert(ndpi_serialize_string_string(&serializer, kbuf, vbuf) != -1); + assert(ndpi_serialize_string_float(&serializer, kbuf, (float)(i*i), "%f") != -1); + } + assert(ndpi_serialize_end_of_list(&serializer) != -1); + assert(ndpi_serialize_string_string(&serializer, "Last", "Ok") != -1); + + if(trace) { + u_int32_t buffer_len = 0; + char *buffer = ndpi_serializer_get_buffer(&serializer, &buffer_len); + printf("%s\n", buffer); + exit(0); + } + } else if (fmt == ndpi_serialization_format_csv) { + if(trace) { + u_int32_t buffer_len = 0; + char *buffer; - if(trace) { - u_int32_t buffer_len = 0; - char *buffer; + buffer = ndpi_serializer_get_header(&serializer, &buffer_len); + printf("%s\n", buffer); - buffer = ndpi_serializer_get_header(&serializer, &buffer_len); - printf("%s\n", buffer); + buffer = ndpi_serializer_get_buffer(&serializer, &buffer_len); + printf("%s\n", buffer); - buffer = ndpi_serializer_get_buffer(&serializer, &buffer_len); - printf("%s\n", buffer); + exit(0); + } - exit(0); - } + } else { + if(trace) + printf("Serialization size: %u\n", ndpi_serializer_get_buffer_len(&serializer)); - } else { - if(trace) - printf("Serialization size: %u\n", ndpi_serializer_get_buffer_len(&serializer)); + assert(ndpi_init_deserializer(&deserializer, &serializer) != -1); - assert(ndpi_init_deserializer(&deserializer, &serializer) != -1); + while(1) { + ndpi_serialization_type kt, et; - while(1) { - ndpi_serialization_type kt, et; - et = ndpi_deserialize_get_item_type(&deserializer, &kt); + et = ndpi_deserialize_get_item_type(&deserializer, &kt); - if(et == ndpi_serialization_unknown) - break; - else { - u_int32_t k32, v32; - ndpi_string ks, vs; - float vf; + if(et == ndpi_serialization_unknown) + break; + else { + u_int32_t k32, v32; + ndpi_string ks, vs; + float vf; - switch(kt) { + switch(kt) { case ndpi_serialization_uint32: ndpi_deserialize_key_uint32(&deserializer, &k32); if(trace) printf("%u=", k32); - break; + break; case ndpi_serialization_string: ndpi_deserialize_key_string(&deserializer, &ks); if (trace) { @@ -3171,17 +3179,18 @@ void serializerUnitTest() { printf("%s=", ks.str); ks.str[ks.str_len] = bkp; } - break; + break; default: - printf("Unsupported TLV key type %u\n", kt); - return; - } + printf("ERROR: Unsupported TLV key type %u\n", kt); + // exit(0); + return; + } - switch(et) { + switch(et) { case ndpi_serialization_uint32: assert(ndpi_deserialize_value_uint32(&deserializer, &v32) != -1); if(trace) printf("%u\n", v32); - break; + break; case ndpi_serialization_string: assert(ndpi_deserialize_value_string(&deserializer, &vs) != -1); @@ -3191,25 +3200,26 @@ void serializerUnitTest() { printf("%s\n", vs.str); vs.str[vs.str_len] = bkp; } - break; + break; case ndpi_serialization_float: assert(ndpi_deserialize_value_float(&deserializer, &vf) != -1); if(trace) printf("%f\n", vf); - break; + break; default: if (trace) printf("\n"); printf("serializerUnitTest: unsupported type %u detected!\n", et); - return; - } - } + return; + } + } - ndpi_deserialize_next(&deserializer); + ndpi_deserialize_next(&deserializer); + } } - } - ndpi_term_serializer(&serializer); + ndpi_term_serializer(&serializer); + } } /* *********************************************** */ |