#!/bin/bash # Run all the different permutations of all the tests. # This helps ensure that nothing gets broken. _run() { # 1. VARIATIONS: regular (t), canonical (c), IO R/W (i), # binc-nosymbols (n), struct2array (s), intern string (e), # json-indent (d), circular (l) # 2. MODE: reflection (r), external (x), codecgen (g), unsafe (u), notfastpath (f) # 3. OPTIONS: verbose (v), reset (z), must (m), # # Use combinations of mode to get exactly what you want, # and then pass the variations you need. ztags="" zargs="" local OPTIND OPTIND=1 # "_xurtcinsvgzmefdl" === "_cdefgilmnrtsuvxz" while getopts "_cdefgilmnrtsuvwxz" flag do case "x$flag" in 'xr') ;; 'xf') ztags="$ztags notfastpath" ;; 'xg') ztags="$ztags codecgen" ;; 'xx') ztags="$ztags x" ;; 'xu') ztags="$ztags unsafe" ;; 'xv') zargs="$zargs -tv" ;; 'xz') zargs="$zargs -tr" ;; 'xm') zargs="$zargs -tm" ;; 'xl') zargs="$zargs -tl" ;; 'xw') zargs="$zargs -tx=10" ;; *) ;; esac done # shift $((OPTIND-1)) printf '............. TAGS: %s .............\n' "$ztags" # echo ">>>>>>> TAGS: $ztags" OPTIND=1 while getopts "_cdefgilmnrtsuvwxz" flag do case "x$flag" in 'xt') printf ">>>>>>> REGULAR : "; go test "-tags=$ztags" $zargs ; sleep 2 ;; 'xc') printf ">>>>>>> CANONICAL : "; go test "-tags=$ztags" $zargs -tc; sleep 2 ;; 'xi') printf ">>>>>>> I/O : "; go test "-tags=$ztags" $zargs -ti; sleep 2 ;; 'xn') printf ">>>>>>> NO_SYMBOLS : "; go test "-tags=$ztags" -run=Binc $zargs -tn; sleep 2 ;; 'xs') printf ">>>>>>> TO_ARRAY : "; go test "-tags=$ztags" $zargs -ts; sleep 2 ;; 'xe') printf ">>>>>>> INTERN : "; go test "-tags=$ztags" $zargs -te; sleep 2 ;; 'xd') printf ">>>>>>> INDENT : "; go test "-tags=$ztags" -run=JsonCodecsTable -td=-1 $zargs; go test "-tags=$ztags" -run=JsonCodecsTable -td=8 $zargs; sleep 2 ;; *) ;; esac done shift $((OPTIND-1)) OPTIND=1 } # echo ">>>>>>> RUNNING VARIATIONS OF TESTS" if [[ "x$@" = "x" || "x$@" = "x-A" ]]; then # All: r, x, g, gu _run "-_tcinsed_ml" # regular _run "-_tcinsed_ml_z" # regular with reset _run "-w_tcinsed_ml" # regular with max init len _run "-_tcinsed_ml_f" # regular with no fastpath (notfastpath) _run "-x_tcinsed_ml" # external _run "-gx_tcinsed_ml" # codecgen: requires external _run "-gxu_tcinsed_ml" # codecgen + unsafe elif [[ "x$@" = "x-Z" ]]; then # Regular _run "-_tcinsed_ml" # regular _run "-_tcinsed_ml_z" # regular with reset elif [[ "x$@" = "x-F" ]]; then # regular with notfastpath _run "-_tcinsed_ml_f" # regular _run "-_tcinsed_ml_zf" # regular with reset elif [[ "x$@" = "x-C" ]]; then # codecgen _run "-gx_tcinsed_ml" # codecgen: requires external _run "-gxu_tcinsed_ml" # codecgen + unsafe _run "-gxuw_tcinsed_ml" # codecgen + unsafe + maxinitlen elif [[ "x$@" = "x-X" ]]; then # external _run "-x_tcinsed_ml" # external elif [[ "x$@" = "x-h" || "x$@" = "x-?" ]]; then cat <