mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
testing: fix race condition, make messages private
This commit is contained in:
parent
3cc7009440
commit
392986b763
@ -9,8 +9,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
pub struct TestMessageHandler {
|
pub struct TestMessageHandler {
|
||||||
pub mut:
|
mut:
|
||||||
messages []string
|
messages []string
|
||||||
|
pub mut:
|
||||||
message_idx int
|
message_idx int
|
||||||
mtx &sync.Mutex
|
mtx &sync.Mutex
|
||||||
}
|
}
|
||||||
@ -28,6 +29,12 @@ pub mut:
|
|||||||
message_handler &TestMessageHandler
|
message_handler &TestMessageHandler
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn (mh mut TestMessageHandler) append_message(msg string) {
|
||||||
|
mh.mtx.lock()
|
||||||
|
mh.messages << msg
|
||||||
|
mh.mtx.unlock()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn new_test_session(_vargs string) TestSession {
|
pub fn new_test_session(_vargs string) TestSession {
|
||||||
mut skip_files := []string
|
mut skip_files := []string
|
||||||
skip_files << '_non_existing_'
|
skip_files << '_non_existing_'
|
||||||
@ -105,7 +112,7 @@ pub fn (ts mut TestSession) test() {
|
|||||||
eprintln(term.h_divider('-'))
|
eprintln(term.h_divider('-'))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn next_message(m mut TestMessageHandler) {
|
pub fn (m mut TestMessageHandler) display_message() {
|
||||||
m.mtx.lock()
|
m.mtx.lock()
|
||||||
defer {
|
defer {
|
||||||
m.messages.clear()
|
m.messages.clear()
|
||||||
@ -123,7 +130,7 @@ fn next_message(m mut TestMessageHandler) {
|
|||||||
|
|
||||||
fn worker_trunner(p mut sync.PoolProcessor, idx int, thread_id int) voidptr {
|
fn worker_trunner(p mut sync.PoolProcessor, idx int, thread_id int) voidptr {
|
||||||
mut ts := &TestSession(p.get_shared_context())
|
mut ts := &TestSession(p.get_shared_context())
|
||||||
defer { next_message(ts.message_handler) }
|
defer { ts.message_handler.display_message() }
|
||||||
tmpd := os.temp_dir()
|
tmpd := os.temp_dir()
|
||||||
show_stats := '-stats' in ts.vargs.split(' ')
|
show_stats := '-stats' in ts.vargs.split(' ')
|
||||||
// tls_bench is used to format the step messages/timings
|
// tls_bench is used to format the step messages/timings
|
||||||
@ -156,11 +163,11 @@ fn worker_trunner(p mut sync.PoolProcessor, idx int, thread_id int) voidptr {
|
|||||||
if relative_file.replace('\\', '/') in ts.skip_files {
|
if relative_file.replace('\\', '/') in ts.skip_files {
|
||||||
ts.benchmark.skip()
|
ts.benchmark.skip()
|
||||||
tls_bench.skip()
|
tls_bench.skip()
|
||||||
ts.message_handler.messages << tls_bench.step_message_skip(relative_file)
|
ts.message_handler.append_message(tls_bench.step_message_skip(relative_file))
|
||||||
return sync.no_result
|
return sync.no_result
|
||||||
}
|
}
|
||||||
if show_stats {
|
if show_stats {
|
||||||
ts.message_handler.messages << term.h_divider('-')
|
ts.message_handler.append_message(term.h_divider('-'))
|
||||||
status := os.system(cmd)
|
status := os.system(cmd)
|
||||||
if status == 0 {
|
if status == 0 {
|
||||||
ts.benchmark.ok()
|
ts.benchmark.ok()
|
||||||
@ -178,20 +185,20 @@ fn worker_trunner(p mut sync.PoolProcessor, idx int, thread_id int) voidptr {
|
|||||||
ts.failed = true
|
ts.failed = true
|
||||||
ts.benchmark.fail()
|
ts.benchmark.fail()
|
||||||
tls_bench.fail()
|
tls_bench.fail()
|
||||||
ts.message_handler.messages << tls_bench.step_message_fail(relative_file)
|
ts.message_handler.append_message(tls_bench.step_message_fail(relative_file))
|
||||||
return sync.no_result
|
return sync.no_result
|
||||||
}
|
}
|
||||||
if r.exit_code != 0 {
|
if r.exit_code != 0 {
|
||||||
ts.failed = true
|
ts.failed = true
|
||||||
ts.benchmark.fail()
|
ts.benchmark.fail()
|
||||||
tls_bench.fail()
|
tls_bench.fail()
|
||||||
ts.message_handler.messages << tls_bench.step_message_fail('${relative_file}\n$r.output\n')
|
ts.message_handler.append_message(tls_bench.step_message_fail('${relative_file}\n$r.output\n'))
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ts.benchmark.ok()
|
ts.benchmark.ok()
|
||||||
tls_bench.ok()
|
tls_bench.ok()
|
||||||
if ts.show_ok_tests {
|
if ts.show_ok_tests {
|
||||||
ts.message_handler.messages << tls_bench.step_message_ok(relative_file)
|
ts.message_handler.append_message(tls_bench.step_message_ok(relative_file))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user