|
| 1 | +// This test uses the script cmd/tools/check_retry.vsh |
1 | 2 | import os |
| 3 | +import log |
2 | 4 |
|
3 | 5 | const vexe = @VEXE |
| 6 | +const vroot = os.dir(vexe) |
4 | 7 |
|
5 | | -const is_ci = os.getenv('CI') == 'true' |
| 8 | +const is_ci = os.getenv('CI') != '' |
6 | 9 |
|
7 | 10 | fn dump_on_ci[T](x T) { |
8 | 11 | if is_ci { |
9 | 12 | dump(x) |
10 | 13 | } |
11 | 14 | } |
12 | 15 |
|
| 16 | +fn run(cmd string) os.Result { |
| 17 | + log.info('>>> running cmd: ${cmd}') |
| 18 | + defer { |
| 19 | + log.info('>>> finished cmd: ${cmd}') |
| 20 | + } |
| 21 | + return os.execute(cmd) |
| 22 | +} |
| 23 | + |
13 | 24 | fn test_retry() { |
| 25 | + log.warn('start...') |
| 26 | + defer { |
| 27 | + log.warn('... done') |
| 28 | + } |
14 | 29 | tpath := os.join_path(os.vtmp_dir(), 'vretry_test') |
15 | 30 | os.rmdir_all(tpath) or {} |
16 | 31 | os.mkdir_all(tpath)! |
17 | 32 | defer { |
18 | 33 | os.rmdir_all(tpath) or {} |
19 | 34 | } |
20 | | - |
21 | | - fail_cmd := 'git asdf' |
| 35 | + os.chdir(vroot)! |
| 36 | + fail_cmd := '${vexe} run cmd/tools/check_retry.vsh too many arguments' |
22 | 37 | if is_ci { |
23 | 38 | // Skip longer running test on local runs. |
24 | | - res := os.execute('${vexe} retry ${fail_cmd}') |
| 39 | + res := run('${vexe} retry ${fail_cmd}') |
25 | 40 | assert res.exit_code != 0 |
26 | 41 | assert res.output.contains('error: exceeded maximum number of retries') |
27 | 42 | } |
28 | 43 |
|
29 | | - mut res := os.execute('${vexe} retry -d 0.2 -r 3 ${fail_cmd}') |
| 44 | + mut res := run('${vexe} retry -d 0.2 -r 3 ${fail_cmd}') |
30 | 45 | dump_on_ci(res) |
31 | 46 | assert res.exit_code != 0 |
32 | 47 | assert res.output.contains('error: exceeded maximum number of retries (3)!') |
33 | 48 |
|
34 | | - os.chdir(os.dir(vexe))! |
35 | | - pass_cmd := 'git branch' |
36 | | - res = os.execute('${vexe} retry ${pass_cmd}') |
| 49 | + pass_cmd := '${vexe} run cmd/tools/check_retry.vsh' |
| 50 | + res = run('${vexe} retry ${pass_cmd}') |
37 | 51 | dump_on_ci(res) |
38 | 52 | assert res.exit_code == 0 |
39 | | - assert res.output == os.execute(pass_cmd).output |
| 53 | + assert res.output == run(pass_cmd).output |
40 | 54 |
|
41 | 55 | // Include flags on the cmd as well. |
42 | | - pass_cmd_with_flags := 'git branch --list' |
43 | | - res = os.execute('${vexe} retry -r 3 -- ${pass_cmd_with_flags}') |
| 56 | + pass_cmd_with_flags := '${vexe} run cmd/tools/check_retry.vsh --list -x arguments' |
| 57 | + res = run('${vexe} retry -r 3 -- ${pass_cmd_with_flags}') |
44 | 58 | dump_on_ci(res) |
45 | 59 | assert res.exit_code == 0 |
46 | | - assert res.output == os.execute(pass_cmd_with_flags).output |
| 60 | + assert res.output == run(pass_cmd_with_flags).output |
47 | 61 | } |
0 commit comments