mirror of
https://github.com/vlang/v.git
synced 2025-09-17 11:26:17 -04:00
v.pref: fix vsh_envbang_test.v to always use the local V executable (#22563)
This commit is contained in:
parent
35079f115d
commit
decea1b188
@ -1,11 +1,22 @@
|
||||
import os
|
||||
import rand
|
||||
|
||||
fn test_envbang_script_runs() {
|
||||
env_location := '/usr/bin/env'
|
||||
const vexe = @VEXE
|
||||
|
||||
fn testsuite_begin() {
|
||||
$if windows {
|
||||
skip_test('windows does not support envbang lines')
|
||||
}
|
||||
// Make sure, that we will be using the local v, instead of the globally installed one,
|
||||
// for the rest of the tests here:
|
||||
local_v_path := os.dir(vexe)
|
||||
old_path := os.getenv('PATH')
|
||||
os.setenv('PATH', '${local_v_path}:${old_path}', true)
|
||||
println('Changed PATH: ${os.getenv('PATH')}')
|
||||
}
|
||||
|
||||
fn test_envbang_script_runs() {
|
||||
env_location := '/usr/bin/env'
|
||||
if !os.exists(env_location) {
|
||||
skip_test('${env_location} does not exist')
|
||||
}
|
||||
@ -18,14 +29,18 @@ fn test_envbang_script_runs() {
|
||||
os.write_file(rnd_vsh_script_path, "#!${env_location} v
|
||||
import os
|
||||
println('hello')
|
||||
println('@VEXE: ${vexe}')
|
||||
println(os.args)
|
||||
")!
|
||||
os.chmod(rnd_vsh_script_path, 0o700)!
|
||||
res := os.execute('${os.quoted_path(rnd_vsh_script_path)} abc 123 -option')
|
||||
assert res.exit_code == 0
|
||||
lines := res.output.split_into_lines()
|
||||
dump(lines)
|
||||
assert lines[0] == 'hello'
|
||||
assert lines[1].ends_with(", 'abc', '123', '-option']")
|
||||
assert lines[1].starts_with('@VEXE: ')
|
||||
assert os.real_path(lines[1].all_after('@VEXE: ')) == os.real_path(vexe)
|
||||
assert lines[2].ends_with(", 'abc', '123', '-option']")
|
||||
os.rm(rnd_vsh_script_path)!
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user