From 97a48209e2798547fb46c210782a55859d11b5fe Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 27 Apr 2018 06:18:41 +0200 Subject: tests: Move rtems-test-check.py Remove shell script variant. --- tools/build/rtems-test-check | 203 ---------------------------------------- tools/build/rtems-test-check-py | 160 ------------------------------- 2 files changed, 363 deletions(-) delete mode 100755 tools/build/rtems-test-check delete mode 100755 tools/build/rtems-test-check-py (limited to 'tools/build') diff --git a/tools/build/rtems-test-check b/tools/build/rtems-test-check deleted file mode 100755 index 988556d59e..0000000000 --- a/tools/build/rtems-test-check +++ /dev/null @@ -1,203 +0,0 @@ -#! /bin/sh -# -# Copyright 2014, 2016, 2017 Chris Johns -# All rights reserved -# - -# -# usage: rtems-test-check -# - -if test $# -lt 4; then - echo "error: invalid command line" >&2 - echo "INVALID-TEST-DATA" - exit 2 -fi - -mode="$1" -shift -testdata="$1" -shift -includepath="$1" -shift -bsp="$1" -shift -tests="$*" - -test_count=0 -for t in ${tests}; -do - test_count=$(expr ${test_count} + 1) -done - -case ${mode} in - exclude) - if test -f $testdata; then - output="" - else - output="${tests}" - fi - ;; - flags) - if [ $test_count != 1 ]; then - echo "error: test count not 1 for ${mode}" 1>&2 - exit 1 - fi - output="" - ;; - *) - echo "error: invalid mode" 1>&2 - echo "INVALID-TEST-DATA" - exit 1 - ;; -esac - -# -# Read the common settings first. -# -if [ -f $includepath/testdata/rtems.tcfg ]; then - testdata="$includepath/testdata/rtems.tcfg $testdata" -fi - -# -# If there is no testdata all tests are valid and must pass. -# - -if [ ! -z "$testdata" ]; then - excluded_tests="" - expected_fails="" - user_inputs="" - indeterminates="" - benchmarks="" - while [ ! -z "$testdata" ]; - do - for td in $testdata; - do - if [ ! -f $td ]; then - continue - fi - ntd="" - exec 3<& 0 - exec 0<$td - while read line - do - line=$(echo $line | sed -e 's/#.*$//' -e '/^$/d') - if [ ! -z "$line" ]; then - state=$(echo $line | sed -e "s/:.*//g") - case $state in - include) - inf=$(echo $line | sed -e 's/include://g;s/[[:blank:]]//g') - if test -f $includepath/$inf; then - ntd="$includepath/$inf $ntd" - fi - ;; - exclude) - line=$(echo $line | sed -e 's/exclude://g;s/[[:blank:]]//g') - excluded_tests="${excluded_tests} $line" - ;; - expected-fail) - line=$(echo $line | sed -e 's/expected-fail://g;s/[[:blank:]]//g') - expected_fails="${expected_fails} $line" - ;; - user-input) - line=$(echo $line | sed -e 's/user-input://g;s/[[:blank:]]//g') - user_inputs="${user_inputs} $line" - ;; - indeterminate) - line=$(echo $line | sed -e 's/indeterminate://g;s/[[:blank:]]//g') - indeterminates="${indeterminates} $line" - ;; - benchmark) - line=$(echo $line | sed -e 's/benchmark://g;s/[[:blank:]]//g') - benchmarks="${benchmarks} $line" - ;; - *) - echo "error: invalid test state: $state in $td" 1>&2 - echo "INVALID-TEST-DATA" - exit 1 - ;; - esac - fi - done - done - testdata=$ntd - done - - for t in ${tests}; - do - case ${mode} in - exclude) - allow="yes" - for dt in ${excluded_tests}; - do - if test ${t} = ${dt}; then - allow="no" - fi - done - if test ${allow} = yes; then - output="${output} ${t}" - fi - ;; - flags) - allow="yes" - for et in ${excluded_tests}; - do - if test ${t} = ${et}; then - allow="no" - fi - done - if test ${allow} = yes; then - allow="no" - for et in ${expected_fails}; - do - if test ${t} = ${et}; then - allow="yes" - fi - done - if test ${allow} = yes; then - output="-DTEST_STATE_EXPECTED_FAIL=1" - fi - allow="no" - for ut in ${user_inputs}; - do - if test ${t} = ${ut}; then - allow="yes" - fi - done - if test ${allow} = yes; then - output="-DTEST_STATE_USER_INPUT=1" - fi - allow="no" - for it in ${indeterminates}; - do - if test ${t} = ${it}; then - allow="yes" - fi - done - if test ${allow} = yes; then - output="${output} -DTEST_STATE_INDETERMINATE=1" - fi - allow="no" - for bt in ${benchmarks}; - do - if test ${t} = ${bt}; then - allow="yes" - fi - done - if test ${allow} = yes; then - output="${output} -DTEST_STATE_BENCHMARK=1" - fi - fi - ;; - *) - echo "error: invalid mode" 1>&2 - echo "INVALID-TEST-DATA" - exit 1 - ;; - esac - done -fi - -echo ${output} - -exit 0 diff --git a/tools/build/rtems-test-check-py b/tools/build/rtems-test-check-py deleted file mode 100755 index 847aab05ae..0000000000 --- a/tools/build/rtems-test-check-py +++ /dev/null @@ -1,160 +0,0 @@ -#! /usr/bin/env python -# -# Copyright 2017 Chris Johns -# All rights reserved -# - -# -# Python version the rtems-test-check script. -# - -from __future__ import print_function -import os.path -import sys - -def eprint(*args, **kwargs): - print(*args, file=sys.stderr, **kwargs) - -# -# Search the include paths for a file. -# -def find_testdata(paths, name): - for p in paths: - fn = os.path.join(p, name) - if os.path.exists(fn): - return fn - return None - -# -# Arguments. Keep it simple. -# -if len(sys.argv) < 4: - eprint('error: invalid command line') - print('INVALID-TEST-DATA') - sys.exit(2) - -verbose = False -args = 0 - -if sys.argv[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:] - -if verbose: - eprint('cmd: %s' % (' '.join(sys.argv))) - -# -# Handle the modes. -# -if mode == 'exclude': - pass -elif mode == 'flags': - if len(tests) != 1: - eprint('error: test count not 1 for mode: %s' % (mode)) - print('INVALID-TEST-DATA') - sys.exit(1) -else: - eprint('error: invalid mode: %s' % (mode)) - print('INVALID-TEST-DATA') - sys.exit(1) - -# -# Common RTEMS testsuite configuration. Load first. -# -rtems_testdata = find_testdata(includepaths, os.path.join('testdata', 'rtems.tcfg')) -if rtems_testdata is not None: - testconfig.insert(0, rtems_testdata) - -states = ['exclude', - 'expected-fail', - 'user-input', - 'indeterminate', - 'benchmark'] -defines = { 'expected-fail' : '-DTEST_STATE_EXPECTED_FAIL=1', - 'user-input' : '-DTEST_STATE_USER_INPUT=1', - 'indeterminate' : '-DTEST_STATE_INDETERMINATE=1', - 'benchmark' : '-DTEST_STATE_BENCHMARK=1' } -output = [] -testdata = {} - -if verbose: - eprint('mode: %s' % (mode)) - eprint('testconfig: %r' % (testconfig)) - eprint('testconfig: %s' % (', '.join([x for x in testconfig if x is not None]))) - eprint('includepaths: %s' % (includepaths)) - eprint('bsp: %s' % (bsp)) - eprint('tests: %s' % (', '.join(tests))) - -def clean(line): - line = line[0:-1] - b = line.find('#') - if b >= 0: - line = line[1:b] - return line.strip() - -# -# Load the test data. -# -while len(testconfig): - tc = testconfig[0] - testconfig.remove(tc) - if tc is None: - continue - if verbose: - eprint('reading: %s' % (tc)) - if not os.path.exists(tc): - if verbose: - eprint('%s: not found' % (tc)) - continue - with open(tc) as f: - tdata = [clean(l) for l in f.readlines()] - lc = 0 - for line in tdata: - lc += 1 - ls = [s.strip() for s in line.split(':')] - if len(line) == 0: - continue - if verbose: - eprint('%4d: %s' % (lc, line)) - if len(ls) != 2: - eprint('error: syntax error: %s:%d' % (tc, lc)) - print('INVALID-TEST-DATA') - sys.exit(1) - state = ls[0] - test = ls[1] - if state == 'include': - td = find_testdata(includepaths, test) - if td is None: - eprint('error: include not found: %s:%d' % (tc, lc)) - print('INVALID-TEST-DATA') - testconfig.insert(0, td) - if verbose: - eprint('include: %s' % (', '.join(testconfig))) - elif state in states: - if state not in testdata: - testdata[state] = [test] - else: - testdata[state] += [test] - else: - eprint('error: invalid test state: %s in %s:%d' % (state, tc, lc)) - print('INVALID-TEST-DATA') - sys.exit(1) - -for test in tests: - if mode == 'exclude': - if 'exclude' not in testdata or test not in testdata['exclude']: - output += [test] - elif mode == 'flags': - for state in states: - if state != 'exclude' and state in testdata and test in testdata[state]: - output += [defines[state]] - -print(' '.join(sorted(set(output)))) - -sys.exit(0) -- cgit v1.2.3