tests: vfmt test for all vlib/v files
parent
2344c1a435
commit
57ea9bec30
|
@ -23,7 +23,9 @@ fn test_fmt() {
|
||||||
}
|
}
|
||||||
vroot := os.dir(vexe)
|
vroot := os.dir(vexe)
|
||||||
tmpfolder := os.temp_dir()
|
tmpfolder := os.temp_dir()
|
||||||
diff_cmd := util.find_working_diff_command() or { '' }
|
diff_cmd := util.find_working_diff_command() or {
|
||||||
|
''
|
||||||
|
}
|
||||||
mut fmt_bench := benchmark.new_benchmark()
|
mut fmt_bench := benchmark.new_benchmark()
|
||||||
keep_input_files := os.walk_ext('$vroot/vlib/v/fmt/tests', '_keep.vv')
|
keep_input_files := os.walk_ext('$vroot/vlib/v/fmt/tests', '_keep.vv')
|
||||||
expected_input_files := os.walk_ext('$vroot/vlib/v/fmt/tests', '_expected.vv')
|
expected_input_files := os.walk_ext('$vroot/vlib/v/fmt/tests', '_expected.vv')
|
||||||
|
@ -55,7 +57,7 @@ fn test_fmt() {
|
||||||
}
|
}
|
||||||
vfmt_result_file := os.join_path(tmpfolder, 'vfmt_run_over_${ifilename}')
|
vfmt_result_file := os.join_path(tmpfolder, 'vfmt_run_over_${ifilename}')
|
||||||
os.write_file(vfmt_result_file, result_ocontent)
|
os.write_file(vfmt_result_file, result_ocontent)
|
||||||
eprintln(util.color_compare_files(diff_cmd, opath, vfmt_result_file))
|
eprintln(util.color_compare_files(diff_cmd, opath, vfmt_result_file))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
fmt_bench.ok()
|
fmt_bench.ok()
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
import os
|
||||||
|
import term
|
||||||
|
import benchmark
|
||||||
|
import v.ast
|
||||||
|
import v.fmt
|
||||||
|
import v.parser
|
||||||
|
import v.table
|
||||||
|
import v.pref
|
||||||
|
import v.util
|
||||||
|
|
||||||
|
const (
|
||||||
|
error_missing_vexe = 1
|
||||||
|
error_failed_tests = 2
|
||||||
|
)
|
||||||
|
|
||||||
|
fn test_vlib_fmt() {
|
||||||
|
$if !freebsd {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt_message := "checking that all V source files are vfmt'ed"
|
||||||
|
eprintln(term.header(fmt_message, '-'))
|
||||||
|
vexe := os.getenv('VEXE')
|
||||||
|
if vexe.len == 0 || !os.exists(vexe) {
|
||||||
|
eprintln('VEXE must be set')
|
||||||
|
exit(error_missing_vexe)
|
||||||
|
}
|
||||||
|
vroot := os.dir(vexe)
|
||||||
|
tmpfolder := os.temp_dir()
|
||||||
|
diff_cmd := util.find_working_diff_command() or {
|
||||||
|
''
|
||||||
|
}
|
||||||
|
mut fmt_bench := benchmark.new_benchmark()
|
||||||
|
input_files := os.walk_ext('$vroot/vlib/v/', '.v')
|
||||||
|
fmt_bench.set_total_expected_steps(input_files.len)
|
||||||
|
for istep, ipath in input_files {
|
||||||
|
fmt_bench.cstep = istep
|
||||||
|
fmt_bench.step()
|
||||||
|
ifilename := os.file_name(ipath)
|
||||||
|
opath := ipath
|
||||||
|
expected_ocontent := os.read_file(opath) or {
|
||||||
|
fmt_bench.fail()
|
||||||
|
eprintln(fmt_bench.step_message_fail('cannot read from ${opath}'))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
table := table.new_table()
|
||||||
|
file_ast := parser.parse_file(ipath, table, .parse_comments, &pref.Preferences{}, &ast.Scope{
|
||||||
|
parent: 0
|
||||||
|
})
|
||||||
|
result_ocontent := fmt.fmt(file_ast, table, false)
|
||||||
|
if expected_ocontent != result_ocontent {
|
||||||
|
fmt_bench.fail()
|
||||||
|
eprintln(fmt_bench.step_message_fail('file ${ipath} after formatting, does not look as expected.'))
|
||||||
|
if diff_cmd == '' {
|
||||||
|
eprintln('>> sorry, but no working "diff" CLI command can be found')
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
vfmt_result_file := os.join_path(tmpfolder, 'vfmt_run_over_${ifilename}')
|
||||||
|
os.write_file(vfmt_result_file, result_ocontent)
|
||||||
|
eprintln(util.color_compare_files(diff_cmd, opath, vfmt_result_file))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
fmt_bench.ok()
|
||||||
|
eprintln(fmt_bench.step_message_ok('${ipath}'))
|
||||||
|
}
|
||||||
|
fmt_bench.stop()
|
||||||
|
eprintln(term.h_divider('-'))
|
||||||
|
eprintln(fmt_bench.total_message(fmt_message))
|
||||||
|
if fmt_bench.nfail > 0 {
|
||||||
|
exit(error_failed_tests)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue