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