tools: ease diagnosing CI failures of vtimeout_test.v

This commit is contained in:
Delyan Angelov 2025-05-31 14:55:17 +03:00
parent f9a4f8f19f
commit e90c0a8eb0
No known key found for this signature in database
GPG Key ID: 66886C0F12D595ED

View File

@ -1,4 +1,5 @@
import os
import time
const qvexe = os.quoted_path(@VEXE)
@ -18,24 +19,32 @@ fn depend_on_command(cmd string) ? {
}
}
fn execute(cmd string) os.Result {
sw := time.new_stopwatch()
res := os.execute(cmd)
dt := sw.elapsed().milliseconds()
eprintln('>> command: `${cmd:-60s}`, took: ${dt:5} ms, exit_code: ${res.exit_code:3}, output.len: ${res.output.len}')
return res
}
fn test_normal_exit_without_timeout_echo() {
depend_on_command('echo') or { return }
ee := os.execute('${qvexe} timeout 0.2 echo')
ee := execute('${qvexe} timeout 0.2 echo')
assert ee.exit_code == 0, ee.output
res := os.execute('${qvexe} timeout 0.2 echo z123')
res := execute('${qvexe} timeout 0.2 echo z123')
assert res.exit_code == 0, res.output
assert res.output.contains('z123')
}
fn test_normal_exit_without_timeout_sleep() {
depend_on_command('sleep') or { return }
res := os.execute('${qvexe} timeout 0.4 sleep 0.1')
res := execute('${qvexe} timeout 0.4 sleep 0.1')
assert res.exit_code == 0, res.output
assert res.output == ''
}
fn test_exit_with_timeout() {
depend_on_command('sleep') or { return }
res := os.execute('${qvexe} timeout 0.2 sleep 2')
res := execute('${qvexe} timeout 0.2 sleep 2')
assert res.exit_code == 124, res.output
}