test_serial: Clean up after test case

Free all allocated memory to avoid false-positives from leak sanitizers.
Resolves:

    ==15807==ERROR: LeakSanitizer: detected memory leaks

    Indirect leak of 4096 byte(s) in 1 object(s) allocated from:
        #0 0x7fb35b934f1e in __interceptor_realloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10df1e)
        #1 0x7fb35b7f3065 in __mctp_realloc /home/andrew/src/openbmc/libmctp/alloc.c:48
        #2 0x7fb35b7ed979 in mctp_msg_ctx_add_pkt /home/andrew/src/openbmc/libmctp/core.c:213
        #3 0x7fb35b7f0a09 in mctp_bus_rx /home/andrew/src/openbmc/libmctp/core.c:383
        #4 0x7fb35b7f467d in mctp_serial_finish_packet /home/andrew/src/openbmc/libmctp/serial.c:169
        #5 0x7fb35b7f6071 in mctp_rx_consume_one /home/andrew/src/openbmc/libmctp/serial.c:254
        #6 0x7fb35b7f6409 in mctp_rx_consume /home/andrew/src/openbmc/libmctp/serial.c:271
        #7 0x7fb35b7f668a in mctp_serial_read /home/andrew/src/openbmc/libmctp/serial.c:288
        #8 0x559680986cc7 in main tests/test_serial.c:113
        #9 0x7fb35ac9e1e2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x271e2)

    Indirect leak of 1384 byte(s) in 1 object(s) allocated from:
        #0 0x7fb35b934ae8 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10dae8)
        #1 0x7fb35b7f2cf0 in __mctp_alloc /home/andrew/src/openbmc/libmctp/alloc.c:28
        #2 0x7fb35b7f6cad in mctp_serial_init /home/andrew/src/openbmc/libmctp/serial.c:343
        #3 0x559680986553 in main tests/test_serial.c:99
        #4 0x7fb35ac9e1e2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x271e2)

    Indirect leak of 552 byte(s) in 1 object(s) allocated from:
        #0 0x7fb35b934ae8 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10dae8)
        #1 0x7fb35b7f2cf0 in __mctp_alloc /home/andrew/src/openbmc/libmctp/alloc.c:28
        #2 0x7fb35b7ededc in mctp_init /home/andrew/src/openbmc/libmctp/core.c:234
        #3 0x559680986485 in main tests/test_serial.c:96
        #4 0x7fb35ac9e1e2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x271e2)

    Indirect leak of 40 byte(s) in 1 object(s) allocated from:
        #0 0x7fb35b934ae8 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10dae8)
        #1 0x7fb35b7f2cf0 in __mctp_alloc /home/andrew/src/openbmc/libmctp/alloc.c:28
        #2 0x7fb35b7ee55f in mctp_register_bus /home/andrew/src/openbmc/libmctp/core.c:277
        #3 0x559680986b64 in main tests/test_serial.c:105
        #4 0x7fb35ac9e1e2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x271e2)

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I9f95104545cc6f633ee134fffc90cb0ea2c46eeb
diff --git a/tests/test_serial.c b/tests/test_serial.c
index a7c3752..eef66d0 100644
--- a/tests/test_serial.c
+++ b/tests/test_serial.c
@@ -65,8 +65,8 @@
 {
 	struct serial_test scenario[2];
 
-	struct mctp_binding_serial_pipe *a = &scenario[0].binding;
-	struct mctp_binding_serial_pipe *b = &scenario[1].binding;
+	struct mctp_binding_serial_pipe *a;
+	struct mctp_binding_serial_pipe *b;
 	int p[2][2];
 	int rc;
 
@@ -84,8 +84,9 @@
 	/* Instantiate the A side of the serial pipe */
 	scenario[0].mctp = mctp_init();
 	assert(scenario[0].mctp);
-	a->serial = mctp_serial_init();
-	assert(a->serial);
+	scenario[0].binding.serial = mctp_serial_init();
+	assert(scenario[0].binding.serial);
+	a = &scenario[0].binding;
 	a->ingress = p[0][0];
 	a->egress = p[1][1];
 	mctp_serial_open_fd(a->serial, a->ingress);
@@ -96,8 +97,9 @@
 	scenario[1].mctp = mctp_init();
 	assert(scenario[1].mctp);
 	mctp_set_rx_all(scenario[1].mctp, rx_message, NULL);
-	b->serial = mctp_serial_init();
-	assert(b->serial);
+	scenario[1].binding.serial = mctp_serial_init();
+	assert(scenario[1].binding.serial);
+	b = &scenario[1].binding;
 	b->ingress = p[1][0];
 	b->egress = p[0][1];
 	mctp_serial_open_fd(b->serial, b->ingress);
@@ -113,5 +115,10 @@
 	mctp_serial_read(b->serial);
 	assert(seen);
 
+	mctp_serial_destroy(scenario[1].binding.serial);
+	mctp_destroy(scenario[1].mctp);
+	mctp_serial_destroy(scenario[0].binding.serial);
+	mctp_destroy(scenario[0].mctp);
+
 	return 0;
 }