|
| 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