1 # Helper makefile which downloads (if required) and runs the GCC test suite (DejaGnu)
3 # Note: Before run please make sure to have your toolchain available in your path.
5 # Copyright 2010 DoréDevelopment
7 # Author: Martin Lund <mgl@doredevelopment.dk>
9 # This program is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU General Public License as published by the
11 # Free Software Foundation; either version 2 of the License, or (at your
12 # option) any later version.
15 # Internal configuration
20 # Include default configuration
23 # Add toolchain to path
24 PATH:=$(shell cd ../../bin && pwd):$(PATH)
27 ifeq ($(DG_TOOLNAME),gcc)
28 DG_TESTS:=$(DG_C_TESTS)
30 ifeq ($(DG_TOOLNAME),g++)
31 DG_TESTS:=$(DG_CPP_TESTS)
34 # Check that we have 'runtest' installed
35 RUNTEST=$(shell which runtest)
37 $(error "DejaGnu 'runtest' not found - please install (eg. apt-get install dejagnu)")
46 $(LOGDIR)/site.exp: $(TOPDIR)/default.cfg $(LOGDIR)
47 @{ echo 'lappend boards_dir "$(LOGDIR)"'; \
48 echo "set target_alias $(TARGET)"; } > $@
50 $(LOGDIR)/board.exp: $(TOPDIR)/default.cfg $(LOGDIR)
51 @{ echo -e "load_generic_config \"unix\""; \
52 echo -e "process_multilib_options \"\"" ; \
53 echo "set_board_info bmk,use_alarm 1" ; \
54 echo "set_board_info rsh_prog ssh" ; \
55 echo "set_board_info rcp_prog scp" ; \
56 echo "set_board_info hostname $(DG_TARGET_HOSTNAME)"; \
57 echo "set_board_info username $(DG_TARGET_USERNAME)"; } > $@
60 # > The thing is that when you run 50k+ test cases the odds are that at
61 # > least one will fail and thus runtest basically always return an error
62 # > despite the fact that the test session has executed successfully.
63 # So just ignore any error reported by runtest
64 test: $(LOGDIR)/board.exp $(LOGDIR)/site.exp $(LOGDIR)
65 @runtest --tool $(DG_TOOLNAME) \
66 --srcdir $(TOPDIR)/testsuite \
71 --target_board board \
73 GXX_UNDER_TEST=$(DG_TARGET)-g++ || true
74 @printf "Result files available in '%s'\n" "$(LOGDIR)"
79 .PHONY: config test clean