void read_vector_test() { cbuf_t in; printf("read_vector_test1: BEGIN\n"); cbuf_initv(&in, &vec1); cbuf_print(&in, "vec1"); print_u8(&in, 10); print_u16(&in, 10); print_u32(&in, 10); print_u64(&in, 10); print_f32(&in, 10); print_f64(&in, 10); printf("read_vector_test1: END%s\n", !cbuf_eob(&in) ? " (data not consumed)" : ""); cbuf_print(&in, "vec1"); cbuf_final(&in); printf("read_vector_test2: BEGIN\n"); cbuf_initv(&in, &vec2); cbuf_print(&in, "vec2"); print_u32(&in, 5); print_u16(&in, 1); print_u8(&in, 1); printf("read_vector_test2: END%s\n", !cbuf_eob(&in) ? " (data not consumed)" : ""); cbuf_print(&in, "vec2"); cbuf_final(&in); }
//Prints a 16-bit signed integer as +/- and 5 digits (with '0' padding in front). Example: "+00042" void print_s16(s16 number) { if (number >= 0) { //print plus printChar('+'); //cast to print the number as a u16 print_u16((u16)number); } else { //print minus printChar('-'); //make the number positive and print it as a u16 print_u16((u16)(-number)); } }
void write_vec_test() { cbuf_t out; u_int8_t small_buf[10]; u_int16_t i16; printf("write_vec_test1: binary BEGIN\n"); cbuf_init(&out, small_buf, sizeof(small_buf), 0, CBUF_FLAG_BINARY); for (i16 = 1; i16 <= 20; i16++) cbuf_write(&out, &i16, sizeof(i16)); cbuf_seg_add(&out); for (i16 = 21; i16 <= 40; i16++) cbuf_write(&out, &i16, sizeof(i16)); cbuf_seg_add(&out); for (i16 = 41; i16 <= 60; i16++) cbuf_write(&out, &i16, sizeof(i16)); cbuf_reset(&out, 0); print_u16(&out, 60); cbuf_print(&out, "out_i16"); cbuf_final(&out); printf("write_vec_test1: binary END\n"); printf("write_vec_test2: BEGIN\n"); cbuf_init(&out, small_buf, sizeof(small_buf), 0, 0); for (i16 = 1; i16 <= 20; i16++) cbuf_write(&out, &i16, sizeof(i16)); cbuf_seg_add(&out); for (i16 = 21; i16 <= 40; i16++) cbuf_write(&out, &i16, sizeof(i16)); cbuf_seg_add(&out); for (i16 = 41; i16 <= 60; i16++) cbuf_write(&out, &i16, sizeof(i16)); cbuf_seg_add(&out); for (i16 = 61; i16 <= 80; i16++) cbuf_write(&out, &i16, sizeof(i16)); cbuf_seg_add(&out); for (i16 = 81; i16 <= 100; i16++) cbuf_write(&out, &i16, sizeof(i16)); cbuf_reset(&out, 0); print_u16(&out, 100); cbuf_print(&out, "out_i16"); cbuf_final(&out); printf("write_vec_test2: END\n"); }
void read_buffer_test() { cbuf_t in; printf("read_buffer_test vu8: BEGIN\n"); cbuf_init(&in, &vu8, sizeof(vu8), 0, 0); print_u8(&in, 10); printf("read_buffer_test vu8: END%s\n", !cbuf_eob(&in) ? " (data not consumed)" : ""); cbuf_final(&in); printf("read_buffer_test vu16: BEGIN\n"); cbuf_init(&in, &vu16, sizeof(vu16), 0, 0); print_u16(&in, 10); printf("read_buffer_test vu16: END%s\n", !cbuf_eob(&in) ? " (data not consumed)" : ""); cbuf_final(&in); printf("read_buffer_test vu32: BEGIN\n"); cbuf_init(&in, &vu32, sizeof(vu32), 0, 0); print_u32(&in, 10); printf("read_buffer_test vu32: END%s\n", !cbuf_eob(&in) ? " (data not consumed)" : ""); cbuf_final(&in); printf("read_buffer_test vu64: BEGIN\n"); cbuf_init(&in, &vu64, sizeof(vu64), 0, 0); print_u64(&in, 10); printf("read_buffer_test vu64: END%s\n", !cbuf_eob(&in) ? " (data not consumed)" : ""); cbuf_final(&in); printf("read_buffer_test vf32: BEGIN\n"); cbuf_init(&in, &vf32, sizeof(vf32), 0, 0); print_f32(&in, 10); printf("read_buffer_test vu32: END%s\n", !cbuf_eob(&in) ? " (data not consumed)" : ""); cbuf_final(&in); printf("read_buffer_test vf64: BEGIN\n"); cbuf_init(&in, &vf64, sizeof(vf64), 0, 0); print_f64(&in, 10); printf("read_buffer_test vf64: END%s\n", !cbuf_eob(&in) ? " (data not consumed)" : ""); cbuf_final(&in); }
void write_buffer_test() { cbuf_t out; u_int8_t small_buf[10]; u_int8_t i8; u_int16_t i16; printf("write_buffer_test small_buf: BEGIN\n"); cbuf_init(&out, small_buf, sizeof(small_buf), 0, 0); for (i8 = 1; i8 <= 10; i8++) cbuf_write(&out, &i8, sizeof(i8)); cbuf_reset(&out, 0); print_u8(&out, 10); cbuf_print(&out, "out_i8"); cbuf_final(&out); printf("write_buffer_test: small_buf: END\n"); printf("write_buffer_test alloc_buf: BEGIN\n"); cbuf_init(&out, small_buf, sizeof(small_buf), 0, 0); for (i8 = 1; i8 <= 20; i8++) cbuf_write(&out, &i8, sizeof(i8)); cbuf_reset(&out, 0); print_u8(&out, 20); cbuf_print(&out, "out_i8"); cbuf_final(&out); printf("write_buffer_test: alloc_buf: END\n"); printf("write_buffer_test realloc_buf: BEGIN\n"); cbuf_init(&out, small_buf, sizeof(small_buf), 0, 0); cbuf_print(&out, "out_i16"); for (i16 = 1; i16 <= 200; i16++) cbuf_write(&out, &i16, sizeof(i16)); cbuf_reset(&out, 0); print_u16(&out, 200); cbuf_print(&out, "out_i16"); cbuf_final(&out); printf("write_buffer_test: realloc_buf: END\n"); // the same with empty inital buffer printf("write_buffer_test realloc_buf2: BEGIN\n"); cbuf_init(&out, 0, 0, 0, 0); cbuf_print(&out, "out_i16"); for (i16 = 1; i16 <= 200; i16++) cbuf_write(&out, &i16, sizeof(i16)); cbuf_reset(&out, 0); print_u16(&out, 200); cbuf_print(&out, "out_i16"); cbuf_final(&out); printf("write_buffer_test: realloc_buf2: END\n"); printf("write_buffer_test binary_realloc_buf: BEGIN\n"); cbuf_init(&out, small_buf, sizeof(small_buf), 0, CBUF_FLAG_BINARY); cbuf_print(&out, "out_i16"); for (i16 = 1; i16 <= 200; i16++) cbuf_write(&out, &i16, sizeof(i16)); cbuf_reset(&out, 0); print_u16(&out, 200); cbuf_print(&out, "out_i16"); cbuf_final(&out); printf("write_buffer_test: binary_realloc_buf: END\n"); }