X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Fapp_test%2Frun_all.ksh;h=f8624dbc07899ca6179a91dabb770fd72761bdb0;hb=71df2a2b09d072090c29713d05a49b5670b11053;hp=69d3d794168446fc5e5b1ba991f859de6c01c3fc;hpb=77406e61f2158f5b88b7a9f6e3e86d8f62c8f71a;p=ric-plt%2Flib%2Frmr.git diff --git a/test/app_test/run_all.ksh b/test/app_test/run_all.ksh index 69d3d79..f8624db 100644 --- a/test/app_test/run_all.ksh +++ b/test/app_test/run_all.ksh @@ -1,8 +1,8 @@ #!/usr/bin/env ksh # vim: ts=4 sw=4 noet : #================================================================================== -# Copyright (c) 2019 Nokia -# Copyright (c) 2018-2019 AT&T Intellectual Property. +# Copyright (c) 2019-2021 Nokia +# Copyright (c) 2018-2021 AT&T Intellectual Property. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,18 +18,38 @@ #================================================================================== # -# run all of the tests, building rmr before the first one if -B is on the command line. +# Mnemonic: run_all.ksh (bash compatable) +# Abstract: This script will drive all of the application tests and ensure +# that the environment is set up as follows: +# +# Any deb packages which exist in BUILD_PATH are 'installed' +# into a /tmp directory so that application builds can reference +# them. +# +# References are set up to find the NNG library files in the +# BUILD_PATH directory. +# +# The BUILD_PATH environment variable should be set, and if not the +# two directories ../.build and ../build are checked for and used. +# If the var is not set, and nether of these directories exists, +# the tests will not be executed. +# +# At the moment, it assumes a deb based system for tests. +# +# Author: E. Scott Daniels +# Date: 2019 +# ----------------------------------------------------------------------------------- function run_test { if [[ -n $capture_file ]] then - if ! ksh $@ >>$capture_file 2>&1 + if ! $shell $@ >>$capture_file 2>&1 then echo "[FAIL] test failed; see $capture_file" (( errors++ )) fi else - if ! ksh $@ + if ! $shell $@ then (( errors++ )) fi @@ -38,13 +58,79 @@ function run_test { build="" errors=0 +si_flag="" # eventually we'll default to -S to run SI tests over NNG tests + +src_root="../.." +if [[ -z $BUILD_PATH ]] # if not explicitly set, assume one of our standard spots +then + if [[ -d $src_root/.build ]] # look for build directory in expected places + then # run scripts will honour this + export BUILD_PATH=$src_root/.build + else + if [[ -d $src_root/build ]] + then + export BUILD_PATH=$src_root/build + else + echo "[ERR] BUILD_PATH not set and no logical build directory exists to use" + echo "[INFO] tried: $src_root/build and $src_root/.build" + exit 1 + fi + fi + echo "[INFO] using discovered build directory: $BUILD_PATH" +else + echo "[INFO] using externally supplied build directory: $BUILD_PATH" +fi + +# when dpkg is present, unpack the debs in build so we can reference them. When not +# we assume that the env vars are set properly. +# +if which dpkg >/dev/null 2>&1 +then + goober_dir=/tmp/PID$$.goober # private playpen for unpacking deb + rm -fr $goober_dir # this can fail and we don't care + if ! mkdir -p $goober_dir # but we care if this does + then + echo "[ERR] run_all: cannot set up working directory for lib/header files: $goober_dir" + exit 1 + fi + + for d in $BUILD_PATH/*.deb + do + echo "[INFO] run_all: unpacking $d" + dpkg -x $d ${goober_dir} + done + + find ${goober_dir} + export C_INCLUDE_PATH=$BUILD_PATH/include:${goober_dir}/usr/local/include:$C_INCLUDE_PATH + export LIBRARY_PATH=$BUILD_PATH:$BUILD_PATH/.xbuild/lib:${goober_dir}/usr/local/lib:$LD_LIBRARY_PATH + export LD_LIBRARY_PATH=$LIBRARY_PATH +fi + + +if whence ksh >/dev/null 2>&1 +then + shell=ksh +else + shell=bash +fi + +verbose=0 +purge=1 while [[ $1 == "-"* ]] do case $1 in - -B) build="-B";; + -B) build="-b";; # build RMR without pulling -e) capture_file=$2; >$capture_file; shift;; -i) installed="-i";; + -N) si_flag="";; # turn on NNG tests (off si) + -P) build="-B";; # build RMR with a pull first + -p) purge=0;; # don't purge binaries to ensure rebuild happens + -S) si_flag="-S";; # turn on si based tests + -s) shell=$2; shift;; + -v) verbose=1;; + + -\?) echo "usage: $0 [-B|-P] [-e err_file] [-i] [-N|-S] [-p] [-s shell] [-v]";; *) echo "'$1' is not a recognised option and is ignored";; esac @@ -52,23 +138,43 @@ do shift done +if (( verbose )) +then + env | grep PATH + if [[ -n $goober_dir ]] + then + find $goober_dir + fi +fi + +export SHELL=$shell + +if (( purge )) +then + rm -f sender receiver +fi + echo "----- app --------------------" -run_test run_app_test.ksh -v $installed $build +if which ip >/dev/null 2>&1 # ip command rquired for the app test; skip if not found +then + run_test run_app_test.ksh $si_flag -v $installed $build + build="" +fi echo "----- multi ------------------" -run_test run_multi_test.ksh +run_test run_multi_test.ksh $si_flag $build echo "----- round robin -----------" -run_test run_rr_test.ksh +run_test run_rr_test.ksh $si_flag echo "----- rts -------------------" -run_test run_rts_test.ksh -s 5 -d 100 +run_test run_rts_test.ksh $si_flag -s 5 -d 100 echo "----- extended payload nocopy no clone------" -run_test run_exrts_test.ksh -d 10 -n 1000 +run_test run_exrts_test.ksh $si_flag -d 10 -n 1000 echo "----- extended payload copy clone------" -run_test run_exrts_test.ksh -d 10 -n 1000 -c 11 +run_test run_exrts_test.ksh $si_flag -d 10 -n 1000 -c 11 if (( errors == 0 )) then @@ -77,4 +183,6 @@ else echo "[FAIL] one or more application to application tests failed" fi + +fm -fr goober_dir exit $(( !! errors ))