[rtems commit] testsuite: Add python verison support to rtems-test-check.py
Chris Johns
chrisj at rtems.org
Thu Nov 8 23:20:21 UTC 2018
Module: rtems
Branch: master
Commit: 06ced255e7beb755a94710a53e888c8557453440
Changeset: http://git.rtems.org/rtems/commit/?id=06ced255e7beb755a94710a53e888c8557453440
Author: Chris Johns <chrisj at rtems.org>
Date: Wed Nov 7 16:09:07 2018 +1100
testsuite: Add python verison support to rtems-test-check.py
Closes #3579
---
testsuites/aclocal/rtems-test-check.m4 | 2 +-
testsuites/rtems-test-check | 57 ++++++++++++++++++++++++++++++++++
testsuites/rtems-test-check.py | 47 ++++++++++++++++++++++------
3 files changed, 95 insertions(+), 11 deletions(-)
diff --git a/testsuites/aclocal/rtems-test-check.m4 b/testsuites/aclocal/rtems-test-check.m4
index a46c4ab..36a917b 100644
--- a/testsuites/aclocal/rtems-test-check.m4
+++ b/testsuites/aclocal/rtems-test-check.m4
@@ -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
diff --git a/testsuites/rtems-test-check b/testsuites/rtems-test-check
new file mode 100755
index 0000000..e7fd08d
--- /dev/null
+++ b/testsuites/rtems-test-check
@@ -0,0 +1,57 @@
+#! /bin/sh
+#
+# RTEMS Tools Project (http://www.rtems.org/)
+# Copyright 2018 Chris Johns (chrisj at 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
diff --git a/testsuites/rtems-test-check.py b/testsuites/rtems-test-check.py
index 847aab0..0a4970a 100755
--- a/testsuites/rtems-test-check.py
+++ b/testsuites/rtems-test-check.py
@@ -1,7 +1,32 @@
#! /usr/bin/env python
#
-# Copyright 2017 Chris Johns <chrisj at rtems.org>
-# All rights reserved
+# Copyright 2018 Chris Johns (chrisj at 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.
More information about the vc
mailing list