v test-fmt: add 1 sec sleep before rebuilding vfmt, to avoid its parallel recompilation afterwards

pull/6665/head
Delyan Angelov 2020-10-21 15:20:07 +03:00
parent 87f659a0dc
commit 9322e91d1b
2 changed files with 5 additions and 0 deletions

View File

@ -1,6 +1,7 @@
module main
import os
import time
import testing
import v.util
@ -62,6 +63,7 @@ fn prepare_vfmt_when_needed() {
vroot := os.dir(vexe)
vfmtv := os.join_path(vroot, 'cmd', 'tools', 'vfmt.v')
if util.should_recompile_tool(vexe, vfmtv) {
time.sleep_ms(1001) // TODO: remove this when we can get mtime with a better resolution
recompile_file(vexe, vfmtv)
}
}

View File

@ -166,6 +166,9 @@ pub fn launch_tool(is_verbose bool, tool_name string, args []string) {
exit(os.system(tool_command))
}
// NB: should_recompile_tool/2 compares unix timestamps that have 1 second resolution
// That means that a tool can get recompiled twice, if called in short succession.
// TODO: use a nanosecond mtime timestamp, if available.
pub fn should_recompile_tool(vexe string, tool_source string) bool {
sfolder := os.dir(tool_source)
tool_name := os.base(tool_source).replace('.v', '')