1#! /bin/bash 2# SPDX-License-Identifier: BSD-3-Clause 3 4DIR=`dirname $0` 5 6regular=0 7inline_on=0 8fallback_on=0 9legacy_only=0 10fallback_val="lookaside-none" 11crypto_prim="" 12multi_seg_val="" 13while getopts ":iflsrc" opt 14do 15 case $opt in 16 i) 17 inline_on=1 18 ;; 19 f) 20 fallback_on=1 21 ;; 22 l) 23 legacy_only=1 24 ;; 25 s) 26 multi_seg_val="SGW_MULTI_SEG=128" 27 ;; 28 r) 29 regular=1 30 ;; 31 c) 32 crypto_prim="CRYPTO_PRIM_TYPE=cpu-crypto" 33 fallback_val="cpu-crypto" 34 ;; 35 esac 36done 37shift $((OPTIND -1)) 38 39PROTO=$1 40MODE=$2 41 42# test scenarios to set up for regular test 43TEST_MODES_REGULAR="legacy \ 44library \ 45library_esn \ 46library_esn_atom" 47 48# test scenarios to set up for inline test 49TEST_MODES_INLINE="legacy_inline \ 50library_inline" 51 52# test scenarios to set up for fallback test 53TEST_MODES_FALLBACK="library_fallback" 54 55# env variables to export for specific test scenarios 56default="SGW_MODE=legacy SGW_ESN=esn-off SGW_ATOM=atom-off SGW_CRYPTO=regular \ 57SGW_CRYPTO_FLBK= ${multi_seg_val}" 58legacy="${default} CRYPTO_PRIM_TYPE=" 59library="${default} SGW_MODE=library ${crypto_prim}" 60library_esn="${default} SGW_MODE=library SGW_ESN=esn-on ${crypto_prim}" 61library_esn_atom="${default} SGW_MODE=library SGW_ESN=esn-on SGW_ATOM=atom-on \ 62${crypto_prim}" 63legacy_inline="${default} SGW_CRYPTO=inline CRYPTO_PRIM_TYPE=" 64library_inline="${default} SGW_MODE=library SGW_CRYPTO=inline CRYPTO_PRIM_TYPE=" 65library_fallback="${default} SGW_MODE=library SGW_CRYPTO=inline \ 66SGW_CRYPTO_FLBK=${fallback_val} SGW_MULTI_SEG=128 CRYPTO_PRIM_TYPE=" 67 68# export needed env variables and run tests 69if [[ ${regular} -eq 1 ]]; then 70 for i in ${TEST_MODES_REGULAR}; do 71 if [[ ${legacy_only} -eq 1 && "${i}" != *legacy* ]]; then 72 continue 73 elif [[ ${legacy_only} -eq 0 && "${i}" == *legacy* ]]; then 74 continue 75 fi 76 for x in ${!i}; do 77 export ${x} 78 done 79 80 /bin/bash ${DIR}/linux_test.sh ${PROTO} ${MODE} 81 st=$? 82 if [[ ${st} -ne 0 ]]; then 83 exit ${st} 84 fi 85 done 86elif [[ ${inline_on} -eq 1 || ${fallback_on} -eq 1 ]]; then 87 if [[ ${inline_on} -eq 1 ]]; then 88 for i in ${TEST_MODES_INLINE}; do 89 if [[ ${legacy_only} -eq 1 && "${i}" != *legacy* ]] 90 then 91 continue 92 elif [[ ${legacy_only} -eq 0 && "${i}" == *legacy* ]] 93 then 94 continue 95 fi 96 for x in ${!i}; do 97 export ${x} 98 done 99 100 /bin/bash ${DIR}/linux_test.sh ${PROTO} ${MODE} 101 st=$? 102 if [[ ${st} -ne 0 ]]; then 103 exit ${st} 104 fi 105 done 106 fi 107 if [[ ${fallback_on} -eq 1 ]]; then 108 for i in ${TEST_MODES_FALLBACK}; do 109 for x in ${!i}; do 110 export ${x} 111 done 112 113 /bin/bash ${DIR}/linux_test.sh ${PROTO} ${MODE} 114 st=$? 115 if [[ ${st} -ne 0 ]]; then 116 exit ${st} 117 fi 118 done 119 fi 120fi 121exit 0 122