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