mirror of
https://github.com/vlang/v.git
synced 2025-09-18 11:56:57 -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 os
|
||||||
import rand
|
import rand
|
||||||
|
|
||||||
fn test_envbang_script_runs() {
|
const vexe = @VEXE
|
||||||
env_location := '/usr/bin/env'
|
|
||||||
|
fn testsuite_begin() {
|
||||||
$if windows {
|
$if windows {
|
||||||
skip_test('windows does not support envbang lines')
|
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) {
|
if !os.exists(env_location) {
|
||||||
skip_test('${env_location} does not exist')
|
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
|
os.write_file(rnd_vsh_script_path, "#!${env_location} v
|
||||||
import os
|
import os
|
||||||
println('hello')
|
println('hello')
|
||||||
|
println('@VEXE: ${vexe}')
|
||||||
println(os.args)
|
println(os.args)
|
||||||
")!
|
")!
|
||||||
os.chmod(rnd_vsh_script_path, 0o700)!
|
os.chmod(rnd_vsh_script_path, 0o700)!
|
||||||
res := os.execute('${os.quoted_path(rnd_vsh_script_path)} abc 123 -option')
|
res := os.execute('${os.quoted_path(rnd_vsh_script_path)} abc 123 -option')
|
||||||
assert res.exit_code == 0
|
assert res.exit_code == 0
|
||||||
lines := res.output.split_into_lines()
|
lines := res.output.split_into_lines()
|
||||||
|
dump(lines)
|
||||||
assert lines[0] == 'hello'
|
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)!
|
os.rm(rnd_vsh_script_path)!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user