Harald Welte | 4d77229 | 2017-08-19 15:27:10 +0200 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | # Helper script to starte a TITAN-generated test suite, supporting |
| 4 | # dynamically linked suites to ensure JUNIT generation is possible. |
| 5 | |
Oliver Smith | b15f750 | 2020-05-28 15:52:09 +0200 | [diff] [blame] | 6 | # Environment variables: |
| 7 | # * TTCN3_BIN_DIR: override where to look for ttcn3_start |
| 8 | |
Harald Welte | 0cdf071 | 2019-06-19 18:15:38 +0200 | [diff] [blame] | 9 | # Copyright 2017 Harald Welte |
| 10 | # Copyright 2018 sysmocom - s.f.m.c. GmbH |
| 11 | # |
| 12 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 13 | # you may not use this file except in compliance with the License. |
| 14 | # You may obtain a copy of the License at |
| 15 | # |
| 16 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 17 | # |
| 18 | # Unless required by applicable law or agreed to in writing, software |
| 19 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 20 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 21 | # See the License for the specific language governing permissions and |
| 22 | # limitations under the License. |
| 23 | |
Harald Welte | 4d77229 | 2017-08-19 15:27:10 +0200 | [diff] [blame] | 24 | if [ $# -lt 1 ]; then |
| 25 | echo "You have to specify the test suite name" |
| 26 | echo "Syntax example: $0 osmo-ttcn3-hacks/ggsn_tests/GGSN_Test ./GGSN_Test.cfg" |
| 27 | exit 1 |
| 28 | fi |
| 29 | |
| 30 | SUITE=$1 |
Neels Hofmeyr | 3cf797d | 2018-04-05 16:56:38 +0200 | [diff] [blame] | 31 | SUITE_DIR="$(dirname "$SUITE")" |
| 32 | SUITE_NAME="$(basename "$SUITE")" |
| 33 | CFG="$SUITE_NAME.cfg" |
Harald Welte | 4d77229 | 2017-08-19 15:27:10 +0200 | [diff] [blame] | 34 | if [ $# -gt 1 ]; then |
| 35 | CFG=$2 |
| 36 | fi |
| 37 | |
Daniel Willmann | 47fb0f4 | 2018-02-02 20:09:00 +0100 | [diff] [blame] | 38 | if [ $# -gt 2 ]; then |
| 39 | TEST=$3 |
| 40 | fi |
| 41 | |
Harald Welte | 97ae972 | 2019-07-16 19:29:49 +0900 | [diff] [blame] | 42 | # this is an example for using a non-installed custom (e.g. git master) TITAN |
| 43 | #TTCN3_DIR="/home/laforge/projects/git/titan/titan.core/Install" |
| 44 | #export TTCN3_DIR |
| 45 | #TITAN_LIBRARY_PATH="$TTCN3_DIR/lib" |
| 46 | #TTCN3_BIN_DIR="$TTCN3_DIR/bin" |
| 47 | |
| 48 | # below is for the debian packages |
Oliver Smith | b15f750 | 2020-05-28 15:52:09 +0200 | [diff] [blame] | 49 | TTCN3_BIN_DIR="${TTCN3_BIN_DIR:-/usr/bin}" |
Vadim Yanitskiy | b399281 | 2019-06-04 22:11:04 +0700 | [diff] [blame] | 50 | TITAN_LIBRARY_PATH="/usr/lib/titan:/usr/ttcn3/lib" |
Harald Welte | 97ae972 | 2019-07-16 19:29:49 +0900 | [diff] [blame] | 51 | LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SUITE_DIR:$TITAN_LIBRARY_PATH" "$TTCN3_BIN_DIR/ttcn3_start" $SUITE $CFG $TEST |
Neels Hofmeyr | 3cf797d | 2018-04-05 16:56:38 +0200 | [diff] [blame] | 52 | |
Neels Hofmeyr | 1fd6679 | 2018-04-11 14:53:28 +0200 | [diff] [blame] | 53 | expected="$SUITE_DIR/expected-results.xml" |
Neels Hofmeyr | 3cf797d | 2018-04-05 16:56:38 +0200 | [diff] [blame] | 54 | if [ ! -f "$expected" ]; then |
| 55 | echo "No expected results found, not comparing outcome. ($expected)" |
| 56 | exit 0 |
| 57 | fi |
| 58 | |
| 59 | # find the most recent junit output log here |
| 60 | last_log="$(ls -1tr junit*.log | tail -n 1)" |
| 61 | if [ ! -f "$last_log" ]; then |
| 62 | echo "No junit log found." |
| 63 | exit 1 |
| 64 | fi |
| 65 | |
Neels Hofmeyr | b26196b | 2019-10-22 01:54:43 +0200 | [diff] [blame] | 66 | compare="$SUITE_DIR/../compare-results.py" |
Neels Hofmeyr | 3cf797d | 2018-04-05 16:56:38 +0200 | [diff] [blame] | 67 | if [ ! -x "$compare" ]; then |
| 68 | echo "ERROR: cannot find $compare" |
| 69 | exit 1 |
| 70 | fi |
| 71 | |
Neels Hofmeyr | 3cf797d | 2018-04-05 16:56:38 +0200 | [diff] [blame] | 72 | "$compare" "$expected" "$last_log" $OSMO_TTCN3_COMPARE_ARGS |