build: simplify test handling and speed up build.

Instead of using a ./configure parameter to decide whehter to build
tests or not, use the check_PROGRAMS variable so that the tests are
only built when running `make check`.

To avoid slowing down the test phase itself, collapse the declaration
of the test targets in the tests/Makefile.am file, this way they can
be built and linked in parallel before the testsuite is executed.

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
This commit is contained in:
Diego Elio Pettenò 2012-06-29 13:01:18 -07:00 committed by Harald Welte
parent 327009e420
commit ea0e1eca2b
14 changed files with 51 additions and 104 deletions

1
.gitignore vendored
View File

@ -1,6 +1,7 @@
Makefile
Makefile.in
.deps
.dirstamp
.libs
*.o
*.lo

View File

@ -59,14 +59,6 @@ AC_ARG_ENABLE(plugin,
[enable_plugin=$enableval], [enable_plugin="yes"])
AM_CONDITIONAL(ENABLE_PLUGIN, test x"$enable_plugin" = x"yes")
AC_ARG_ENABLE(tests,
[AS_HELP_STRING(
[--disable-tests],
[Disable building test programs]
)],
[enable_tests=$enableval], [enable_tests="yes"])
AM_CONDITIONAL(ENABLE_TESTS, test x"$enable_tests" = x"yes")
AC_ARG_ENABLE(vty,
[AS_HELP_STRING(
[--disable-vty],
@ -130,7 +122,6 @@ AC_ARG_ENABLE(embedded,
if test x"$embedded" = x"yes"
then
AC_DEFINE([EMBEDDED],[1],[Select building for embedded use])
AM_CONDITIONAL(ENABLE_TESTS, false)
AM_CONDITIONAL(ENABLE_PLUGIN, false)
AM_CONDITIONAL(ENABLE_MSGFILE, false)
AM_CONDITIONAL(ENABLE_SERIAL, false)
@ -163,17 +154,6 @@ AC_OUTPUT(
src/gsm/Makefile
src/gb/Makefile
tests/Makefile
tests/timer/Makefile
tests/sms/Makefile
tests/msgfile/Makefile
tests/ussd/Makefile
tests/smscb/Makefile
tests/bits/Makefile
tests/a5/Makefile
tests/auth/Makefile
tests/conv/Makefile
tests/lapd/Makefile
tests/gsm0808/Makefile
utils/Makefile
Doxyfile.core
Doxyfile.gsm

View File

@ -1,9 +1,45 @@
if ENABLE_TESTS
SUBDIRS = timer sms ussd smscb bits a5 conv auth lapd gsm0808
INCLUDES = $(all_includes) -I$(top_srcdir)/include
check_PROGRAMS = timer/timer_test sms/sms_test ussd/ussd_test \
smscb/smscb_test bits/bitrev_test a5/a5_test \
conv/conv_test auth/milenage_test lapd/lapd_test \
gsm0808/gsm0808_test
if ENABLE_MSGFILE
SUBDIRS += msgfile
check_PROGRAMS += msgfile/msgfile_test
endif
a5_a5_test_SOURCES = a5/a5_test.c
a5_a5_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la
auth_milenage_test_SOURCES = auth/milenage_test.c
auth_milenage_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la
bits_bitrev_test_SOURCES = bits/bitrev_test.c
bits_bitrev_test_LDADD = $(top_builddir)/src/libosmocore.la
conv_conv_test_SOURCES = conv/conv_test.c
conv_conv_test_LDADD = $(top_builddir)/src/libosmocore.la
gsm0808_gsm0808_test_SOURCES = gsm0808/gsm0808_test.c
gsm0808_gsm0808_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la
lapd_lapd_test_SOURCES = lapd/lapd_test.c
lapd_lapd_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la
msgfile_msgfile_test_SOURCES = msgfile/msgfile_test.c
msgfile_msgfile_test_LDADD = $(top_builddir)/src/libosmocore.la
smscb_smscb_test_SOURCES = smscb/smscb_test.c
smscb_smscb_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la
sms_sms_test_SOURCES = sms/sms_test.c
sms_sms_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la
timer_timer_test_SOURCES = timer/timer_test.c
timer_timer_test_LDADD = $(top_builddir)/src/libosmocore.la
ussd_ussd_test_SOURCES = ussd/ussd_test.c
ussd_ussd_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la
# The `:;' works around a Bash 3.2 bug when the output is not writeable.
$(srcdir)/package.m4: $(top_srcdir)/configure.ac
@ -22,26 +58,29 @@ $(srcdir)/package.m4: $(top_srcdir)/configure.ac
echo 'm4_define([AT_PACKAGE_URL],' && \
echo ' [$(PACKAGE_URL)])'; \
} >'$(srcdir)/package.m4'
EXTRA_DIST = testsuite.at $(srcdir)/package.m4 $(TESTSUITE)
EXTRA_DIST = testsuite.at $(srcdir)/package.m4 $(TESTSUITE) \
timer/timer_test.ok sms/sms_test.ok ussd/ussd_test.ok \
smscb/smscb_test.ok bits/bitrev_test.ok a5/a5_test.ok \
conv/conv_test.ok auth/milenage_test.ok \
lapd/lapd_test.ok gsm0808/gsm0808_test.ok \
msgfile/msgfile_test.ok msgfile/msgconfig.cfg
TESTSUITE = $(srcdir)/testsuite
check-local: atconfig $(TESTSUITE)
$(SHELL) '$(TESTSUITE)' $(TESTSUITEFLAGS)
installcheck-local: atconfig $(TESTSUITE)
$(SHELL) '$(TESTSUITE)' AUTOTEST_PATH='$(bindir)' \
$(TESTSUITEFLAGS)
clean-local:
test ! -f '$(TESTSUITE)' || \
$(SHELL) '$(TESTSUITE)' --clean
$(RM) -f atconfig
AUTOM4TE = $(SHELL) $(top_srcdir)/missing --run autom4te
AUTOTEST = $(AUTOM4TE) --language=autotest
$(TESTSUITE): $(srcdir)/testsuite.at $(srcdir)/package.m4
$(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
mv $@.tmp $@
endif

View File

@ -1,6 +0,0 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
noinst_PROGRAMS = a5_test
EXTRA_DIST = a5_test.ok
a5_test_SOURCES = a5_test.c
a5_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la

View File

@ -1,8 +0,0 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
noinst_PROGRAMS = milenage_test
EXTRA_DIST = milenage_test.ok
milenage_test_SOURCES = milenage_test.c
milenage_test_LDADD = $(top_builddir)/src/libosmocore.la \
$(top_builddir)/src/gsm/libosmogsm.la

View File

@ -1,7 +0,0 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
noinst_PROGRAMS = bitrev_test
EXTRA_DIST = bitrev_test.ok
bitrev_test_SOURCES = bitrev_test.c
bitrev_test_LDADD = $(top_builddir)/src/libosmocore.la

View File

@ -1,6 +0,0 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
noinst_PROGRAMS = conv_test
EXTRA_DIST = conv_test.ok
conv_test_SOURCES = conv_test.c
conv_test_LDADD = $(top_builddir)/src/libosmocore.la

View File

@ -1,6 +0,0 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
noinst_PROGRAMS = gsm0808_test
EXTRA_DIST = gsm0808_test.ok
gsm0808_test_SOURCES = gsm0808_test.c
gsm0808_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la

View File

@ -1,9 +0,0 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
AM_FLAGS = -Wall -O0
noinst_PROGRAMS = lapd_test
EXTRA_DIST = lapd_test.ok
lapd_test_SOURCES = lapd_test.c
lapd_test_LDADD = \
$(top_builddir)/src/libosmocore.la \
$(top_builddir)/src/gsm/libosmogsm.la

View File

@ -1,6 +0,0 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
noinst_PROGRAMS = msgfile_test
EXTRA_DIST = msgfile_test.ok msgconfig.cfg
msgfile_test_SOURCES = msgfile_test.c
msgfile_test_LDADD = $(top_builddir)/src/libosmocore.la

View File

@ -1,6 +0,0 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
noinst_PROGRAMS = sms_test
EXTRA_DIST = sms_test.ok
sms_test_SOURCES = sms_test.c
sms_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la

View File

@ -1,6 +0,0 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
noinst_PROGRAMS = smscb_test
EXTRA_DIST = smscb_test.ok
smscb_test_SOURCES = smscb_test.c
smscb_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la

View File

@ -1,7 +0,0 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
noinst_PROGRAMS = timer_test
EXTRA_DIST = timer_test.ok
timer_test_SOURCES = timer_test.c
timer_test_LDADD = $(top_builddir)/src/libosmocore.la

View File

@ -1,6 +0,0 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
noinst_PROGRAMS = ussd_test
EXTRA_DIST = ussd_test.ok
ussd_test_SOURCES = ussd_test.c
ussd_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la