testsuite: Add python verison support to rtems-test-check.py

Closes #3579
This commit is contained in:
Chris Johns
2018-11-07 16:09:07 +11:00
parent 947b679f74
commit 06ced255e7
3 changed files with 95 additions and 11 deletions

View File

@@ -5,7 +5,7 @@ AC_DEFUN([RTEMS_TEST_CHECK],
[AC_REQUIRE([RTEMS_ENV_RTEMSBSP])
AC_REQUIRE([RTEMS_SOURCE_TOP])
AC_MSG_CHECKING([${RTEMS_CPU}/${RTEMS_BSP} $1 test])
tcheck="${RTEMS_SOURCE_ROOT}/testsuites/rtems-test-check.py"
tcheck="${RTEMS_SOURCE_ROOT}/testsuites/rtems-test-check"
tdata="${RTEMS_BSP}-testsuite.tcfg"
tincludes="${RTEMS_SOURCE_ROOT}/bsps/${RTEMS_CPU}/${RTEMS_BSP_FAMILY}/config:${RTEMS_SOURCE_ROOT}/testsuites"
if test -f $tcheck; then

57
testsuites/rtems-test-check Executable file
View File

@@ -0,0 +1,57 @@
#! /bin/sh
#
# RTEMS Tools Project (http://www.rtems.org/)
# Copyright 2018 Chris Johns (chrisj@rtems.org)
# All rights reserved.
#
# This file is part of the RTEMS Tools package in 'rtems-tools'.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
#
# This script wraps python finding a suitable version to use.
#
base=$(dirname $0)
PYTHON_CMD=${base}/rtems-test-check.py
set -e
if test ! -f $PYTHON_CMD; then
echo "error: RTEMS Testsuite python command not found: $PYTHON_CMD"
exit 5
fi
for py in python2 python3 python
do
set +e
py_cmd=$(command -v $py)
set -e
if test -n "$RTEMS_PYTHON_OVERRIDE"; then
if test "$RTEMS_PYTHON_OVERRIDE" != "$py"; then
py_cmd=""
fi
fi
if test -n "$py_cmd"; then
exec $py_cmd $PYTHON_CMD $0 $*
fi
done
echo "error: RTEMS Testsuite no valid python found"
exit 5

View File

@@ -1,7 +1,32 @@
#! /usr/bin/env python
#
# Copyright 2017 Chris Johns <chrisj@rtems.org>
# All rights reserved
# Copyright 2018 Chris Johns (chrisj@rtems.org)
# All rights reserved.
#
# This file is part of the RTEMS Tools package in 'rtems-tools'.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
#
#
@@ -9,6 +34,7 @@
#
from __future__ import print_function
import os.path
import sys
@@ -28,7 +54,8 @@ def find_testdata(paths, name):
#
# Arguments. Keep it simple.
#
if len(sys.argv) < 4:
sys_args = sys.argv[1:]
if len(sys_args) < 4:
eprint('error: invalid command line')
print('INVALID-TEST-DATA')
sys.exit(2)
@@ -36,18 +63,18 @@ if len(sys.argv) < 4:
verbose = False
args = 0
if sys.argv[1] == '-v':
if sys_args[1] == '-v':
verbose = True
args = 1
mode = sys.argv[args + 1]
bsp = sys.argv[args + 2]
includepaths = sys.argv[args + 4].split(':')
testconfig = [find_testdata(includepaths, sys.argv[args + 3])]
tests = sys.argv[args + 5:]
mode = sys_args[args + 1]
bsp = sys_args[args + 2]
includepaths = sys_args[args + 4].split(':')
testconfig = [find_testdata(includepaths, sys_args[args + 3])]
tests = sys_args[args + 5:]
if verbose:
eprint('cmd: %s' % (' '.join(sys.argv)))
eprint('cmd: %s' % (' '.join(sys_args)))
#
# Handle the modes.