Skip to content

Commit 07bc4a3

Browse files
phyverarthur tartempion
authored andcommitted
pass arguments to _gsh_check function
1 parent e978c7a commit 07bc4a3

5 files changed

Lines changed: 26 additions & 23 deletions

File tree

lib/gsh.sh

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ _gsh_check() {
376376

377377
local MISSION_DIR="$(missiondir "$MISSION_NB")"
378378

379-
mission_source "$MISSION_DIR/check.sh"
379+
mission_source "$MISSION_DIR/check.sh" "$@"
380380
local exit_status=$?
381381

382382
if [ "$exit_status" -eq 0 ]
@@ -557,16 +557,16 @@ _gsh_assert_check() {
557557
local MISSION_NB="$(_gsh_pcm)"
558558

559559
local expected=$1
560+
shift
560561
if [ "$expected" != "true" ] && [ "$expected" != "false" ]
561562
then
562563
echo "$(eval_gettext "Error: _gsh_assert_check only accept 'true' and 'false' as argument.")" >&2
563564
return 1
564565
fi
565-
local msg=$3
566566

567567
local MISSION_DIR="$(missiondir "$MISSION_NB")"
568568

569-
mission_source "$MISSION_DIR/check.sh"
569+
mission_source "$MISSION_DIR/check.sh" "$@"
570570
local exit_status=$?
571571

572572
local nb_tests=$(cat "$GSH_TMP/nb_tests")
@@ -579,13 +579,11 @@ _gsh_assert_check() {
579579
nb_failed_tests=$((nb_failed_tests+1))
580580
echo "$nb_failed_tests" > "$GSH_TMP/nb_failed_tests"
581581
color_echo red "$(eval_gettext 'test $nb_tests failed') (expected check 'true')"
582-
[ -n "$msg" ] && echo "$msg"
583582
elif [ "$expected" = "false" ] && [ "$exit_status" -eq 0 ]
584583
then
585584
nb_failed_tests=$((nb_failed_tests+1))
586585
echo "$nb_failed_tests" > "$GSH_TMP/nb_failed_tests"
587586
color_echo red "$(eval_gettext 'test $nb_tests failed') (expected check 'false')"
588-
[ -n "$msg" ] && echo "$msg"
589587
fi
590588

591589
export GSH_LAST_ACTION="assert"
@@ -596,13 +594,12 @@ _gsh_assert_check() {
596594

597595
_gsh_assert() {
598596
local condition=$1
597+
shift
599598
if [ "$condition" = "check" ]
600599
then
601-
shift
602600
_gsh_assert_check "$@"
603601
return
604602
fi
605-
local msg=$2
606603

607604
local nb_tests=$(cat "$GSH_TMP/nb_tests")
608605
echo "$(( nb_tests + 1))" > "$GSH_TMP/nb_tests"
@@ -611,7 +608,6 @@ _gsh_assert() {
611608
then
612609
echo "$(( nb_failed_tests + 1))" > "$GSH_TMP/nb_failed_tests"
613610
color_echo red "$(eval_gettext 'test $nb_tests failed') (expected condition 'true')"
614-
[ -n "$msg" ] && echo "$msg"
615611
fi
616612
}
617613

@@ -695,7 +691,7 @@ gsh() {
695691
local ret=0
696692
case $cmd in
697693
"check")
698-
_gsh_check
694+
_gsh_check "$@"
699695
ret=$?
700696
;;
701697
"reset")

lib/mission_source.sh

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
mission_source() {
1919
local FILENAME
2020
FILENAME=$1
21+
shift # keep the rest of the arguments to pass to the sourced file
2122

2223
if ! [ -e "$FILENAME" ]
2324
then
@@ -41,7 +42,7 @@ mission_source() {
4142
# if we are not running in DEBUG mode, just source the file
4243
if [ "$GSH_MODE" != "DEBUG" ] || [ -z "$GSH_VERBOSE_DEBUG" ]
4344
then
44-
local _MISSION_DIR _TEXTDOMAIN _MISSION_NAME _PATH exit_status
45+
local _MISSION_DIR _TEXTDOMAIN _MISSION_NAME _PATH _SAVED_ARGS exit_status
4546
export MISSION_DIR TEXTDOMAIN MISSION_NAME
4647
_MISSION_DIR=$MISSION_DIR
4748
MISSION_DIR=$(dirname "$(readlink-f "$FILENAME")")
@@ -51,8 +52,11 @@ mission_source() {
5152
MISSION_NAME=${FILENAME#$GSH_MISSIONS/}
5253
_PATH=$PATH
5354
PATH=$PATH:$GSH_SBIN
55+
_SAVED_ARGS="$@"
56+
set -- "$@" # set $1 etc.
5457
. "$FILENAME"
5558
exit_status=$?
59+
set -- $_SAVED_ARGS
5660
TEXTDOMAIN=$_TEXTDOMAIN
5761
MISSION_NAME=$_MISSION_NAME
5862
MISSION_DIR=$_MISSION_DIR
@@ -61,7 +65,7 @@ mission_source() {
6165
return $exit_status
6266
fi
6367

64-
local _MISSION_DIR _TEXTDOMAIN _MISSION_NAME _PATH exit_status env_before env_after
68+
local _MISSION_DIR _TEXTDOMAIN _MISSION_NAME _PATH _SAVED_ARGS exit_status env_before env_after
6569
export MISSION_DIR TEXTDOMAIN MISSION_NAME
6670
echo " GSH: sourcing \$GSH_ROOT/${FILENAME#$GSH_ROOT/}" >&2
6771
_MISSION_DIR="" # otherwise, it appears in the environment!
@@ -84,8 +88,11 @@ mission_source() {
8488
MISSION_NAME=${FILENAME#$GSH_MISSIONS/}
8589
_PATH=$PATH
8690
PATH=$PATH:$GSH_SBIN
91+
_SAVED_ARGS="$@"
92+
set -- "$@" # set $1 etc.
8793
. "$FILENAME"
8894
exit_status=$?
95+
set -- $_SAVED_ARGS
8996
TEXTDOMAIN=$_TEXTDOMAIN
9097
MISSION_NAME=$_MISSION_NAME
9198
MISSION_DIR=$_MISSION_DIR

missions/basic/01_cd_tower/test.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
#!/usr/bin/env sh
22

3-
gsh assert_check false
3+
gsh assert check false
44

55
cd ..
6-
gsh assert_check false
6+
gsh assert check false
77

88
cd
9-
gsh assert_check false
9+
gsh assert check false
1010

1111
cd "$(eval_gettext "\$GSH_HOME/Castle/Main_tower/First_floor/Second_floor/Top_of_the_tower")"
12-
gsh assert_check true
12+
gsh assert check true
1313

1414
cd "$(eval_gettext "\$GSH_HOME/Castle/Main_tower/First_floor/Second_floor/Top_of_the_tower")/.."
15-
gsh assert_check false
15+
gsh assert check false
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
#!/usr/bin/env sh
22

33
cd
4-
gsh assert_check false
4+
gsh assert check false
55

66
cd "$(eval_gettext "\$GSH_HOME/Castle/Cellar")"
7-
gsh assert_check true
7+
gsh assert check true
88

99
cd "$(eval_gettext "\$GSH_HOME/Castle/Cellar")/.."
10-
gsh assert_check false
10+
gsh assert check false
1111

1212
cd
13-
gsh assert_check false
13+
gsh assert check false
1414

1515

missions/processes/03_pstree_kill/test.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,19 @@ stand_by
2424
kill_imp_spell
2525
sleep 1
2626
rm -f "$cellar"/*_"$(gettext "coal")"
27-
gsh assert_check true
27+
gsh assert check true
2828

2929
stand_by
3030
kill_imp_spell
3131
sleep 1
32-
gsh assert_check false
32+
gsh assert check false
3333

3434
stand_by
3535
kill_imp_spell
3636
sleep 1
3737
rm -f "$cellar"/*_"$(gettext "coal")"
3838
rm -f "$cellar"/*_"$(gettext "snowflake")"
39-
gsh assert_check false
39+
gsh assert check false
4040

4141

4242
unset -f kill_imp_spell

0 commit comments

Comments
 (0)