tests.am raw
1 #
2 # THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
3 # OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
4 #
5 # Permission is hereby granted to use or copy this program
6 # for any purpose, provided the above notices are retained on all copies.
7 # Permission to modify the code and to distribute modified code is granted,
8 # provided the above notices are retained, and a notice that the code was
9 # modified is included with the above copyright notice.
10
11 # Common libs to `*_LDADD` for most tests.
12 test_ldadd = $(nodist_libgc_la_OBJECTS) $(top_builddir)/libgc.la \
13 $(EXTRA_TEST_LIBS)
14
15 TESTS += gctest$(EXEEXT)
16 check_PROGRAMS += gctest
17 gctest_SOURCES = tests/gctest.c
18 gctest_LDADD = $(test_ldadd)
19 if THREADS
20 if ENABLE_SHARED
21 gctest_LDADD += $(ATOMIC_OPS_LIBS)
22 endif
23 gctest_LDADD += $(THREADDLLIBS)
24 endif
25 gctest_DEPENDENCIES = $(top_builddir)/libgc.la
26
27 if EMSCRIPTEN
28 # Note: because of `libtool`, you will need to point your browser to
29 # ".libs/gctest.html", not "gctest.html" at `topdir`.
30 check_PROGRAMS += gctest.html
31 gctest_html_SOURCES = $(gctest_SOURCES)
32 gctest_html_LDADD = $(gctest_LDADD)
33 endif
34
35 TESTS += hugetest$(EXEEXT)
36 check_PROGRAMS += hugetest
37 hugetest_SOURCES = tests/huge.c
38 hugetest_LDADD = $(test_ldadd)
39
40 TESTS += leaktest$(EXEEXT)
41 check_PROGRAMS += leaktest
42 leaktest_SOURCES = tests/leak.c
43 leaktest_LDADD = $(test_ldadd)
44
45 TESTS += middletest$(EXEEXT)
46 check_PROGRAMS += middletest
47 middletest_SOURCES = tests/middle.c
48 middletest_LDADD = $(test_ldadd)
49
50 TESTS += realloctest$(EXEEXT)
51 check_PROGRAMS += realloctest
52 realloctest_SOURCES = tests/realloc.c
53 realloctest_LDADD = $(test_ldadd)
54
55 TESTS += smashtest$(EXEEXT)
56 check_PROGRAMS += smashtest
57 smashtest_SOURCES = tests/smash.c
58 smashtest_LDADD = $(test_ldadd)
59
60 TESTS += staticrootstest$(EXEEXT)
61 check_PROGRAMS += staticrootstest
62 staticrootstest_SOURCES = tests/staticroots.c
63 staticrootstest_CFLAGS = -DSTATICROOTSLIB2
64 staticrootstest_LDADD = $(nodist_libgc_la_OBJECTS) $(EXTRA_TEST_LIBS) \
65 libstaticroots_lib_test.la libstaticroots_lib2_test.la
66 check_LTLIBRARIES += libstaticroots_lib_test.la libstaticroots_lib2_test.la
67 libstaticroots_lib_test_la_SOURCES = tests/staticroots_lib.c
68 libstaticroots_lib_test_la_LIBADD = $(test_ldadd)
69 libstaticroots_lib_test_la_LDFLAGS = -no-undefined -rpath /nowhere
70 libstaticroots_lib_test_la_DEPENDENCIES = $(top_builddir)/libgc.la
71 libstaticroots_lib2_test_la_SOURCES = tests/staticroots_lib.c
72 libstaticroots_lib2_test_la_LIBADD = $(test_ldadd)
73 libstaticroots_lib2_test_la_CFLAGS = -DSTATICROOTSLIB2
74 libstaticroots_lib2_test_la_LDFLAGS = -no-undefined -rpath /nowhere
75 if ENABLE_SHARED
76 staticrootstest_LDADD += $(top_builddir)/libgc.la
77 endif
78
79 if KEEP_BACK_PTRS
80 TESTS += tracetest$(EXEEXT)
81 check_PROGRAMS += tracetest
82 tracetest_SOURCES = tests/trace.c
83 tracetest_LDADD = $(test_ldadd)
84 endif
85
86 if THREADS
87
88 TESTS += atomicopstest$(EXEEXT)
89 check_PROGRAMS += atomicopstest
90 atomicopstest_SOURCES = tests/atomicops.c
91 atomicopstest_LDADD = $(nodist_libgc_la_OBJECTS) $(EXTRA_TEST_LIBS) \
92 $(ATOMIC_OPS_LIBS) $(THREADDLLIBS)
93
94 TESTS += initfromthreadtest$(EXEEXT)
95 check_PROGRAMS += initfromthreadtest
96 initfromthreadtest_SOURCES = tests/initfromthread.c
97 initfromthreadtest_LDADD = $(test_ldadd) $(THREADDLLIBS)
98
99 TESTS += subthreadcreatetest$(EXEEXT)
100 check_PROGRAMS += subthreadcreatetest
101 subthreadcreatetest_SOURCES = tests/subthreadcreate.c
102 subthreadcreatetest_LDADD = $(test_ldadd)
103 if ENABLE_SHARED
104 subthreadcreatetest_LDADD += $(ATOMIC_OPS_LIBS)
105 endif
106 subthreadcreatetest_LDADD += $(THREADDLLIBS)
107
108 TESTS += threadkeytest$(EXEEXT)
109 check_PROGRAMS += threadkeytest
110 threadkeytest_SOURCES = tests/threadkey.c
111 threadkeytest_LDADD = $(test_ldadd) $(THREADDLLIBS)
112
113 TESTS += threadleaktest$(EXEEXT)
114 check_PROGRAMS += threadleaktest
115 threadleaktest_SOURCES = tests/threadleak.c
116 threadleaktest_LDADD = $(test_ldadd) $(THREADDLLIBS)
117
118 endif
119
120 if CPLUSPLUS
121
122 TESTS += cpptest$(EXEEXT)
123 check_PROGRAMS += cpptest
124 cpptest_SOURCES = tests/cpp.cc
125 if AVOID_CPP_LIB
126 cpptest_LDADD = gc_badalc.o gc_cpp.o $(test_ldadd) $(CXXLIBS)
127 else
128 cpptest_LDADD = libgccpp.la $(nodist_libgc_la_OBJECTS) \
129 $(EXTRA_TEST_LIBS) $(CXXLIBS)
130 ## In case of static libraries build, `libgc.a` file is already referenced in
131 ## `dependency_libs` attribute of `libgccpp.la` file.
132 if ENABLE_SHARED
133 cpptest_LDADD += $(top_builddir)/libgc.la
134 endif
135 endif
136
137 if GC_TBA_LIBRARY
138 TESTS += treetest$(EXEEXT)
139 check_PROGRAMS += treetest
140 treetest_SOURCES = tests/tree.cc
141 if AVOID_CPP_LIB
142 treetest_LDADD = gc_badalc.o $(test_ldadd) $(CXXLIBS)
143 else
144 treetest_LDADD = libgctba.la $(nodist_libgc_la_OBJECTS) \
145 $(EXTRA_TEST_LIBS) $(CXXLIBS)
146 if ENABLE_SHARED
147 treetest_LDADD += $(top_builddir)/libgc.la
148 endif
149 endif
150 endif
151
152 endif
153
154 if ENABLE_DISCLAIM
155
156 TESTS += disclaimtest$(EXEEXT)
157 check_PROGRAMS += disclaimtest
158 disclaimtest_SOURCES = tests/disclaim.c
159 disclaimtest_LDADD = $(test_ldadd)
160 if THREADS
161 disclaimtest_LDADD += $(THREADDLLIBS)
162 endif
163
164 TESTS += disclaim_bench$(EXEEXT)
165 check_PROGRAMS += disclaim_bench
166 disclaim_bench_SOURCES = tests/disclaim_bench.c
167 disclaim_bench_LDADD = $(test_ldadd)
168
169 TESTS += weakmaptest$(EXEEXT)
170 check_PROGRAMS += weakmaptest
171 weakmaptest_SOURCES = tests/weakmap.c
172 weakmaptest_LDADD = $(test_ldadd)
173 if THREADS
174 if ENABLE_SHARED
175 weakmaptest_LDADD += $(ATOMIC_OPS_LIBS)
176 endif
177 weakmaptest_LDADD += $(THREADDLLIBS)
178 endif
179
180 endif
181
182 # Run the tests directly (without `test-driver`):
183 .PHONY: check-without-test-driver
184 check-without-test-driver: $(TESTS)
185 ./gctest$(EXEEXT)
186 ./hugetest$(EXEEXT)
187 ./leaktest$(EXEEXT)
188 ./middletest$(EXEEXT)
189 ./realloctest$(EXEEXT)
190 ./smashtest$(EXEEXT)
191 ./staticrootstest$(EXEEXT)
192 test ! -f atomicopstest$(EXEEXT) || ./atomicopstest$(EXEEXT)
193 test ! -f cpptest$(EXEEXT) || ./cpptest$(EXEEXT)
194 test ! -f disclaim_bench$(EXEEXT) || ./disclaim_bench$(EXEEXT)
195 test ! -f disclaimtest$(EXEEXT) || ./disclaimtest$(EXEEXT)
196 test ! -f initfromthreadtest$(EXEEXT) || ./initfromthreadtest$(EXEEXT)
197 test ! -f subthreadcreatetest$(EXEEXT) || ./subthreadcreatetest$(EXEEXT)
198 test ! -f threadkeytest$(EXEEXT) || ./threadkeytest$(EXEEXT)
199 test ! -f threadleaktest$(EXEEXT) || ./threadleaktest$(EXEEXT)
200 test ! -f tracetest$(EXEEXT) || ./tracetest$(EXEEXT)
201 test ! -f treetest$(EXEEXT) || ./treetest$(EXEEXT)
202 test ! -f weakmaptest$(EXEEXT) || ./weakmaptest$(EXEEXT)
203 ./cordtest$(EXEEXT)
204