Convert the unit tests to the TAP format
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 13 Feb 2013 19:41:28 +0000 (14:41 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 13 Feb 2013 19:41:28 +0000 (14:41 -0500)
[ Mathieu Desnoyers: minor style edits. ]

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
tests/lib/Makefile.am
tests/lib/test-bitfield.c
tests/runall.sh

index 0613bebd916f62d5eaed25cce8c9c2d03af8e926..01831de3dfb86452bba6c3e39bf652750b37c56d 100644 (file)
@@ -8,6 +8,8 @@ test_seeks_LDADD = libtestcommon.a \
        $(top_builddir)/lib/libbabeltrace.la \
        $(top_builddir)/formats/ctf/libbabeltrace-ctf.la
 
+test_bitfield_LDADD = libtestcommon.a
+
 noinst_PROGRAMS = test-seeks test-bitfield
 
 test_seeks_SOURCES = test-seeks.c
index 3bf7568280f87908bfee63240008c36900fd12dc..2cb7a74c3b3c4db527e09375e85ad62a97839244 100644 (file)
@@ -25,6 +25,8 @@
 #include <stdlib.h>
 #include <stdio.h>
 
+#include "tap.h"
+
 unsigned int glob;
 
 /*
@@ -39,6 +41,10 @@ void fct(void)
 /* Test array size, in bytes */
 #define TEST_LEN 128
 #define NR_TESTS 10
+#define SIGNED_TEST_DESC_FMT_STR "Writing and reading back 0x%X, signed"
+#define UNSIGNED_TEST_DESC_FMT_STR "Writing and reading back 0x%X, unsigned"
+#define DIAG_FMT_STR "Failed reading value written \"%s\"-wise, with start=%i" \
+       " and length=%i. Read %llX"
 
 unsigned int srcrand;
 
@@ -116,7 +122,19 @@ do {                                       \
                (c)[i] = (val);         \
 } while (0)
 
-int run_test_unsigned(void)
+#define check_result(ref, val, buffer, typename, start, len,           \
+                    desc_fmt_str)                                      \
+({                                                                     \
+       if ((val) != (ref)) {                                           \
+               fail(desc_fmt_str, ref);                                \
+               diag(DIAG_FMT_STR, #typename, start, len, val);         \
+               printf("# ");                                           \
+               print_byte_array(buffer, TEST_LEN);                     \
+       }                                                               \
+       (val) != (ref);                                                 \
+})
+
+void run_test_unsigned(void)
 {
        unsigned int src, nrbits;
        union {
@@ -128,9 +146,6 @@ int run_test_unsigned(void)
        } target;
        unsigned long long readval;
        unsigned int s, l;
-       int err = 0;
-
-       printf("Running unsigned test with 0x%X\n", srcrand);
 
        src = srcrand;
        nrbits = fls(src);
@@ -140,62 +155,49 @@ int run_test_unsigned(void)
                        init_byte_array(target.c, TEST_LEN, 0xFF);
                        bt_bitfield_write(target.c, unsigned char, s, l, src);
                        bt_bitfield_read(target.c, unsigned char, s, l, &readval);
-                       if (readval != src) {
-                               printf("Error (bytewise) src %X read %llX shift %d len %d\n",
-                                      src, readval, s, l);
-                               print_byte_array(target.c, TEST_LEN);
-                               err = 1;
+                       if (check_result(src, readval, target.c, unsigned char,
+                                         s, l, UNSIGNED_TEST_DESC_FMT_STR)) {
+                               return;
                        }
 
                        init_byte_array(target.c, TEST_LEN, 0xFF);
                        bt_bitfield_write(target.s, unsigned short, s, l, src);
                        bt_bitfield_read(target.c, unsigned char, s, l, &readval);
-                       if (readval != src) {
-                               printf("Error (shortwise) src %X read %llX shift %d len %d\n",
-                                      src, readval, s, l);
-                               print_byte_array(target.c, TEST_LEN);
-                               err = 1;
+                       if (check_result(src, readval, target.c, unsigned short,
+                                         s, l, UNSIGNED_TEST_DESC_FMT_STR)) {
+                               return;
                        }
 
                        init_byte_array(target.c, TEST_LEN, 0xFF);
                        bt_bitfield_write(target.i, unsigned int, s, l, src);
                        bt_bitfield_read(target.c, unsigned char, s, l, &readval);
-                       if (readval != src) {
-                               printf("Error (intwise) src %X read %llX shift %d len %d\n",
-                                      src, readval, s, l);
-                               print_byte_array(target.c, TEST_LEN);
-                               err = 1;
+                       if (check_result(src, readval, target.c, unsigned int,
+                                          s, l, UNSIGNED_TEST_DESC_FMT_STR)) {
+                               return;
                        }
 
                        init_byte_array(target.c, TEST_LEN, 0xFF);
                        bt_bitfield_write(target.l, unsigned long, s, l, src);
                        bt_bitfield_read(target.c, unsigned char, s, l, &readval);
-                       if (readval != src) {
-                               printf("Error (longwise) src %X read %llX shift %d len %d\n",
-                                      src, readval, s, l);
-                               print_byte_array(target.c, TEST_LEN);
-                               err = 1;
+                       if (check_result(src, readval, target.c, unsigned long,
+                                         s, l, UNSIGNED_TEST_DESC_FMT_STR)) {
+                               return;
                        }
 
                        init_byte_array(target.c, TEST_LEN, 0xFF);
                        bt_bitfield_write(target.ll, unsigned long long, s, l, src);
                        bt_bitfield_read(target.c, unsigned char, s, l, &readval);
-                       if (readval != src) {
-                               printf("Error (longlongwise) src %X read %llX shift %d len %d\n",
-                                      src, readval, s, l);
-                               print_byte_array(target.c, TEST_LEN);
-                               err = 1;
+                       if (check_result(src, readval, target.c, unsigned long long,
+                                    s, l, UNSIGNED_TEST_DESC_FMT_STR)) {
+                               return;
                        }
                }
        }
-       if (!err)
-               printf("Success!\n");
-       else
-               printf("Failed!\n");
-       return err;
+
+       pass(UNSIGNED_TEST_DESC_FMT_STR, src);
 }
 
-int run_test_signed(void)
+void run_test_signed(void)
 {
        int src, nrbits;
        union {
@@ -207,9 +209,6 @@ int run_test_signed(void)
        } target;
        long long readval;
        unsigned int s, l;
-       int err = 0;
-
-       printf("Running signed test with 0x%X\n", srcrand);
 
        src = srcrand;
        if (src & 0x80000000U)
@@ -217,99 +216,87 @@ int run_test_signed(void)
        else
                nrbits = fls(src) + 1;  /* Keep sign at 0 */
 
-       for (s = 0; s < 8 * TEST_LEN; s++) {
-               for (l = nrbits; l < (8 * TEST_LEN) - s; l++) {
+       for (s = 0; s < CHAR_BIT * TEST_LEN; s++) {
+               for (l = nrbits; l < (CHAR_BIT * TEST_LEN) - s; l++) {
                        init_byte_array(target.c, TEST_LEN, 0x0);
                        bt_bitfield_write(target.c, signed char, s, l, src);
                        bt_bitfield_read(target.c, signed char, s, l, &readval);
-                       if (readval != src) {
-                               printf("Error (bytewise) src %X read %llX shift %d len %d\n",
-                                      src, readval, s, l);
-                               print_byte_array(target.c, TEST_LEN);
-                               err = 1;
+                       if (check_result(src, readval, target.c, signed char,
+                                         s, l, SIGNED_TEST_DESC_FMT_STR)) {
+                               return;
                        }
 
                        init_byte_array(target.c, TEST_LEN, 0x0);
                        bt_bitfield_write(target.s, short, s, l, src);
                        bt_bitfield_read(target.c, signed char, s, l, &readval);
-                       if (readval != src) {
-                               printf("Error (shortwise) src %X read %llX shift %d len %d\n",
-                                      src, readval, s, l);
-                               print_byte_array(target.c, TEST_LEN);
-                               err = 1;
+                       if (check_result(src, readval, target.c, short,
+                                         s, l, SIGNED_TEST_DESC_FMT_STR)) {
+                               return;
                        }
 
                        init_byte_array(target.c, TEST_LEN, 0x0);
                        bt_bitfield_write(target.i, int, s, l, src);
                        bt_bitfield_read(target.c, signed char, s, l, &readval);
-                       if (readval != src) {
-                               printf("Error (intwise) src %X read %llX shift %d len %d\n",
-                                      src, readval, s, l);
-                               print_byte_array(target.c, TEST_LEN);
-                               err = 1;
+                       if (check_result(src, readval, target.c, int,
+                                         s, l, SIGNED_TEST_DESC_FMT_STR)) {
+                               return;
                        }
 
                        init_byte_array(target.c, TEST_LEN, 0x0);
                        bt_bitfield_write(target.l, long, s, l, src);
                        bt_bitfield_read(target.c, signed char, s, l, &readval);
-                       if (readval != src) {
-                               printf("Error (longwise) src %X read %llX shift %d len %d\n",
-                                      src, readval, s, l);
-                               print_byte_array(target.c, TEST_LEN);
-                               err = 1;
+                       if (check_result(src, readval, target.c, long,
+                                         s, l, SIGNED_TEST_DESC_FMT_STR)) {
+                               return;
                        }
 
                        init_byte_array(target.c, TEST_LEN, 0x0);
                        bt_bitfield_write(target.ll, long long, s, l, src);
                        bt_bitfield_read(target.c, signed char, s, l, &readval);
-                       if (readval != src) {
-                               printf("Error (longlongwise) src %X read %llX shift %d len %d\n",
-                                      src, readval, s, l);
-                               print_byte_array(target.c, TEST_LEN);
-                               err = 1;
+                       if (check_result(src, readval, target.c, long long,
+                                         s, l, SIGNED_TEST_DESC_FMT_STR)) {
+                               return;
                        }
                }
        }
-       if (!err)
-               printf("Success!\n");
-       else
-               printf("Failed!\n");
-       return err;
+
+       pass(SIGNED_TEST_DESC_FMT_STR, src);
 }
 
-int run_test(void)
+void run_test(void)
 {
-       int err = 0;
        int i;
+       plan_tests(NR_TESTS * 2 + 6);
 
        srand(time(NULL));
 
        srcrand = 0;
-       err |= run_test_unsigned();
+       run_test_unsigned();
        srcrand = 0;
-       err |= run_test_signed();
+       run_test_signed();
+
        srcrand = 1;
-       err |= run_test_unsigned();
+       run_test_unsigned();
+
        srcrand = ~0U;
-       err |= run_test_unsigned();
+       run_test_unsigned();
+
        srcrand = -1;
-       err |= run_test_signed();
+       run_test_signed();
+
        srcrand = (int)0x80000000U;
-       err |= run_test_signed();
+       run_test_signed();
 
        for (i = 0; i < NR_TESTS; i++) {
                srcrand = rand();
-               err |= run_test_unsigned();
-               err |= run_test_signed();
+               run_test_unsigned();
+               run_test_signed();
        }
-       return err;
 }
 
-int main(int argc, char **argv)
+static
+int print_encodings(unsigned long src, unsigned int shift, unsigned int len)
 {
-       unsigned long src;
-       unsigned int shift, len;
-       int ret;
        union {
                unsigned char c[8];
                unsigned short s[4];
@@ -319,53 +306,58 @@ int main(int argc, char **argv)
        } target;
        unsigned long long readval;
 
-       if (argc > 1)
-               src = atoi(argv[1]);
-       else
-               src = 0x12345678;
-       if (argc > 2)
-               shift = atoi(argv[2]);
-       else
-               shift = 12;
-       if (argc > 3)
-               len = atoi(argv[3]);
-       else
-               len = 40;
-
-       target.i[0] = 0xFFFFFFFF;
-       target.i[1] = 0xFFFFFFFF;
+       init_byte_array(target.c, 8, 0xFF);
        bt_bitfield_write(target.c, unsigned char, shift, len, src);
        printf("bytewise\n");
        print_byte_array(target.c, 8);
 
-       target.i[0] = 0xFFFFFFFF;
-       target.i[1] = 0xFFFFFFFF;
+       init_byte_array(target.c, 8, 0xFF);
        bt_bitfield_write(target.s, unsigned short, shift, len, src);
        printf("shortwise\n");
        print_byte_array(target.c, 8);
 
-       target.i[0] = 0xFFFFFFFF;
-       target.i[1] = 0xFFFFFFFF;
+       init_byte_array(target.c, 8, 0xFF);
        bt_bitfield_write(target.i, unsigned int, shift, len, src);
        printf("intwise\n");
        print_byte_array(target.c, 8);
 
-       target.i[0] = 0xFFFFFFFF;
-       target.i[1] = 0xFFFFFFFF;
+       init_byte_array(target.c, 8, 0xFF);
        bt_bitfield_write(target.l, unsigned long, shift, len, src);
        printf("longwise\n");
        print_byte_array(target.c, 8);
 
-       target.i[0] = 0xFFFFFFFF;
-       target.i[1] = 0xFFFFFFFF;
+       init_byte_array(target.c, 8, 0xFF);
        bt_bitfield_write(target.ll, unsigned long long, shift, len, src);
        printf("lluwise\n");
        print_byte_array(target.c, 8);
 
        bt_bitfield_read(target.c, unsigned char, shift, len, &readval);
        printf("read: %llX\n", readval);
+       print_byte_array(target.c, 8);
 
-       ret = run_test();
+       return 0;
+}
+
+int main(int argc, char **argv)
+{
+       if (argc > 1) {
+               /* Print encodings */
+               unsigned long src;
+               unsigned int shift, len;
+
+               src = atoi(argv[1]);
+               if (argc > 2)
+                       shift = atoi(argv[2]);
+               else
+                       shift = 12;
+               if (argc > 3)
+                       len = atoi(argv[3]);
+               else
+                       len = 40;
+               return print_encodings(src, shift, len);
+       }
 
-       return ret;
+       /* Run tap-formated tests */
+       run_test();
+       return exit_status();
 }
index 9e0bdca5a3ed44f42ecd8bbb82d0dac3860fcd6a..c10e88ab5ddbcdb8292a6dd0543e5221da2c3f5e 100755 (executable)
@@ -5,44 +5,20 @@ DIR=$(readlink -f ${TESTDIR})
 BABELTRACE_BIN=${DIR}/../converter/babeltrace
 CTF_TRACES=${DIR}/ctf-traces
 
-function print_ok ()
-{
-       # Check if we are a terminal
-       if [ -t 1 ]; then
-               echo -e "\e[1;32mOK\e[0m"
-       else
-               echo -e "OK"
-       fi
-}
-
-function print_fail ()
-{
-       # Check if we are a terminal
-       if [ -t 1 ]; then
-               echo -e "\e[1;31mFAIL\e[0m"
-       else
-               echo -e "FAIL"
-       fi
-}
-
-function test_check ()
+function test_check_success ()
 {
        if [ $? -ne 0 ] ; then
-               print_fail
                return 1
        else
-               print_ok
                return 0
        fi
 }
 
 function test_check_fail ()
 {
-       if [ $? -ne 1 ] ; then
-               print_fail
+       if [ $? -eq 0 ] ; then
                return 1
        else
-               print_ok
                return 0
        fi
 }
@@ -53,38 +29,48 @@ function run_babeltrace ()
        return $?
 }
 
-#run babeltrace expects success
-echo -e "Running babeltrace without argument..."
-run_babeltrace
-test_check
-if [ $? -ne 0 ]; then
-       exit 1
-fi
-
-for a in ${CTF_TRACES}/succeed/*; do
-       echo -e "Running babeltrace for trace ${a}..."
-       run_babeltrace ${a}
-       test_check
-       if [ $? -ne 0 ]; then
+function print_test_result ()
+{
+       if [ $# -ne 3 ] ; then
+               echo "Invalid arguments provided"
                exit 1
        fi
-done
 
-#run babeltrace expects failure
-echo -e "Running babeltrace with bogus argument..."
+       if [ ${2} -eq 0 ] ; then
+               echo -n "ok"
+       else
+               echo -n "not ok"
+       fi
+       echo -e " "${1}" - "${3}
+}
+
+successTraces=(${CTF_TRACES}/succeed/*)
+failTraces=(${CTF_TRACES}/fail/*)
+testCount=$((2 + ${#successTraces[@]} + ${#failTraces[@]}))
+
+currentTestIndex=1
+echo -e 1..${testCount}
+
+#run babeltrace, expects success
+run_babeltrace
+test_check_success
+print_test_result $((currentTestIndex++)) $? "Running babeltrace without arguments"
+
+#run babeltrace with a bogus argument, expects failure
 run_babeltrace --bogusarg
 test_check_fail
-if [ $? -ne 0 ]; then
-       exit 1
-fi
+print_test_result $((currentTestIndex++)) $? "Running babeltrace with a bogus argument"
+
+for tracePath in ${successTraces[@]}; do
+       run_babeltrace ${tracePath}
+       test_check_success
+       print_test_result $((currentTestIndex++)) $? "Running babeltrace with trace ${tracePath}"
+done
 
-for a in ${CTF_TRACES}/fail/*; do
-       echo -e "Running babeltrace for trace ${a}..."
-       run_babeltrace ${a}
+for tracePath in ${failTraces[@]}; do
+       run_babeltrace ${tracePath}
        test_check_fail
-       if [ $? -ne 0 ]; then
-               exit 1
-       fi
+       print_test_result $((currentTestIndex++)) $? "Running babeltrace with trace ${tracePath}"
 done
 
 exit 0
This page took 0.032077 seconds and 4 git commands to generate.