|
| 1 | +// vtest flaky: true |
| 2 | +// vtest retry: 3 |
| 3 | +import os |
| 4 | + |
| 5 | +const ( |
| 6 | + v = os.quoted_path(@VEXE) |
| 7 | + test_path = os.join_path(os.vtmp_dir(), 'vpm_update_test') |
| 8 | +) |
| 9 | + |
| 10 | +fn testsuite_begin() { |
| 11 | + os.setenv('VMODULES', test_path, true) |
| 12 | + os.setenv('VPM_DEBUG', '', true) |
| 13 | + os.setenv('VPM_NO_INCREMENT', '1', true) |
| 14 | +} |
| 15 | + |
| 16 | +fn testsuite_end() { |
| 17 | + os.rmdir_all(test_path) or {} |
| 18 | +} |
| 19 | + |
| 20 | +// Tests if `v update` detects installed modules and runs successfully. |
| 21 | +fn test_update() { |
| 22 | + os.execute_or_exit('${v} install pcre') |
| 23 | + os.execute_or_exit('${v} install nedpals.args') |
| 24 | + os.execute_or_exit('${v} install https://github.com/spytheman/vtray') |
| 25 | + res := os.execute_opt('${v} update') or { panic(err) } |
| 26 | + assert res.output.contains('Updating module `pcre`'), res.output |
| 27 | + assert res.output.contains('Updating module `nedpals.args`'), res.output |
| 28 | + assert res.output.contains('Updating module `vtray`'), res.output |
| 29 | + assert res.output.contains('Skipping download count increment for `nedpals.args`.'), res.output |
| 30 | + assert res.output.contains('Skipping download count increment for `pcre`.'), res.output |
| 31 | +} |
| 32 | + |
| 33 | +fn test_update_idents() { |
| 34 | + mut res := os.execute_or_exit('${v} update pcre') |
| 35 | + assert res.output.contains('Updating module `pcre`'), res.output |
| 36 | + res = os.execute_or_exit('${v} update nedpals.args vtray') |
| 37 | + assert res.output.contains('Updating module `vtray`'), res.output |
| 38 | + assert res.output.contains('Updating module `nedpals.args`'), res.output |
| 39 | + // Try update not installed. |
| 40 | + res = os.execute('${v} update vsl') |
| 41 | + assert res.exit_code == 1 |
| 42 | + assert res.output.contains('failed to find `vsl`'), res.output |
| 43 | + // Try update mixed. |
| 44 | + res = os.execute('${v} update pcre vsl') |
| 45 | + assert res.exit_code == 1 |
| 46 | + assert res.output.contains('Updating module `pcre`'), res.output |
| 47 | + assert res.output.contains('failed to find `vsl`'), res.output |
| 48 | +} |
0 commit comments