live_test.v: wait 5 times more on macos

pull/6536/head
Delyan Angelov 2020-10-02 11:38:49 +03:00
parent c747ba1c3f
commit 70c87137a9
1 changed files with 31 additions and 3 deletions
vlib/v/tests

View File

@ -72,7 +72,13 @@ fn pmessage() string {
const ( const (
delay = 5 delay = 5
) )
fn edefault(name string, default string) string {
res := os.getenv(name)
if res == '' {
return default
}
return res
}
fn main() { fn main() {
mut info := live.info() mut info := live.info()
info.recheck_period_ms = 5 info.recheck_period_ms = 5
@ -80,8 +86,9 @@ fn main() {
myprintln('DATE: ' + time.now().str()) myprintln('DATE: ' + time.now().str())
pmessage() pmessage()
pmessage() pmessage()
max_cycles := edefault('LIVE_CYCLES', '1').int()
// NB: 1000 * 5 = maximum of ~5s runtime // NB: 1000 * 5 = maximum of ~5s runtime
for i:=0; i<1000; i++ { for i:=0; i<max_cycles; i++ {
s := pmessage() s := pmessage()
append_to_file(os.resource_abs_path(s + '.txt'), s) append_to_file(os.resource_abs_path(s + '.txt'), s)
time.sleep_ms(delay) time.sleep_ms(delay)
@ -97,6 +104,14 @@ fn main() {
" "
) )
fn edefault(name string, default string) string {
res := os.getenv(name)
if res == '' {
return default
}
return res
}
fn atomic_write_source(source string) { fn atomic_write_source(source string) {
// NB: here wrtiting is done in 2 steps, since os.write_file can take some time, // NB: here wrtiting is done in 2 steps, since os.write_file can take some time,
// during which the file will be modified, but it will still be not completely written. // during which the file will be modified, but it will still be not completely written.
@ -158,7 +173,8 @@ fn wait_for_file(new string) {
time.sleep_ms(100) time.sleep_ms(100)
expected_file := os.join_path(os.temp_dir(), new + '.txt') expected_file := os.join_path(os.temp_dir(), new + '.txt')
eprintln('waiting for $expected_file ...') eprintln('waiting for $expected_file ...')
for i := 0; i <= 400; i++ { max_wait_cycles := edefault('WAIT_CYCLES', '1').int()
for i := 0; i <= max_wait_cycles; i++ {
if i % 25 == 0 { if i % 25 == 0 {
vprintln(' checking ${i:-10d} for $expected_file ...') vprintln(' checking ${i:-10d} for $expected_file ...')
} }
@ -172,8 +188,20 @@ fn wait_for_file(new string) {
} }
} }
fn setup_cycles_environment() {
mut max_live_cycles := 1000
mut max_wait_cycles := 400
if os.user_os() == 'macos' {
max_live_cycles *= 5
max_wait_cycles *= 5
}
os.setenv('LIVE_CYCLES', '$max_live_cycles', true)
os.setenv('WAIT_CYCLES', '$max_wait_cycles', true)
}
// //
fn test_live_program_can_be_compiled() { fn test_live_program_can_be_compiled() {
setup_cycles_environment()
eprintln('Compiling...') eprintln('Compiling...')
os.system('$vexe -live -o $genexe_file $source_file') os.system('$vexe -live -o $genexe_file $source_file')
// //