1.1 --- a/contrib/gcc-test-suite/Makefile Wed May 19 17:53:04 2010 +0200
1.2 +++ b/contrib/gcc-test-suite/Makefile Thu Jul 15 09:51:55 2010 +0200
1.3 @@ -12,64 +12,68 @@
1.4 # option) any later version.
1.5 #
1.6
1.7 -# Internal directory configuration
1.8 -TOPDIR=${shell pwd}
1.9 -TMPDIR=${TOPDIR}/tmp
1.10 +# Internal configuration
1.11 +TARGET:=@@DG_TARGET@@
1.12 +TOPDIR:=$(shell pwd)
1.13 +LOGDIR:=$(TOPDIR)/tmp
1.14
1.15 # Include default configuration
1.16 include default.cfg
1.17
1.18 # Add toolchain to path
1.19 -PATH:=${DG_TOOLCHAIN_DIR}:${PATH}
1.20 +PATH:=$(shell cd ../../bin && pwd):$(PATH)
1.21
1.22 # Select test set
1.23 -ifeq (${DG_TOOLNAME},gcc)
1.24 - DG_TESTS=$(DG_C_TESTS)
1.25 +ifeq ($(DG_TOOLNAME),gcc)
1.26 + DG_TESTS:=$(DG_C_TESTS)
1.27 endif
1.28 -ifeq (${DG_TOOLNAME},g++)
1.29 - DG_TESTS=$(DG_CPP_TESTS)
1.30 +ifeq ($(DG_TOOLNAME),g++)
1.31 + DG_TESTS:=$(DG_CPP_TESTS)
1.32 endif
1.33
1.34 # Check that we have 'runtest' installed
1.35 RUNTEST=$(shell which runtest)
1.36 -ifeq "${RUNTEST}" ""
1.37 +ifeq ($(RUNTEST),)
1.38 $(error "DejaGnu 'runtest' not found - please install (eg. apt-get install dejagnu)")
1.39 endif
1.40
1.41 # Targets
1.42 all: test
1.43
1.44 -gcc-testsuite-${DG_GCC_VERSION}.tar.gz:
1.45 -# wget -nc ${DG_GCC_URL}
1.46 -
1.47 -gcc-${DG_GCC_VERSION}: gcc-testsuite-${DG_GCC_VERSION}.tar.gz
1.48 -# tar xzf gcc-testsuite-${DG_GCC_VERSION}.tar.gz
1.49 +$(LOGDIR):
1.50 + @mkdir -p $@
1.51
1.52 -config:
1.53 - @mkdir -p ${TMPDIR}
1.54 - @{ echo 'lappend boards_dir "."'; \
1.55 - echo "set target_alias ${DG_TARGET}"; } > ${TMPDIR}/site.exp
1.56 +$(LOGDIR)/site.exp: $(TOPDIR)/default.cfg $(LOGDIR)
1.57 + @{ echo 'lappend boards_dir "$(LOGDIR)"'; \
1.58 + echo "set target_alias $(TARGET)"; } > $@
1.59 +
1.60 +$(LOGDIR)/board.exp: $(TOPDIR)/default.cfg $(LOGDIR)
1.61 @{ echo -e "load_generic_config \"unix\""; \
1.62 echo -e "process_multilib_options \"\"" ; \
1.63 echo "set_board_info bmk,use_alarm 1" ; \
1.64 echo "set_board_info rsh_prog ssh" ; \
1.65 echo "set_board_info rcp_prog scp" ; \
1.66 - echo "set_board_info hostname ${DG_TARGET_HOSTNAME}"; \
1.67 - echo "set_board_info username ${DG_TARGET_USERNAME}"; } > ${TMPDIR}/board.exp
1.68 + echo "set_board_info hostname $(DG_TARGET_HOSTNAME)"; \
1.69 + echo "set_board_info username $(DG_TARGET_USERNAME)"; } > $@
1.70
1.71 -test: gcc-${DG_GCC_VERSION} config
1.72 - cd ${TMPDIR} && \
1.73 - runtest --tool ${DG_TOOLNAME} \
1.74 - --srcdir ${DG_SRC_DIR} \
1.75 - --all \
1.76 - --target ${DG_TARGET} \
1.77 - --target_board board \
1.78 - ${DG_TESTS} \
1.79 - GXX_UNDER_TEST=${DG_TARGET}-g++ ; \
1.80 - mv ${TMPDIR}/*.log ${TOPDIR} ; \
1.81 - mv ${TMPDIR}/*.sum ${TOPDIR}
1.82 +# As Martin puts it:
1.83 +# > The thing is that when you run 50k+ test cases the odds are that at
1.84 +# > least one will fail and thus runtest basically always return an error
1.85 +# > despite the fact that the test session has executed successfully.
1.86 +# So just ignore any error reported by runtest
1.87 +test: $(LOGDIR)/board.exp $(LOGDIR)/site.exp $(LOGDIR)
1.88 + @runtest --tool $(DG_TOOLNAME) \
1.89 + --srcdir $(TOPDIR)/testsuite \
1.90 + --objdir $(LOGDIR) \
1.91 + --outdir $(LOGDIR) \
1.92 + --all \
1.93 + --target $(TARGET) \
1.94 + --target_board board \
1.95 + $(DG_TESTS) \
1.96 + GXX_UNDER_TEST=$(DG_TARGET)-g++ || true
1.97 + @printf "Result files available in '%s'\n" "$(LOGDIR)"
1.98
1.99 clean:
1.100 - rm -rf gcc-testsuite-${DG_GCC_VERSION}.tar.gz gcc-${DG_GCC_VERSION} ${TMPDIR} *.log *.sum
1.101 + rm -rf $(LOGDIR)
1.102
1.103 .PHONY: config test clean