X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Fregression%2FMakefile.am;h=b8d4acfe62d118e3f903f1932c3b11647bd31e37;hp=eb1569949d53a5ab29eb1b9491c4264141dba230;hb=153b081a9b007aad7bece415dc3bf1125edd2da3;hpb=58a052effb2305655ff1b7233c78ab24fc25257e diff --git a/tests/regression/Makefile.am b/tests/regression/Makefile.am index eb15699..b8d4acf 100644 --- a/tests/regression/Makefile.am +++ b/tests/regression/Makefile.am @@ -1,77 +1,212 @@ -if !TARGET_IS_ANDROID -AM_LDFLAGS=-lpthread -endif -AM_CFLAGS=-I$(top_srcdir) -I$(top_builddir) -I$(top_srcdir)/tests/common -g +AM_CPPFLAGS += -I$(top_srcdir)/src -I$(top_srcdir)/tests/utils -I$(top_srcdir)/tests/common -noinst_PROGRAMS = test_urcu_fork \ - rcutorture_urcu \ +TEST_EXTENSIONS = .tap +TAP_LOG_DRIVER_FLAGS = --merge --comments +TAP_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \ + $(top_srcdir)/tests/utils/tap-driver.sh + +noinst_PROGRAMS = \ + test_urcu_fork.tap \ + test_urcu_fork_cxx.tap \ + rcutorture_urcu_membarrier \ + rcutorture_urcu_membarrier_cxx \ rcutorture_urcu_signal \ + rcutorture_urcu_signal_cxx \ rcutorture_urcu_mb \ + rcutorture_urcu_mb_cxx \ rcutorture_urcu_bp \ - rcutorture_urcu_qsbr + rcutorture_urcu_bp_cxx \ + rcutorture_urcu_qsbr \ + rcutorture_urcu_qsbr_cxx noinst_HEADERS = rcutorture.h -if COMPAT_ARCH -COMPAT=$(top_srcdir)/compat_arch_@ARCHTYPE@.c -else -COMPAT= -endif - -if COMPAT_FUTEX -COMPAT+=$(top_srcdir)/compat_futex.c -endif - -URCU=$(top_srcdir)/urcu.c $(top_srcdir)/urcu-pointer.c $(top_srcdir)/wfcqueue.c $(COMPAT) -URCU_QSBR=$(top_srcdir)/urcu-qsbr.c $(top_srcdir)/urcu-pointer.c $(top_srcdir)/wfcqueue.c $(COMPAT) -# URCU_MB uses urcu.c but -DRCU_MB must be defined -URCU_MB=$(top_srcdir)/urcu.c $(top_srcdir)/urcu-pointer.c $(top_srcdir)/wfcqueue.c $(COMPAT) -# URCU_SIGNAL uses urcu.c but -DRCU_SIGNAL must be defined -URCU_SIGNAL=$(top_srcdir)/urcu.c $(top_srcdir)/urcu-pointer.c $(top_srcdir)/wfcqueue.c $(COMPAT) -URCU_BP=$(top_srcdir)/urcu-bp.c $(top_srcdir)/urcu-pointer.c $(top_srcdir)/wfcqueue.c $(COMPAT) -URCU_DEFER=$(top_srcdir)/urcu.c $(top_srcdir)/urcu-pointer.c $(top_srcdir)/wfcqueue.c $(COMPAT) - -URCU_COMMON_LIB=$(top_builddir)/liburcu-common.la -URCU_LIB=$(top_builddir)/liburcu.la -URCU_QSBR_LIB=$(top_builddir)/liburcu-qsbr.la -URCU_MB_LIB=$(top_builddir)/liburcu-mb.la -URCU_SIGNAL_LIB=$(top_builddir)/liburcu-signal.la -URCU_BP_LIB=$(top_builddir)/liburcu-bp.la -URCU_CDS_LIB=$(top_builddir)/liburcu-cds.la - -test_urcu_fork_SOURCES = test_urcu_fork.c $(URCU) - -rcutorture_urcu_SOURCES = urcutorture.c -rcutorture_urcu_CFLAGS = -DRCU_MEMBARRIER $(AM_CFLAGS) -rcutorture_urcu_LDADD = $(URCU) +URCU_COMMON_LIB=$(top_builddir)/src/liburcu-common.la +URCU_LIB=$(top_builddir)/src/liburcu.la +URCU_QSBR_LIB=$(top_builddir)/src/liburcu-qsbr.la +URCU_MB_LIB=$(top_builddir)/src/liburcu-mb.la +URCU_SIGNAL_LIB=$(top_builddir)/src/liburcu-signal.la +URCU_BP_LIB=$(top_builddir)/src/liburcu-bp.la +URCU_CDS_LIB=$(top_builddir)/src/liburcu-cds.la +TAP_LIB=$(top_builddir)/tests/utils/libtap.a + +test_urcu_fork_tap_SOURCES = test_urcu_fork.c +test_urcu_fork_tap_LDADD = $(URCU_LIB) $(TAP_LIB) + +test_urcu_fork_cxx_tap_SOURCES = test_urcu_fork_cxx.cpp +test_urcu_fork_cxx_tap_LDADD = $(URCU_LIB) $(TAP_LIB) + +rcutorture_urcu_membarrier_SOURCES = urcutorture.c +rcutorture_urcu_membarrier_CFLAGS = -DRCU_MEMBARRIER $(AM_CFLAGS) +rcutorture_urcu_membarrier_LDADD = $(URCU_LIB) $(TAP_LIB) + +rcutorture_urcu_membarrier_cxx_SOURCES = urcutorture_cxx.cpp +rcutorture_urcu_membarrier_cxx_CXXFLAGS = -DRCU_MEMBARRIER $(AM_CXXFLAGS) +rcutorture_urcu_membarrier_cxx_LDADD = $(URCU_LIB) $(TAP_LIB) rcutorture_urcu_mb_SOURCES = urcutorture.c rcutorture_urcu_mb_CFLAGS = -DRCU_MB $(AM_CFLAGS) -rcutorture_urcu_mb_LDADD = $(URCU_MB_LIB) +rcutorture_urcu_mb_LDADD = $(URCU_MB_LIB) $(TAP_LIB) + +rcutorture_urcu_mb_cxx_SOURCES = urcutorture_cxx.cpp +rcutorture_urcu_mb_cxx_CXXFLAGS = -DRCU_MB $(AM_CXXFLAGS) +rcutorture_urcu_mb_cxx_LDADD = $(URCU_MB_LIB) $(TAP_LIB) rcutorture_urcu_qsbr_SOURCES = urcutorture.c rcutorture_urcu_qsbr_CFLAGS = -DTORTURE_QSBR -DRCU_QSBR $(AM_CFLAGS) -rcutorture_urcu_qsbr_LDADD = $(URCU_QSBR_LIB) +rcutorture_urcu_qsbr_LDADD = $(URCU_QSBR_LIB) $(TAP_LIB) + +rcutorture_urcu_qsbr_cxx_SOURCES = urcutorture_cxx.cpp +rcutorture_urcu_qsbr_cxx_CXXFLAGS = -DTORTURE_QSBR -DRCU_QSBR $(AM_CXXFLAGS) +rcutorture_urcu_qsbr_cxx_LDADD = $(URCU_QSBR_LIB) $(TAP_LIB) rcutorture_urcu_signal_SOURCES = urcutorture.c rcutorture_urcu_signal_CFLAGS = -DRCU_SIGNAL $(AM_CFLAGS) -rcutorture_urcu_signal_LDADD = $(URCU_SIGNAL_LIB) +rcutorture_urcu_signal_LDADD = $(URCU_SIGNAL_LIB) $(TAP_LIB) + +rcutorture_urcu_signal_cxx_SOURCES = urcutorture_cxx.cpp +rcutorture_urcu_signal_cxx_CXXFLAGS = -DRCU_SIGNAL $(AM_CXXFLAGS) +rcutorture_urcu_signal_cxx_LDADD = $(URCU_SIGNAL_LIB) $(TAP_LIB) rcutorture_urcu_bp_SOURCES = urcutorture.c rcutorture_urcu_bp_CFLAGS = -DRCU_BP $(AM_CFLAGS) -rcutorture_urcu_bp_LDADD = $(URCU_BP_LIB) +rcutorture_urcu_bp_LDADD = $(URCU_BP_LIB) $(TAP_LIB) + +rcutorture_urcu_bp_cxx_SOURCES = urcutorture_cxx.cpp +rcutorture_urcu_bp_cxx_CXXFLAGS = -DRCU_BP $(AM_CXXFLAGS) +rcutorture_urcu_bp_cxx_LDADD = $(URCU_BP_LIB) $(TAP_LIB) urcutorture.c: ../common/api.h .PHONY: regtest -# For now, run the benchmarks too as regression tests. -# TODO: split benchmarks from regression tests +# This empty variable is required to enable the TAP test suite for custom +# targets like 'regtest' while keeping the default 'check' a noop. +TESTS = + +REGTEST_TESTS = \ + test_urcu_fork.tap \ + test_urcu_fork_cxx.tap \ + rcutorture_urcu_bp_perf_global.tap \ + rcutorture_urcu_bp_perf_global_cxx.tap \ + rcutorture_urcu_bp_perf_percpu.tap \ + rcutorture_urcu_bp_perf_percpu_cxx.tap \ + rcutorture_urcu_bp_perf_perthread.tap \ + rcutorture_urcu_bp_perf_perthread_cxx.tap \ + rcutorture_urcu_bp_rperf_global.tap \ + rcutorture_urcu_bp_rperf_global_cxx.tap \ + rcutorture_urcu_bp_rperf_percpu.tap \ + rcutorture_urcu_bp_rperf_percpu_cxx.tap \ + rcutorture_urcu_bp_rperf_perthread.tap \ + rcutorture_urcu_bp_rperf_perthread_cxx.tap \ + rcutorture_urcu_bp_stress_global.tap \ + rcutorture_urcu_bp_stress_global_cxx.tap \ + rcutorture_urcu_bp_stress_percpu.tap \ + rcutorture_urcu_bp_stress_percpu_cxx.tap \ + rcutorture_urcu_bp_stress_perthread.tap \ + rcutorture_urcu_bp_stress_perthread_cxx.tap \ + rcutorture_urcu_bp_uperf_global.tap \ + rcutorture_urcu_bp_uperf_global_cxx.tap \ + rcutorture_urcu_bp_uperf_percpu.tap \ + rcutorture_urcu_bp_uperf_percpu_cxx.tap \ + rcutorture_urcu_bp_uperf_perthread.tap \ + rcutorture_urcu_bp_uperf_perthread_cxx.tap \ + rcutorture_urcu_mb_perf_global.tap \ + rcutorture_urcu_mb_perf_global_cxx.tap \ + rcutorture_urcu_mb_perf_percpu.tap \ + rcutorture_urcu_mb_perf_percpu_cxx.tap \ + rcutorture_urcu_mb_perf_perthread.tap \ + rcutorture_urcu_mb_perf_perthread_cxx.tap \ + rcutorture_urcu_mb_rperf_global.tap \ + rcutorture_urcu_mb_rperf_global_cxx.tap \ + rcutorture_urcu_mb_rperf_percpu.tap \ + rcutorture_urcu_mb_rperf_percpu_cxx.tap \ + rcutorture_urcu_mb_rperf_perthread.tap \ + rcutorture_urcu_mb_rperf_perthread_cxx.tap \ + rcutorture_urcu_mb_stress_global.tap \ + rcutorture_urcu_mb_stress_global_cxx.tap \ + rcutorture_urcu_mb_stress_percpu.tap \ + rcutorture_urcu_mb_stress_percpu_cxx.tap \ + rcutorture_urcu_mb_stress_perthread.tap \ + rcutorture_urcu_mb_stress_perthread_cxx.tap \ + rcutorture_urcu_mb_uperf_global.tap \ + rcutorture_urcu_mb_uperf_global_cxx.tap \ + rcutorture_urcu_mb_uperf_percpu.tap \ + rcutorture_urcu_mb_uperf_percpu_cxx.tap \ + rcutorture_urcu_mb_uperf_perthread.tap \ + rcutorture_urcu_mb_uperf_perthread_cxx.tap \ + rcutorture_urcu_membarrier_perf_global.tap \ + rcutorture_urcu_membarrier_perf_global_cxx.tap \ + rcutorture_urcu_membarrier_perf_percpu.tap \ + rcutorture_urcu_membarrier_perf_percpu_cxx.tap \ + rcutorture_urcu_membarrier_perf_perthread.tap \ + rcutorture_urcu_membarrier_perf_perthread_cxx.tap \ + rcutorture_urcu_membarrier_rperf_global.tap \ + rcutorture_urcu_membarrier_rperf_global_cxx.tap \ + rcutorture_urcu_membarrier_rperf_percpu.tap \ + rcutorture_urcu_membarrier_rperf_percpu_cxx.tap \ + rcutorture_urcu_membarrier_rperf_perthread.tap \ + rcutorture_urcu_membarrier_rperf_perthread_cxx.tap \ + rcutorture_urcu_membarrier_stress_global.tap \ + rcutorture_urcu_membarrier_stress_global_cxx.tap \ + rcutorture_urcu_membarrier_stress_percpu.tap \ + rcutorture_urcu_membarrier_stress_percpu_cxx.tap \ + rcutorture_urcu_membarrier_stress_perthread.tap \ + rcutorture_urcu_membarrier_stress_perthread_cxx.tap \ + rcutorture_urcu_membarrier_uperf_global.tap \ + rcutorture_urcu_membarrier_uperf_global_cxx.tap \ + rcutorture_urcu_membarrier_uperf_percpu.tap \ + rcutorture_urcu_membarrier_uperf_percpu_cxx.tap \ + rcutorture_urcu_membarrier_uperf_perthread.tap \ + rcutorture_urcu_membarrier_uperf_perthread_cxx.tap \ + rcutorture_urcu_qsbr_perf_global.tap \ + rcutorture_urcu_qsbr_perf_global_cxx.tap \ + rcutorture_urcu_qsbr_perf_percpu.tap \ + rcutorture_urcu_qsbr_perf_percpu_cxx.tap \ + rcutorture_urcu_qsbr_perf_perthread.tap \ + rcutorture_urcu_qsbr_perf_perthread_cxx.tap \ + rcutorture_urcu_qsbr_rperf_global.tap \ + rcutorture_urcu_qsbr_rperf_global_cxx.tap \ + rcutorture_urcu_qsbr_rperf_percpu.tap \ + rcutorture_urcu_qsbr_rperf_percpu_cxx.tap \ + rcutorture_urcu_qsbr_rperf_perthread.tap \ + rcutorture_urcu_qsbr_rperf_perthread_cxx.tap \ + rcutorture_urcu_qsbr_stress_global.tap \ + rcutorture_urcu_qsbr_stress_global_cxx.tap \ + rcutorture_urcu_qsbr_stress_percpu.tap \ + rcutorture_urcu_qsbr_stress_percpu_cxx.tap \ + rcutorture_urcu_qsbr_stress_perthread.tap \ + rcutorture_urcu_qsbr_stress_perthread_cxx.tap \ + rcutorture_urcu_qsbr_uperf_global.tap \ + rcutorture_urcu_qsbr_uperf_global_cxx.tap \ + rcutorture_urcu_qsbr_uperf_percpu.tap \ + rcutorture_urcu_qsbr_uperf_percpu_cxx.tap \ + rcutorture_urcu_qsbr_uperf_perthread.tap \ + rcutorture_urcu_qsbr_uperf_perthread_cxx.tap \ + rcutorture_urcu_signal_perf_global.tap \ + rcutorture_urcu_signal_perf_global_cxx.tap \ + rcutorture_urcu_signal_perf_percpu.tap \ + rcutorture_urcu_signal_perf_percpu_cxx.tap \ + rcutorture_urcu_signal_perf_perthread.tap \ + rcutorture_urcu_signal_perf_perthread_cxx.tap \ + rcutorture_urcu_signal_rperf_global.tap \ + rcutorture_urcu_signal_rperf_global_cxx.tap \ + rcutorture_urcu_signal_rperf_percpu.tap \ + rcutorture_urcu_signal_rperf_percpu_cxx.tap \ + rcutorture_urcu_signal_rperf_perthread.tap \ + rcutorture_urcu_signal_rperf_perthread_cxx.tap \ + rcutorture_urcu_signal_stress_global.tap \ + rcutorture_urcu_signal_stress_global_cxx.tap \ + rcutorture_urcu_signal_stress_percpu.tap \ + rcutorture_urcu_signal_stress_percpu_cxx.tap \ + rcutorture_urcu_signal_stress_perthread.tap \ + rcutorture_urcu_signal_stress_perthread_cxx.tap \ + rcutorture_urcu_signal_uperf_global.tap \ + rcutorture_urcu_signal_uperf_global_cxx.tap \ + rcutorture_urcu_signal_uperf_percpu.tap \ + rcutorture_urcu_signal_uperf_percpu_cxx.tap \ + rcutorture_urcu_signal_uperf_perthread.tap \ + rcutorture_urcu_signal_uperf_perthread_cxx.tap + regtest: - ./test_urcu_fork - ./rcutorture_urcu - ./rcutorture_urcu_signal - ./rcutorture_urcu_mb - ./rcutorture_urcu_bp - ./rcutorture_urcu_qsbr - cd ../benchmark && ./runall.sh && cd .. + $(MAKE) $(AM_MAKEFLAGS) check TESTS="$(REGTEST_TESTS)"