diff options
author | Jiri Olsa <Jiri Olsa jolsa@redhat.com> | 2011-06-15 23:20:25 +0200 |
---|---|---|
committer | Jiri Olsa <Jiri Olsa jolsa@redhat.com> | 2011-06-17 12:08:26 +0200 |
commit | 73ae529a915c6445d5cf0a43f8cba140d7d79e83 (patch) | |
tree | f9154c63353bd04e0a73f6d086f867525b1d349c | |
parent | 23916445a712b64e34735a7d06bc69bfcfa4b3b6 (diff) | |
download | latrace-73ae529a915c6445d5cf0a43f8cba140d7d79e83.tar.gz latrace-73ae529a915c6445d5cf0a43f8cba140d7d79e83.tar.xz latrace-73ae529a915c6445d5cf0a43f8cba140d7d79e83.zip |
test: Add tests for LIBS*/SYM* options
Added automated tests for most of the LIBS*/SYM* options.
Missing tests for options:
LIBS_TO, LIBS_FROM, SYM_BELOW, SYM_NOEXIT
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | test/Makefile | 43 | ||||
-rw-r--r-- | test/lib-test-libsym1.c | 3 | ||||
-rw-r--r-- | test/lib-test-libsym2.c | 3 | ||||
-rw-r--r-- | test/lib-test-libsym3.c | 3 | ||||
-rw-r--r-- | test/script/test_libsym.sh | 141 | ||||
-rw-r--r-- | test/test-args.h | 15 | ||||
-rw-r--r-- | test/test-lib.c | 2 | ||||
-rw-r--r-- | test/test-lib.h | 15 | ||||
-rw-r--r-- | test/test-libsym.c | 283 | ||||
-rwxr-xr-x | test/test.sh | 1 |
11 files changed, 488 insertions, 22 deletions
@@ -4,6 +4,7 @@ * move all tests to scripts * added following options LIBS, LIBS_TO, LIBS_FROM, SYM, SYM_OMIT, SYM_BELOW, SYM_NOEXIT + * automated tests for LIBS*/SYM* 2011-06-02 Jiri Olsa <olsajiri@gmail.com> * adding large file support diff --git a/test/Makefile b/test/Makefile index 30de2a1..418760e 100644 --- a/test/Makefile +++ b/test/Makefile @@ -7,6 +7,15 @@ lib-test-common.so: test/lib-test-common.o lib-test-args.so: test/lib-test-args.o $(QUIET_LD)$(CC) $(CFLAGS) -fPIC -shared $(LDFLAGS) -o $@ $^ +lib-test-libsym1.so: test/lib-test-libsym1.o + $(QUIET_LD)$(CC) $(CFLAGS) -fPIC -shared $(LDFLAGS) -o $@ $^ + +lib-test-libsym2.so: test/lib-test-libsym2.o + $(QUIET_LD)$(CC) $(CFLAGS) -fPIC -shared $(LDFLAGS) -o $@ $^ + +lib-test-libsym3.so: test/lib-test-libsym3.o + $(QUIET_LD)$(CC) $(CFLAGS) -fPIC -shared $(LDFLAGS) -o $@ $^ + test-common: test/test-lib.o test/test-common.o $(QUIET_LD)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ lib-test-common.so @@ -16,17 +25,37 @@ test-args: test/test-lib.o test/test-args.o test/sysdeps/$(CONFIG_SYSDEP_DIR)/te test-kill: test/test-kill.o $(QUIET_LD)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ +test-libsym: test/test-libsym.o test/test-lib.o + $(QUIET_LD)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ lib-test-libsym1.so lib-test-libsym2.so lib-test-libsym3.so + OBJS+=test/test-lib.o -PROGRAMS+=lib-test-args.so test-args -OBJS+=test/lib-test-args.o \ +PROGRAMS+=\ + lib-test-args.so \ + test-args +OBJS+=\ + test/lib-test-args.o \ test/test-args.o \ test/sysdeps/$(CONFIG_SYSDEP_DIR)/test-args.o - -PROGRAMS+=lib-test-common.so test-common -OBJS+=test/lib-test-common.o \ +PROGRAMS+=\ + lib-test-common.so \ + test-common +OBJS+=\ + test/lib-test-common.o \ test/test-common.o -PROGRAMS+=test-kill -OBJS+= test/test-kill.o +PROGRAMS+=\ + lib-test-libsym1.so \ + lib-test-libsym2.so \ + lib-test-libsym3.so \ + test-libsym +OBJS+=\ + test/test-libsym.o \ + test/lib-test-libsym1.o + +PROGRAMS+=\ + test-kill +OBJS+=\ + test/test-kill.o + diff --git a/test/lib-test-libsym1.c b/test/lib-test-libsym1.c new file mode 100644 index 0000000..2f5dd4c --- /dev/null +++ b/test/lib-test-libsym1.c @@ -0,0 +1,3 @@ +void test_libsym1_1(void) { } +void test_libsym1_2(void) { } +void test_libsym1_3(void) { } diff --git a/test/lib-test-libsym2.c b/test/lib-test-libsym2.c new file mode 100644 index 0000000..49505fa --- /dev/null +++ b/test/lib-test-libsym2.c @@ -0,0 +1,3 @@ +void test_libsym2_1(void) { } +void test_libsym2_2(void) { } +void test_libsym2_3(void) { } diff --git a/test/lib-test-libsym3.c b/test/lib-test-libsym3.c new file mode 100644 index 0000000..61bf329 --- /dev/null +++ b/test/lib-test-libsym3.c @@ -0,0 +1,3 @@ +void test_libsym3_1(void) { } +void test_libsym3_2(void) { } +void test_libsym3_3(void) { } diff --git a/test/script/test_libsym.sh b/test/script/test_libsym.sh new file mode 100644 index 0000000..0e8ad8a --- /dev/null +++ b/test/script/test_libsym.sh @@ -0,0 +1,141 @@ +. $PWD/test/script/functions.sh + +function tls_cleanup +{ + rm -f /tmp/tls_latrace.conf +} + +function test_libsym_all +{ + LD_LIBRARY_PATH=$PWD ./latrace -qR $PWD/test-libsym all > /dev/null + CHECK_RET +} + +function test_libsym_lib1 +{ + cat > /tmp/tls_latrace.conf <<EOF +OPTIONS { + LIBS=*lib-test-libsym1 +} +EOF + LD_LIBRARY_PATH=$PWD ./latrace -qR -N /tmp/tls_latrace.conf $PWD/test-libsym lib1 > /dev/null + CHECK_RET +} + +function test_libsym_lib2 +{ + cat > /tmp/tls_latrace.conf <<EOF +OPTIONS { + LIBS=*lib-test-libsym2 +} +EOF + LD_LIBRARY_PATH=$PWD ./latrace -qR -N /tmp/tls_latrace.conf $PWD/test-libsym lib2 > /dev/null + CHECK_RET +} + +function test_libsym_lib3 +{ + cat > /tmp/tls_latrace.conf <<EOF +OPTIONS { + LIBS=*lib-test-libsym3 +} +EOF + LD_LIBRARY_PATH=$PWD ./latrace -qR -N /tmp/tls_latrace.conf $PWD/test-libsym lib3 > /dev/null + CHECK_RET +} + +function test_libsym_lib1lib2 +{ + cat > /tmp/tls_latrace.conf <<EOF +OPTIONS { + LIBS=*lib-test-libsym1,*lib-test-libsym2 +} +EOF + LD_LIBRARY_PATH=$PWD ./latrace -qR -N /tmp/tls_latrace.conf $PWD/test-libsym lib1lib2 > /dev/null + CHECK_RET +} + +function test_libsym_lib2lib3 +{ + cat > /tmp/tls_latrace.conf <<EOF +OPTIONS { + LIBS=*lib-test-libsym2,*lib-test-libsym3 +} +EOF + LD_LIBRARY_PATH=$PWD ./latrace -qR -N /tmp/tls_latrace.conf $PWD/test-libsym lib2lib3 > /dev/null + CHECK_RET +} + +function test_libsym_lib1lib2lib3 +{ + cat > /tmp/tls_latrace.conf <<EOF +OPTIONS { + LIBS=*lib-test-libsym1,*lib-test-libsym2,*lib-test-libsym3 +} +EOF + LD_LIBRARY_PATH=$PWD ./latrace -qR -N /tmp/tls_latrace.conf $PWD/test-libsym lib1lib2lib3 > /dev/null + CHECK_RET +} + +function test_libsym_sym1 +{ + cat > /tmp/tls_latrace.conf <<EOF +OPTIONS { + SYM=test_libsym1_1 +} +EOF + LD_LIBRARY_PATH=$PWD ./latrace -qR -N /tmp/tls_latrace.conf $PWD/test-libsym sym1 > /dev/null + CHECK_RET +} + +function test_libsym_sym2sym3 +{ + cat > /tmp/tls_latrace.conf <<EOF +OPTIONS { + SYM=test_libsym2_2,test_libsym3_3 +} +EOF + LD_LIBRARY_PATH=$PWD ./latrace -qR -N /tmp/tls_latrace.conf $PWD/test-libsym sym2sym3 > /dev/null + CHECK_RET +} + +function test_libsym_omit_sym1 +{ + cat > /tmp/tls_latrace.conf <<EOF +OPTIONS { + SYM_OMIT=test_libsym1_1 +} +EOF + LD_LIBRARY_PATH=$PWD ./latrace -qR -N /tmp/tls_latrace.conf $PWD/test-libsym omit_sym1 > /dev/null + CHECK_RET +} + +function test_libsym_omit_sym2sym3 +{ + cat > /tmp/tls_latrace.conf <<EOF +OPTIONS { + SYM_OMIT=test_libsym2_3,test_libsym3_2 +} +EOF + LD_LIBRARY_PATH=$PWD ./latrace -qR -N /tmp/tls_latrace.conf $PWD/test-libsym omit_sym2sym3 > /dev/null + CHECK_RET +} + +function test_libsym +{ + test_libsym_all + test_libsym_lib1 + test_libsym_lib2 + test_libsym_lib3 + test_libsym_lib1lib2 + test_libsym_lib2lib3 + test_libsym_lib1lib2lib3 + test_libsym_sym1 + test_libsym_sym2sym3 + test_libsym_omit_sym1 + test_libsym_omit_sym2sym3 + +# TODO tests for LIBS_TO, LIBS_FROM, SYM_BELOW, SYM_NOEXIT + + tls_cleanup +} diff --git a/test/test-args.h b/test/test-args.h index d116382..b25fbb9 100644 --- a/test/test-args.h +++ b/test/test-args.h @@ -13,19 +13,4 @@ do { \ sh->hide_tid = 1; \ } while(0) -#define LOCAL_TEST(data, cnt, test) \ -do { \ - char buf[BUFSIZE]; \ - int ret; \ - TEST_START(); \ - test; \ - TEST_STOP(); \ - ret = fout_read(sh, buf, BUFSIZE); \ - if (!ret) \ - return -1; \ - ret = re_test(buf, data, cnt); \ - if (RE_TEST_OK != ret) \ - FAILED("test %i, pattern '%s'\n", ret, data[ret].pat); \ -} while(0) - #endif /* TEST_ARGS_H */ diff --git a/test/test-lib.c b/test/test-lib.c index a9e9706..9edc960 100644 --- a/test/test-lib.c +++ b/test/test-lib.c @@ -187,6 +187,8 @@ int re_test(char *line, struct re_test_data *data, int cnt) return i; break; } + + /* TODO ??? line += m[0].rm_eo; */ } return RE_TEST_OK; diff --git a/test/test-lib.h b/test/test-lib.h index 54c1472..de9c10f 100644 --- a/test/test-lib.h +++ b/test/test-lib.h @@ -62,4 +62,19 @@ do { \ #define BUFSIZE 1000 +#define LOCAL_TEST(data, cnt, test) \ +do { \ + char buf[BUFSIZE]; \ + int ret; \ + TEST_START(); \ + test; \ + TEST_STOP(); \ + ret = fout_read(sh, buf, BUFSIZE); \ + if (!ret) \ + return -1; \ + ret = re_test(buf, data, cnt); \ + if (RE_TEST_OK != ret) \ + FAILED("test %i, pattern '%s'\n", ret, data[ret].pat); \ +} while(0) + #endif diff --git a/test/test-libsym.c b/test/test-libsym.c new file mode 100644 index 0000000..0a3af76 --- /dev/null +++ b/test/test-libsym.c @@ -0,0 +1,283 @@ + +#include <config.h> +#include <test/test-lib.h> +#include <string.h> + +void test_libsym1_1(void); +void test_libsym1_2(void); +void test_libsym1_3(void); +void test_libsym2_1(void); +void test_libsym2_2(void); +void test_libsym2_3(void); +void test_libsym3_1(void); +void test_libsym3_2(void); +void test_libsym3_3(void); + +static void test_libsym(void) +{ + test_libsym1_1(); + test_libsym1_2(); + test_libsym1_3(); + test_libsym2_1(); + test_libsym2_2(); + test_libsym2_3(); + test_libsym3_1(); + test_libsym3_2(); + test_libsym3_3(); +} + +/* TODO + * so far following tests check for displayed output.. need + * some intelligent regex to check unwanted output is really + * not displayed */ + +static int test_all(struct lt_config_shared *sh) +{ + struct re_test_data data1[] = { + { RE_TEST_TYPE_STR, 0, -1, "test_libsym1_1 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym1_2 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym1_3 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_1 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_2 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_3 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_1 \\[[^]]+lib-test-libsym3.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_2 \\[[^]]+lib-test-libsym3.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_3 \\[[^]]+lib-test-libsym3.so\\]" }, + }; + #define DATA_CNT(num) (sizeof(data ## num)/sizeof(struct re_test_data)) + + config_clear(sh); + sh->hide_tid = 1; + + LOCAL_TEST(data1, DATA_CNT(1), test_libsym()); + PASSED(); + return 0; +} + +static int test_lib1(struct lt_config_shared *sh) +{ + struct re_test_data data1[] = { + { RE_TEST_TYPE_STR, 0, -1, "test_libsym1_1 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym1_2 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym1_3 \\[[^]]+lib-test-libsym1.so\\]" }, + }; + #define DATA_CNT(num) (sizeof(data ## num)/sizeof(struct re_test_data)) + + config_clear(sh); + sh->hide_tid = 1; + + LOCAL_TEST(data1, DATA_CNT(1), test_libsym()); + PASSED(); + return 0; +} + +static int test_lib2(struct lt_config_shared *sh) +{ + struct re_test_data data1[] = { + { RE_TEST_TYPE_STR, 0, -1, "test_libsym2_1 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_2 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_3 \\[[^]]+lib-test-libsym2.so\\]" }, + }; + #define DATA_CNT(num) (sizeof(data ## num)/sizeof(struct re_test_data)) + + config_clear(sh); + sh->hide_tid = 1; + + LOCAL_TEST(data1, DATA_CNT(1), test_libsym()); + PASSED(); + return 0; +} + +static int test_lib3(struct lt_config_shared *sh) +{ + struct re_test_data data1[] = { + { RE_TEST_TYPE_STR, 0, -1, "test_libsym3_1 \\[[^]]+lib-test-libsym3.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_2 \\[[^]]+lib-test-libsym3.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_3 \\[[^]]+lib-test-libsym3.so\\]" }, + }; + #define DATA_CNT(num) (sizeof(data ## num)/sizeof(struct re_test_data)) + + config_clear(sh); + sh->hide_tid = 1; + + LOCAL_TEST(data1, DATA_CNT(1), test_libsym()); + PASSED(); + return 0; +} + +static int test_lib1lib2(struct lt_config_shared *sh) +{ + struct re_test_data data1[] = { + { RE_TEST_TYPE_STR, 0, -1, "test_libsym1_1 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym1_2 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym1_3 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_1 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_2 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_3 \\[[^]]+lib-test-libsym2.so\\]" }, + }; + #define DATA_CNT(num) (sizeof(data ## num)/sizeof(struct re_test_data)) + + config_clear(sh); + sh->hide_tid = 1; + + LOCAL_TEST(data1, DATA_CNT(1), test_libsym()); + PASSED(); + return 0; +} + +static int test_lib2lib3(struct lt_config_shared *sh) +{ + struct re_test_data data1[] = { + { RE_TEST_TYPE_STR, 0, -1, "test_libsym2_1 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_2 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_3 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_1 \\[[^]]+lib-test-libsym3.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_2 \\[[^]]+lib-test-libsym3.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_3 \\[[^]]+lib-test-libsym3.so\\]" }, + }; + #define DATA_CNT(num) (sizeof(data ## num)/sizeof(struct re_test_data)) + + config_clear(sh); + sh->hide_tid = 1; + + LOCAL_TEST(data1, DATA_CNT(1), test_libsym()); + PASSED(); + return 0; +} + +static int test_lib1lib2lib3(struct lt_config_shared *sh) +{ + struct re_test_data data1[] = { + { RE_TEST_TYPE_STR, 0, -1, "test_libsym1_1 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym1_2 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym1_3 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_1 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_2 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_3 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_1 \\[[^]]+lib-test-libsym3.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_2 \\[[^]]+lib-test-libsym3.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_3 \\[[^]]+lib-test-libsym3.so\\]" }, + }; + #define DATA_CNT(num) (sizeof(data ## num)/sizeof(struct re_test_data)) + + config_clear(sh); + sh->hide_tid = 1; + + LOCAL_TEST(data1, DATA_CNT(1), test_libsym()); + PASSED(); + return 0; +} + +static int test_sym1(struct lt_config_shared *sh) +{ + struct re_test_data data1[] = { + { RE_TEST_TYPE_STR, -1, -1, "test_libsym1_1 \\[[^]]+lib-test-libsym1.so\\]" }, + }; + #define DATA_CNT(num) (sizeof(data ## num)/sizeof(struct re_test_data)) + + config_clear(sh); + sh->hide_tid = 1; + + LOCAL_TEST(data1, DATA_CNT(1), test_libsym()); + PASSED(); + return 0; +} + +static int test_sym2sym3(struct lt_config_shared *sh) +{ + struct re_test_data data1[] = { + { RE_TEST_TYPE_STR, 0, -1, "test_libsym2_2 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_3 \\[[^]]+lib-test-libsym3.so\\]" }, + }; + #define DATA_CNT(num) (sizeof(data ## num)/sizeof(struct re_test_data)) + + config_clear(sh); + sh->hide_tid = 1; + + LOCAL_TEST(data1, DATA_CNT(1), test_libsym()); + PASSED(); + return 0; +} + +static int test_omit_sym1(struct lt_config_shared *sh) +{ + struct re_test_data data1[] = { + { RE_TEST_TYPE_STR, -1, -1, "test_libsym1_2 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym1_3 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_1 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_2 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_3 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_1 \\[[^]]+lib-test-libsym3.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_2 \\[[^]]+lib-test-libsym3.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_3 \\[[^]]+lib-test-libsym3.so\\]" }, + }; + #define DATA_CNT(num) (sizeof(data ## num)/sizeof(struct re_test_data)) + + config_clear(sh); + sh->hide_tid = 1; + + LOCAL_TEST(data1, DATA_CNT(1), test_libsym()); + PASSED(); + return 0; +} + +static int test_omit_sym2sym3(struct lt_config_shared *sh) +{ + struct re_test_data data1[] = { + { RE_TEST_TYPE_STR, 0, -1, "test_libsym1_1 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym1_2 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym1_3 \\[[^]]+lib-test-libsym1.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_1 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym2_2 \\[[^]]+lib-test-libsym2.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_1 \\[[^]]+lib-test-libsym3.so\\]" }, + { RE_TEST_TYPE_STR, -1, -1, "test_libsym3_3 \\[[^]]+lib-test-libsym3.so\\]" }, + }; + #define DATA_CNT(num) (sizeof(data ## num)/sizeof(struct re_test_data)) + + config_clear(sh); + sh->hide_tid = 1; + + LOCAL_TEST(data1, DATA_CNT(1), test_libsym()); + PASSED(); + return 0; +} + +int main(int argc, char **argv) +{ + struct lt_config_shared *sh; + char *test; + + if (argc != 2) + return -1; + + test = argv[1]; + + sh = config_init(); + if (!sh) + return -1; + + if (!strcmp(test, "all")) + TEST(test_all); + else if (!strcmp(test, "lib1")) + TEST(test_lib1); + else if (!strcmp(test, "lib2")) + TEST(test_lib2); + else if (!strcmp(test, "lib3")) + TEST(test_lib3); + else if (!strcmp(test, "lib1lib2")) + TEST(test_lib1lib2); + else if (!strcmp(test, "lib2lib3")) + TEST(test_lib2lib3); + else if (!strcmp(test, "lib1lib2lib3")) + TEST(test_lib1lib2lib3); + else if (!strcmp(test, "sym1")) + TEST(test_sym1); + else if (!strcmp(test, "sym2sym3")) + TEST(test_sym2sym3); + else if (!strcmp(test, "omit_sym1")) + TEST(test_omit_sym1); + else if (!strcmp(test, "omit_sym2sym3")) + TEST(test_omit_sym2sym3); + + return 0; +} diff --git a/test/test.sh b/test/test.sh index 46f8cf8..b6de16b 100755 --- a/test/test.sh +++ b/test/test.sh @@ -9,3 +9,4 @@ TEST test_args TEST test_common TEST test_tty_output TEST test_kill +TEST test_libsym |