Skip to content

Commit

Permalink
delete coverage files more nicely
Browse files Browse the repository at this point in the history
  • Loading branch information
aviatesk committed Mar 7, 2022
1 parent a1c480b commit 84bde0f
Showing 1 changed file with 38 additions and 29 deletions.
67 changes: 38 additions & 29 deletions test/code_coverage/code_coverage.jl
Original file line number Diff line number Diff line change
@@ -1,48 +1,57 @@
function cleanup_coverage_files()
function cleanup_coverage_files(pid)
# clean up coverage files for source code
dir, _, files = first(walkdir(normpath(@__DIR__, "..", "..", "src")))
for file in files
if occursin(r".+\.jl\.\d+\.cov", file)
reg = Regex(string(".+\\.jl\\.$pid\\.cov"))
if occursin(reg, file)
rm(joinpath(dir, file))
end
end

# clean up coverage files for this file
dir, _, files = first(walkdir(@__DIR__))
for file in files
if occursin(r"coverage_example\.jl\.\d+\.cov", file)
reg = Regex(string("coverage_example\\.jl\\.$pid\\.cov"))
if occursin(reg, file)
rm(joinpath(dir, file))
end
end
end

try
# delete any present coverage files
cleanup_coverage_files()
let
local pid
try
# using DiffUtils
@testset "code coverage" begin
io = IOBuffer()
filepath = normpath(@__DIR__, "coverage_example.jl")
cmd = `$(Base.julia_cmd()) --startup=no --project=$(dirname(dirname(@__DIR__)))
--code-coverage=user $filepath`
p = run(pipeline(cmd; stdout=io); wait=false)
pid = Libc.getpid(p)
wait(p)
out = String(take!(io))
@test out == "1 2 fizz 4 "

#using DiffUtils

@testset "code coverage" begin
out = read(`$(Base.julia_cmd()) --startup=no --project=$(dirname(dirname(@__DIR__))) --code-coverage=user
$(joinpath(@__DIR__(), "coverage_example.jl"))`, String)
@test out == "1 2 fizz 4 "

dir, _, files = first(walkdir(@__DIR__))
i = findfirst(contains(r"coverage_example\.jl\.\d+\.cov"), files)
i === nothing && error("no coverage files found in $dir: $files")
cov_file = joinpath(dir, files[i])
cov_data = read(cov_file, String)
expected = read(joinpath(dir, "coverage_example.jl.cov"), String)
if Sys.iswindows()
cov_data = replace(cov_data, "\r\n" => "\n")
expected = replace(cov_data, "\r\n" => "\n")
dir, _, files = first(walkdir(@__DIR__))
i = findfirst(contains(r"coverage_example\.jl\.\d+\.cov"), files)
i === nothing && error("no coverage files found in $dir: $files")
cov_file = joinpath(dir, files[i])
cov_data = read(cov_file, String)
expected = read(joinpath(dir, "coverage_example.jl.cov"), String)
if Sys.iswindows()
cov_data = replace(cov_data, "\r\n" => "\n")
expected = replace(cov_data, "\r\n" => "\n")
end
#if cov_data != expected
# DiffUtils.diff(cov_data, expected)
#end
@test cov_data == expected
end
finally
if @isdefined(pid)
# clean up generated files
cleanup_coverage_files(pid)
end
#if cov_data != expected
# DiffUtils.diff(cov_data, expected)
#end
@test cov_data == expected
end
finally
# clean up generated files
cleanup_coverage_files()
end

0 comments on commit 84bde0f

Please sign in to comment.