summaryrefslogtreecommitdiffstats
path: root/test/script/test_libsym.sh
blob: 0e8ad8ad5b02ca0d58ca2d15916e6a57c245b1a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
}