test-suite: apply cleanup pass

Remove all non-modifiable items (target tuple, gcc version, toolchain path...)
Makefile syntax ( use $(...) instead of ${...} )
Update doc
Space-damage cleanups
This commit is contained in:
Yann E. MORIN" 2010-05-22 22:04:31 +02:00
parent 1779c82ad2
commit dbd5e50583
5 changed files with 72 additions and 69 deletions

View File

@ -12,64 +12,68 @@
# option) any later version.
#
# Internal directory configuration
TOPDIR=${shell pwd}
TMPDIR=${TOPDIR}/tmp
# Internal configuration
TARGET:=@@DG_TARGET@@
TOPDIR:=$(shell pwd)
LOGDIR:=$(TOPDIR)/tmp
# Include default configuration
include default.cfg
# Add toolchain to path
PATH:=${DG_TOOLCHAIN_DIR}:${PATH}
PATH:=$(shell cd ../../bin && pwd):$(PATH)
# Select test set
ifeq (${DG_TOOLNAME},gcc)
DG_TESTS=$(DG_C_TESTS)
ifeq ($(DG_TOOLNAME),gcc)
DG_TESTS:=$(DG_C_TESTS)
endif
ifeq (${DG_TOOLNAME},g++)
DG_TESTS=$(DG_CPP_TESTS)
ifeq ($(DG_TOOLNAME),g++)
DG_TESTS:=$(DG_CPP_TESTS)
endif
# Check that we have 'runtest' installed
RUNTEST=$(shell which runtest)
ifeq "${RUNTEST}" ""
ifeq ($(RUNTEST),)
$(error "DejaGnu 'runtest' not found - please install (eg. apt-get install dejagnu)")
endif
# Targets
all: test
gcc-testsuite-${DG_GCC_VERSION}.tar.gz:
# wget -nc ${DG_GCC_URL}
gcc-${DG_GCC_VERSION}: gcc-testsuite-${DG_GCC_VERSION}.tar.gz
# tar xzf gcc-testsuite-${DG_GCC_VERSION}.tar.gz
$(LOGDIR):
@mkdir -p $@
config:
@mkdir -p ${TMPDIR}
@{ echo 'lappend boards_dir "."'; \
echo "set target_alias ${DG_TARGET}"; } > ${TMPDIR}/site.exp
$(LOGDIR)/site.exp: $(TOPDIR)/default.cfg $(LOGDIR)
@{ echo 'lappend boards_dir "$(LOGDIR)"'; \
echo "set target_alias $(TARGET)"; } > $@
$(LOGDIR)/board.exp: $(TOPDIR)/default.cfg $(LOGDIR)
@{ echo -e "load_generic_config \"unix\""; \
echo -e "process_multilib_options \"\"" ; \
echo "set_board_info bmk,use_alarm 1" ; \
echo "set_board_info rsh_prog ssh" ; \
echo "set_board_info rcp_prog scp" ; \
echo "set_board_info hostname ${DG_TARGET_HOSTNAME}"; \
echo "set_board_info username ${DG_TARGET_USERNAME}"; } > ${TMPDIR}/board.exp
echo "set_board_info hostname $(DG_TARGET_HOSTNAME)"; \
echo "set_board_info username $(DG_TARGET_USERNAME)"; } > $@
test: gcc-${DG_GCC_VERSION} config
cd ${TMPDIR} && \
runtest --tool ${DG_TOOLNAME} \
--srcdir ${DG_SRC_DIR} \
--all \
--target ${DG_TARGET} \
--target_board board \
${DG_TESTS} \
GXX_UNDER_TEST=${DG_TARGET}-g++ ; \
mv ${TMPDIR}/*.log ${TOPDIR} ; \
mv ${TMPDIR}/*.sum ${TOPDIR}
# As Martin puts it:
# > The thing is that when you run 50k+ test cases the odds are that at
# > least one will fail and thus runtest basically always return an error
# > despite the fact that the test session has executed successfully.
# So just ignore any error reported by runtest
test: $(LOGDIR)/board.exp $(LOGDIR)/site.exp $(LOGDIR)
@runtest --tool $(DG_TOOLNAME) \
--srcdir $(TOPDIR)/testsuite \
--objdir $(LOGDIR) \
--outdir $(LOGDIR) \
--all \
--target $(TARGET) \
--target_board board \
$(DG_TESTS) \
GXX_UNDER_TEST=$(DG_TARGET)-g++ || true
@printf "Result files available in '%s'\n" "$(LOGDIR)"
clean:
rm -rf gcc-testsuite-${DG_GCC_VERSION}.tar.gz gcc-${DG_GCC_VERSION} ${TMPDIR} *.log *.sum
rm -rf $(LOGDIR)
.PHONY: config test clean

View File

@ -7,7 +7,6 @@ Requirements
* DejaGnu 'runtest' v1.4.4+
* Make v3.81+
* wget
Configuration
@ -19,16 +18,23 @@ Alternatively, override configuration variables on the command line.
Available config variables:
DG_GCC_VERSION
DG_GCC_URL
DG_TOOLNAME
DG_TARGET
The name of the tool you want to test.
Currently supported: gcc or g++
Default: gcc
DG_TARGET_HOSTNAME
The hostname or IP of the machine to execute run-tests
Default: 127.0.0.1
DG_TARGET_USERNAME
Execute the run-test as this user on DG_TARGET_HOSTNAME
Default: root
DG_C_TESTS
DG_CPP_TESTS
DG_TOOLCHAIN_DIR
DG_SRC_DIR
The C/C++ tests you want to check
Default: (empty, means all tests)
Run examples
@ -53,19 +59,25 @@ SSH automatic login configuration example
On host do:
ssh-keygen -t rsa (then simply press enter thru all steps)
scp ~/.ssh/id_rsa.pub <username>@<target IP>:~/
On target do:
cd ~
mkdir .ssh
cat id_rsa.pub >> .ssh/authorized_keys
rm id_rsa.pub
ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<target IP>
Now automatic ssh login should work - test by doing a simple ssh session to target.
Note: The procedure might be slightly different for your particular target.
Getting rid of the test-suite
-----------------------------
If you no longer have a need for the test-suite, then you can remove it altogether
from your toolchain. Just delete the test-suite/ dub-dir.
Author
------
Martin Lund <mgl@doredevelopment.dk>
Initial content
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Getting rid of the test-suite
Minor fixes

View File

@ -1,16 +1,9 @@
# Default test suite configuration
# GCC configuration
DG_GCC_VERSION = 4.3.2
DG_GCC_URL = ftp://gcc.gnu.org/pub/gcc/releases/gcc-${DG_GCC_VERSION}/gcc-testsuite-${DG_GCC_VERSION}.tar.gz
# Default DejaGnu configuration
DG_TOOLNAME = gcc
DG_TARGET_HOSTNAME = 127.0.0.1
DG_TARGET_USERNAME = root
DG_TARGET = powerpc-unknown-linux-gnu
DG_SRC_DIR = ${TOPDIR}/gcc-${DG_GCC_VERSION}/gcc/testsuite
DG_TOOLCHAIN_DIR = ${TOPDIR}/../../bin
# Default tests
DG_C_TESTS =

View File

@ -14,22 +14,16 @@ do_test_suite_gcc_build() {
CT_DoStep INFO "Installing GCC test suite"
CT_DoExecLog ALL mkdir -p "${CT_TEST_SUITE_DIR}/gcc-test-suite/gcc-${CT_CC_VERSION}/gcc"
CT_DoExecLog ALL cp "${CT_TOP_DIR}/contrib/gcc-test-suite/Makefile" \
"${CT_TEST_SUITE_DIR}/gcc-test-suite"
CT_DoExecLog ALL cp "${CT_TOP_DIR}/contrib/gcc-test-suite/default.cfg" \
"${CT_TEST_SUITE_DIR}/gcc-test-suite"
CT_DoExecLog ALL cp "${CT_TOP_DIR}/contrib/gcc-test-suite/README" \
"${CT_TEST_SUITE_DIR}/gcc-test-suite"
CT_DoExecLog ALL cp -r "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/testsuite" \
"${CT_TEST_SUITE_DIR}/gcc-test-suite/gcc-${CT_CC_VERSION}/gcc"
sed "s/DG_GCC_VERSION .*/DG_GCC_VERSION = ${CT_CC_VERSION}/g" \
${CT_TEST_SUITE_DIR}/gcc-test-suite/default.cfg > \
${CT_TEST_SUITE_DIR}/gcc-test-suite/default.cfg.tmp
sed "s/DG_TARGET .*/DG_TARGET = ${CT_TARGET}/g" \
${CT_TEST_SUITE_DIR}/gcc-test-suite/default.cfg.tmp > \
${CT_TEST_SUITE_DIR}/gcc-test-suite/default.cfg
CT_DoExecLog ALL rm -f "${CT_TEST_SUITE_DIR}/gcc-test-suite/default.cfg.tmp"
CT_DoExecLog ALL mkdir -p "${CT_TEST_SUITE_DIR}/gcc"
CT_DoExecLog ALL cp -a "${CT_LIB_DIR}/contrib/gcc-test-suite/default.cfg" \
"${CT_LIB_DIR}/contrib/gcc-test-suite/Makefile" \
"${CT_LIB_DIR}/contrib/gcc-test-suite/README" \
"${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/testsuite" \
"${CT_TEST_SUITE_DIR}/gcc"
CT_DoExecLog ALL sed -i -r -e "s/@@DG_TARGET@@/${CT_TARGET}/g;" \
"${CT_TEST_SUITE_DIR}/gcc/Makefile"
CT_EndStep
}

View File

@ -602,6 +602,6 @@ exec >/dev/null 2>&1
[ "${CT_LOG_FILE_COMPRESS}" = y ] && bzip2 -9 "${CT_LOG_FILE}"
[ "${CT_INSTALL_DIR_RO}" = "y" ] && chmod -R a-w "${CT_INSTALL_DIR}"
[ "${CT_TEST_SUITE}" = "y" ] && chmod -R a+w "${CT_TEST_SUITE_DIR}"
[ "${CT_TEST_SUITE}" = "y" ] && chmod -R u+w "${CT_TEST_SUITE_DIR}"
trap - EXIT