mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
37 lines
1016 B
V
37 lines
1016 B
V
import os
|
|
import rand
|
|
|
|
fn test_envbang_script_runs() {
|
|
env_location := '/usr/bin/env'
|
|
$if windows {
|
|
skip_test('windows does not support envbang lines')
|
|
}
|
|
if !os.exists(env_location) {
|
|
skip_test('${env_location} does not exist')
|
|
}
|
|
if !os.is_executable(env_location) {
|
|
skip_test('${env_location} is not executable')
|
|
}
|
|
os.find_abs_path_of_executable('v') or { skip_test('v is not in PATH') }
|
|
rndname := rand.ulid()
|
|
rnd_vsh_script_path := os.real_path(os.join_path(os.cache_dir(), '${rndname}.vsh'))
|
|
os.write_file(rnd_vsh_script_path, "#!${env_location} v
|
|
import os
|
|
println('hello')
|
|
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()
|
|
assert lines[0] == 'hello'
|
|
assert lines[1].ends_with(", 'abc', '123', '-option']")
|
|
os.rm(rnd_vsh_script_path)?
|
|
}
|
|
|
|
[noreturn]
|
|
fn skip_test(reason string) {
|
|
println('skipping test, because ${reason} .')
|
|
exit(0)
|
|
}
|