From 9fb85ef7e2b6f2794f3b28ee9604c0d115db9007 Mon Sep 17 00:00:00 2001 From: Tommy Olofsson <tommy.olofsson.90@gmail.com> Date: Thu, 17 Apr 2014 18:25:39 +0200 Subject: [PATCH] Added a test of labcomm_copy using multidim. array. --- lib/c/Makefile | 2 +- lib/c/test/test_labcomm_copy.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/lib/c/Makefile b/lib/c/Makefile index 8b88a22..fc601a6 100644 --- a/lib/c/Makefile +++ b/lib/c/Makefile @@ -151,7 +151,7 @@ $(TEST_DIR)/test_signature_numbers.c: $(TEST_DIR)/gen/another_encoding.h $(TEST_DIR)/test_signature_numbers.c: $(TEST_DIR)/gen/generated_encoding.h $(TEST_DIR)/test_signature_numbers: $(TEST_DIR)/gen/another_encoding.o $(TEST_DIR)/test_signature_numbers: $(TEST_DIR)/gen/generated_encoding.o -$(TEST_DIR)/test_labcomm_copy: $(TEST_DIR)/gen/generated_encoding.o +$(TEST_DIR)/test_labcomm_copy: $(TEST_DIR)/gen/generated_encoding.o $(TEST_DIR)/gen/test_sample.o labcomm_fd_reader.o: labcomm_private.h labcomm_fd_writer.o: labcomm_private.h labcomm_dynamic_buffer_writer.o: labcomm_private.h diff --git a/lib/c/test/test_labcomm_copy.c b/lib/c/test/test_labcomm_copy.c index fdf226a..edadd4d 100644 --- a/lib/c/test/test_labcomm_copy.c +++ b/lib/c/test/test_labcomm_copy.c @@ -14,6 +14,7 @@ #include "labcomm_fd_writer.h" #include "labcomm_fd_reader.h" #include "test/gen/generated_encoding.h" +#include "test/gen/test_sample.h" #define DATA_FILE "copy_test.dat" @@ -37,6 +38,11 @@ static void handle_p(generated_encoding_P *v, void *context) labcomm_copy_generated_encoding_P(labcomm_default_memory, context, v); } +static void handle_test_var(test_sample_test_var *v, void *context) +{ + labcomm_copy_test_sample_test_var(labcomm_default_memory, context, v); +} + int main(int argc, char **argv) { struct labcomm_encoder *encoder; @@ -50,6 +56,8 @@ int main(int argc, char **argv) generated_encoding_I cache_I; generated_encoding_P p; generated_encoding_P cache_p; + test_sample_test_var test_var; + test_sample_test_var cache_test_var; fd = open(DATA_FILE, O_RDWR | O_CREAT | O_TRUNC, 0644); if (fd == -1) @@ -83,6 +91,15 @@ int main(int argc, char **argv) p.a[i].i = 8 + i; labcomm_encode_generated_encoding_P(encoder, &p); + labcomm_encoder_register_test_sample_test_var(encoder); + test_var.n_0 = 2; + test_var.n_1 = 7; + test_var.a = calloc(test_var.n_0 * test_var.n_1, sizeof(*test_var.a)); + for (int i = 0; i < test_var.n_0; i++) + for (int j = 0; j < test_var.n_1; j++) + test_var.a[i] = 10 * i + j; + labcomm_encode_test_sample_test_var(encoder, &test_var); + labcomm_encoder_free(encoder); encoder = NULL; lseek(fd, 0, SEEK_SET); @@ -95,6 +112,8 @@ int main(int argc, char **argv) labcomm_decoder_register_generated_encoding_S1(decoder, handle_s1, &cache_s1); labcomm_decoder_register_generated_encoding_B(decoder, handle_b, &cache_b); labcomm_decoder_register_generated_encoding_I(decoder, handle_i, &cache_I); + labcomm_decoder_register_test_sample_test_var(decoder, handle_test_var, + &cache_test_var); labcomm_decoder_register_generated_encoding_P(decoder, handle_p, &cache_p); labcomm_decoder_decode_one(decoder); /* S1 */ labcomm_decoder_decode_one(decoder); @@ -104,6 +123,8 @@ int main(int argc, char **argv) labcomm_decoder_decode_one(decoder); labcomm_decoder_decode_one(decoder); /* P */ labcomm_decoder_decode_one(decoder); + labcomm_decoder_decode_one(decoder); /* test_var */ + labcomm_decoder_decode_one(decoder); assert(cache_s1.i == s1.i); puts("S1 copied ok"); @@ -120,6 +141,14 @@ int main(int argc, char **argv) assert(cache_p.a[i].i == p.a[i].i); free(p.a); puts("P copied ok"); + assert(cache_test_var.n_0 == test_var.n_0); + assert(cache_test_var.n_1 == test_var.n_1); + for (int i = 0; i < test_var.n_0; i++) + for (int j = 0; j < test_var.n_1; j++) + assert(cache_test_var.a[p.n_0 * i + j] == test_var.a[p.n_0 * i + j]); + free(test_var.a); + puts("test_var copied ok"); + labcomm_decoder_free(decoder); close(fd); unlink(DATA_FILE); @@ -132,4 +161,6 @@ int main(int argc, char **argv) puts("I deallocated ok"); labcomm_copy_free_generated_encoding_P(labcomm_default_memory, &cache_p); puts("P deallocated ok"); + labcomm_copy_free_test_sample_test_var(labcomm_default_memory, &cache_test_var); + puts("test_var deallocated ok"); } -- GitLab