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

chrisj at rtems.org chrisj at rtems.org
Wed Nov 7 05:10:46 UTC 2018


From: Chris Johns <chrisj at rtems.org>

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(-)
 create mode 100755 testsuites/rtems-test-check

diff --git a/testsuites/aclocal/rtems-test-check.m4 b/testsuites/aclocal/rtems-test-check.m4
index a46c4abb20..36a917b3e8 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 0000000000..e7fd08dde5
--- /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 847aab05ae..0a4970a4ab 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.
-- 
2.14.1



More information about the devel mailing list