@@ -26,8 +26,12 @@ end_phase
26
26
27
27
wait_baseline " ${SCALETEST_PARAM_LOAD_SCENARIO_BASELINE_DURATION} "
28
28
29
+ declare -A failed=()
29
30
for scenario in " ${SCALETEST_PARAM_LOAD_SCENARIOS[@]} " ; do
30
31
start_phase " Load scenario: ${scenario} "
32
+
33
+ set +e
34
+ status=0
31
35
case " ${scenario} " in
32
36
" SSH Traffic" )
33
37
coder exp scaletest workspace-traffic \
@@ -37,6 +41,7 @@ for scenario in "${SCALETEST_PARAM_LOAD_SCENARIOS[@]}"; do
37
41
--timeout " ${SCALETEST_PARAM_LOAD_SCENARIO_SSH_TRAFFIC_DURATION} m" \
38
42
--job-timeout " ${SCALETEST_PARAM_LOAD_SCENARIO_SSH_TRAFFIC_DURATION} m30s" \
39
43
--output json:" ${SCALETEST_RESULTS_DIR} /traffic-ssh.json"
44
+ status=$?
40
45
show_json " ${SCALETEST_RESULTS_DIR} /traffic-ssh.json"
41
46
;;
42
47
" Web Terminal Traffic" )
@@ -46,6 +51,7 @@ for scenario in "${SCALETEST_PARAM_LOAD_SCENARIOS[@]}"; do
46
51
--timeout " ${SCALETEST_PARAM_LOAD_SCENARIO_WEB_TERMINAL_TRAFFIC_DURATION} m" \
47
52
--job-timeout " ${SCALETEST_PARAM_LOAD_SCENARIO_WEB_TERMINAL_TRAFFIC_DURATION} m30s" \
48
53
--output json:" ${SCALETEST_RESULTS_DIR} /traffic-web-terminal.json"
54
+ status=$?
49
55
show_json " ${SCALETEST_RESULTS_DIR} /traffic-web-terminal.json"
50
56
;;
51
57
" Dashboard Traffic" )
@@ -54,13 +60,39 @@ for scenario in "${SCALETEST_PARAM_LOAD_SCENARIOS[@]}"; do
54
60
--job-timeout " ${SCALETEST_PARAM_LOAD_SCENARIO_DASHBOARD_TRAFFIC_DURATION} m30s" \
55
61
--output json:" ${SCALETEST_RESULTS_DIR} /traffic-dashboard.json" \
56
62
> " ${SCALETEST_RESULTS_DIR} /traffic-dashboard-output.log"
63
+ status=$?
57
64
show_json " ${SCALETEST_RESULTS_DIR} /traffic-dashboard.json"
58
65
;;
66
+
67
+ # Debug scenarios, for testing the runner.
68
+ " debug:success" )
69
+ maybedryrun " $DRY_RUN " sleep 10
70
+ status=0
71
+ ;;
72
+ " debug:error" )
73
+ maybedryrun " $DRY_RUN " sleep 10
74
+ status=1
75
+ ;;
59
76
esac
60
- end_phase
77
+ set -e
78
+ if (( status > 0 )) ; then
79
+ log " Load scenario failed: ${scenario} (exit=${status} )"
80
+ failed+=([" ${scenario} " ]=" $status " )
81
+ PHASE_ADD_TAGS=error end_phase
82
+ else
83
+ end_phase
84
+ fi
61
85
62
86
wait_baseline " ${SCALETEST_PARAM_LOAD_SCENARIO_BASELINE_DURATION} "
63
87
done
64
88
89
+ if (( ${# failed[@]} > 0 )) ; then
90
+ log " Load scenarios failed: ${! failed[*]} "
91
+ for scenario in " ${! failed[@]} " ; do
92
+ log " ${scenario} : exit=${failed[$scenario]} "
93
+ done
94
+ exit 1
95
+ fi
96
+
65
97
log " Scaletest complete!"
66
98
set_status Complete
0 commit comments