Skip to content

Commit

Permalink
ci: normalise paths on windows to the unix ones for uniformity and co…
Browse files Browse the repository at this point in the history
…nsistent behaviour of the tests
  • Loading branch information
spytheman committed May 26, 2024
1 parent ec57f10 commit a7c0570
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 13 deletions.
21 changes: 13 additions & 8 deletions cmd/tools/vcover/cover_test.v
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,26 @@ fn test_help() {
assert res.output.contains('-A, --absolute Use absolute paths for all files')
}

fn np(path string) string {
return path.replace('\\', '/')
}

fn test_simple() {
t1 := os.join_path(tfolder, 't1')
t2 := os.join_path(tfolder, 't2')
t3 := os.join_path(tfolder, 't3')
assert !os.exists(t1)
assert !os.exists(t2)
assert !os.exists(t3)
t1 := np(os.join_path(tfolder, 't1'))
t2 := np(os.join_path(tfolder, 't2'))
t3 := np(os.join_path(tfolder, 't3'))
assert !os.exists(t1), t1
assert !os.exists(t2), t2
assert !os.exists(t3), t3

r1 := os.execute('${os.quoted_path(vexe)} -coverage ${os.quoted_path(t1)} cmd/tools/vcover/testdata/simple/t1_test.v')
assert r1.exit_code == 0, r1.str()
assert r1.output.trim_space() == '10', r1.str()
assert os.exists(t1), t1
filter1 := os.execute('${os.quoted_path(vexe)} cover ${os.quoted_path(t1)} --filter vcover/testdata/simple/')
cmd := '${os.quoted_path(vexe)} cover ${os.quoted_path(t1)} --filter vcover/testdata/simple/'
filter1 := os.execute(cmd)
assert filter1.exit_code == 0, filter1.output
assert filter1.output.contains('cmd/tools/vcover/testdata/simple/simple.v')
assert filter1.output.contains('cmd/tools/vcover/testdata/simple/simple.v'), filter1.output
assert filter1.output.trim_space().ends_with('| 4 | 9 | 44.44%'), filter1.output
hfilter1 := os.execute('${os.quoted_path(vexe)} cover ${os.quoted_path(t1)} --filter vcover/testdata/simple/ -H -P false')
assert hfilter1.exit_code == 0, hfilter1.output
Expand Down
3 changes: 2 additions & 1 deletion cmd/tools/vcover/main.v
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ const metadata_extension = '.json'
const vcounter_glob_pattern = 'vcounters_*.csv'

fn (mut ctx Context) load_meta(folder string) {
for mfile in os.walk_ext(folder, metadata_extension) {
for omfile in os.walk_ext(folder, metadata_extension) {
mfile := omfile.replace('\\', '/')
content := os.read_file(mfile) or { '' }
meta := os.file_name(mfile.replace(metadata_extension, ''))
data := json.decode(MetaData, content) or {
Expand Down
10 changes: 6 additions & 4 deletions vlib/v/gen/c/coverage.v
Original file line number Diff line number Diff line change
Expand Up @@ -48,24 +48,26 @@ fn (mut g Gen) write_coverage_point(pos token.Pos) {

fn (mut g Gen) write_coverage_stats() {
build_options := g.pref.build_options.join(' ')
coverage_meta_folder := os.join_path(g.pref.coverage_dir, 'meta')
coverage_dir := os.real_path(g.pref.coverage_dir).replace('\\', '/')
coverage_meta_folder := '${coverage_dir}/meta'
if !os.exists(coverage_meta_folder) {
os.mkdir_all(coverage_meta_folder) or {}
}
counter_ulid := rand.ulid() // rand.ulid provides a hash+timestamp, so that a collision is extremely unlikely
g.cov_declarations.writeln('')
g.cov_declarations.writeln('void vprint_coverage_stats() {')
g.cov_declarations.writeln('\tchar cov_filename[2048];')
covdir := cesc(os.real_path(g.pref.coverage_dir))
covdir := cesc(coverage_dir)
g.cov_declarations.writeln('\tchar *cov_dir = "${covdir}";')
for _, mut cov in g.coverage_files {
metadata_coverage_fpath := os.join_path(coverage_meta_folder, '${cov.fhash}.json')
metadata_coverage_fpath := '${coverage_meta_folder}/${cov.fhash}.json'
filepath := os.real_path(cov.file.path).replace('\\', '/')
if os.exists(metadata_coverage_fpath) {
continue
}
mut fmeta := os.create(metadata_coverage_fpath) or { continue }
fmeta.writeln('{') or { continue }
jfilepath := jesc(os.real_path(cov.file.path))
jfilepath := jesc(filepath)
jfhash := jesc(cov.fhash)
jversion := jesc(version.full_v_version(true))
jboptions := jesc(cov.build_options)
Expand Down

0 comments on commit a7c0570

Please sign in to comment.