Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert back to our hand-rolled test runner. #658

Merged
merged 5 commits into from
Jan 13, 2025
Merged

Revert back to our hand-rolled test runner. #658

merged 5 commits into from
Jan 13, 2025

Conversation

maleadt
Copy link
Member

@maleadt maleadt commented Jan 10, 2025

I became annoyed by ReTestItems.jl being clunky, resulting in ugly output, and breaking my workflow of being able to run tests in isolation, so let's go back to our trusty old JuliaGPU flavored test runner.

Before:

[ Info: Scanning for test items in project `GPUCompiler` at paths: /home/tim/Julia/pkg/GPUCompiler
[ Info: Finished scanning for test items in 1.1 seconds. Scheduling 11 tests on pid 583068 with 4 worker processes and 1 threads per worker.
[ Info: Starting test workers
  Worker 583099:  [ Info: Starting test worker 1 on pid = 583099, with 1 threads
  Worker 583106:  [ Info: Starting test worker 4 on pid = 583106, with 1 threads
[ Info: Starting running test items
  Worker 583103:  [ Info: Starting test worker 2 on pid = 583103, with 1 threads
  Worker 583104:  [ Info: Starting test worker 3 on pid = 583104, with 1 threads
  Worker 583099:  16:43:20 | maxrss  0.8% | mem 66.6% | START ( 1/11) test item "Aqua" at test/aqua_tests.jl:1
  Worker 583106:  16:43:20 | maxrss  0.8% | mem 66.7% | START ( 4/11) test item "PTX precompile" at test/ptx_tests.jl:354
  Worker 583103:  16:43:20 | maxrss  0.8% | mem 66.7% | START ( 2/11) test item "GCN" at test/gcn_tests.jl:1
  Worker 583104:  16:43:21 | maxrss  0.8% | mem 66.7% | START ( 3/11) test item "native" at test/native_tests.jl:1
  Worker 583106:  16:43:25 | maxrss  0.8% | mem 67.3% | DONE  ( 4/11) test item "PTX precompile" 4.8 secs (10.2% compile, 0.6% recompile, 0.3% GC), 1.13 M allocs (64.139 MB)
  Worker 583103:  16:43:26 | maxrss  0.8% | mem 67.3% | DONE  ( 2/11) test item "GCN" 5.0 secs (93.6% compile, 1.0% recompile, 2.4% GC), 7.64 M allocs (415.423 MB)
  Worker 583106:  16:43:26 | maxrss  0.8% | mem 67.4% | START ( 5/11) test item "SPIRV" at test/spirv_tests.jl:1
  Worker 583103:  16:43:26 | maxrss  0.8% | mem 67.3% | START ( 6/11) test item "Metal" at test/metal_tests.jl:1
  Worker 583106:  16:43:30 | maxrss  0.8% | mem 68.2% | DONE  ( 5/11) test item "SPIRV" 3.7 secs (96.7% compile, 6.2% recompile, 1.2% GC), 7.88 M allocs (431.471 MB)
  Worker 583106:  16:43:30 | maxrss  0.8% | mem 68.3% | START ( 7/11) test item "util" at test/util_tests.jl:1
  Worker 583099:  16:43:30 | maxrss  0.8% | mem 68.0% | DONE  ( 1/11) test item "Aqua" 10.0 secs (47.0% compile, 1.7% GC), 11.42 M allocs (681.054 MB)
  Worker 583103:  16:43:31 | maxrss  0.9% | mem 68.0% | DONE  ( 6/11) test item "Metal" 4.5 secs (96.3% compile, 1.0% recompile, 1.3% GC), 9.92 M allocs (526.941 MB)
  Worker 583099:  16:43:31 | maxrss  0.9% | mem 68.0% | START ( 8/11) test item "BPF" at test/bpf_tests.jl:1
  Worker 583103:  16:43:31 | maxrss  0.9% | mem 68.0% | START ( 9/11) test item "native precompile" at test/native_tests.jl:568
  Worker 583104:  16:43:31 | maxrss  0.9% | mem 68.0% | DONE  ( 3/11) test item "native" 10.3 secs (92.0% compile, 1.0% recompile, 2.0% GC), 20.73 M allocs (1.111 GB)
┌ Warning: Test item "native" at test/native_tests.jl:1 contains test sets without tests:
│ "allowed mutable types"
└ @ ReTestItems ~/.julia/packages/ReTestItems/ecp6j/src/log_capture.jl:324
  Worker 583106:  16:43:32 | maxrss  0.8% | mem 68.2% | DONE  ( 7/11) test item "util" 1.7 secs (65.9% compile, 6.9% recompile), 1.51 M allocs (81.228 MB)
  Worker 583106:  16:43:32 | maxrss  0.8% | mem 68.2% | START (11/11) test item "examples" at test/examples_tests.jl:1
  Worker 583104:  16:43:32 | maxrss  1.0% | mem 68.2% | START (10/11) test item "PTX" at test/ptx_tests.jl:1
  Worker 583106:  16:43:34 | maxrss  0.8% | mem 68.2% | DONE  (11/11) test item "examples" 1.9 secs (13.3% compile), 637.61 K allocs (37.795 MB)
  Worker 583106:  [583106] signal 15: Terminated
in expression starting at none:1

  Worker 583104:  16:43:35 | maxrss  1.0% | mem 67.7% | DONE  (10/11) test item "PTX" 3.0 secs (86.9% compile, 6.4% recompile, 1.2% GC), 6.20 M allocs (336.914 MB)
  Worker 583104:  [583104] signal 15: Terminated
in expression starting at none:1

  Worker 583099:  16:43:36 | maxrss  0.9% | mem 66.9% | DONE  ( 8/11) test item "BPF" 4.7 secs (98.3% compile, 1.0% recompile, 0.9% GC), 7.77 M allocs (420.868 MB)
  Worker 583099:  [583099] signal 15: Terminated
in expression starting at none:1

  Worker 583103:  16:43:36 | maxrss  0.9% | mem 66.6% | DONE  ( 9/11) test item "native precompile" 5.2 secs (44.3% compile, 0.1% recompile, 0.4% GC), 5.15 M allocs (277.427 MB)
  Worker 583103:  [583103] signal 15: Terminated
in expression starting at none:1

Test Summary: | Pass  Broken  Total   Time
GPUCompiler   |  223       1    224  21.7s
92.82user 3.01system 0:26.52elapsed 361%CPU (0avgtext+0avgdata 818712maxresident)k
2912inputs+3056outputs (4major+1018463minor)pagefaults 0swaps

After:

[ Info: Running 4 tests in parallel. If this is too many, specify the `--jobs` argument to the tests, or set the JULIA_CPU_THREADS environment variable.
               |          | ---------------- CPU ---------------- |
Test  (Worker) | Time (s) | GC (s) | GC % | Alloc (MB) | RSS (MB) |
gcn        (4) |     6.44 |   0.04 |  0.7 |     386.73 |   574.33 |
      From worker 4:	[ Info: safe_info
      From worker 4:	┌ Warning: safe_warn
      From worker 4:	└ @ Main ~/Julia/pkg/GPUCompiler/src/utils.jl:59
      From worker 4:	┌ Error: safe_error
      From worker 4:	└ @ Main ~/Julia/pkg/GPUCompiler/src/utils.jl:59
      From worker 4:	[ Info: info
      From worker 4:	"safe_show" = "safe_show"
      From worker 4:	┌ Warning: warn
      From worker 4:	└ @ Main ~/Julia/pkg/GPUCompiler/test/utils.jl:81
      From worker 4:	┌ Error: error
      From worker 4:	└ @ Main ~/Julia/pkg/GPUCompiler/test/utils.jl:83
      From worker 4:	"show" = "show"
      From worker 2:	WARNING: method definition for #440#invalid_kernel at /home/tim/Julia/pkg/GPUCompiler/test/native.jl:195 declares type variable unbound but does not use it.
utils      (4) |     2.26 |   0.01 |  0.4 |     125.68 |   574.33 |
metal      (5) |    10.19 |   0.09 |  0.9 |     716.18 |   562.59 |
bpf        (5) |     1.04 |   0.01 |  0.8 |     136.87 |   563.92 |
spirv      (4) |     2.60 |   0.02 |  0.9 |     262.29 |   582.68 |
ptx        (3) |    13.42 |   0.06 |  0.4 |     569.72 |   576.74 |
examples   (5) |     2.30 |   0.00 |  0.0 |      44.71 |   563.92 |
native     (2) |    17.48 |   0.15 |  0.9 |    1241.24 |   637.63 |
aqua       (4) |    10.20 |   0.08 |  0.8 |     626.49 |   660.91 |
Testing finished in 25 seconds, 830 milliseconds

Test Summary: | Pass  Broken  Total  Time
  Overall     |  223       1    224
    SUCCESS
106.60user 2.81system 0:33.53elapsed 326%CPU (0avgtext+0avgdata 832120maxresident)k
0inputs+2344outputs (1major+1031671minor)pagefaults 0swaps

A bit slower -- I guess we're doing too much on each worker by always including setup.jl -- but not really a deal breaker.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some suggestions could not be made:

  • test/bpf.jl
    • lines 4-7
    • lines 29-29
  • test/examples.jl
    • lines 1-1
    • lines 9-9
    • lines 21-21
  • test/gcn.jl
    • lines 3-12
    • lines 20-59
    • lines 78-130
    • lines 172-208
  • test/helpers/bpf.jl
    • lines 7-13
  • test/helpers/gcn.jl
    • lines 7-17
  • test/helpers/metal.jl
    • lines 7-17
  • test/helpers/native.jl
    • lines 13-22
    • lines 64-65
    • lines 73-76
  • test/helpers/precompile.jl
    • lines 2-2
    • lines 15-16
    • lines 29-29
    • lines 59-59
  • test/helpers/ptx.jl
    • lines 8-8
    • lines 38-50
  • test/helpers/runtime.jl
    • lines 2-8
  • test/helpers/spirv.jl
    • lines 7-17
  • test/helpers/test.jl
    • lines 3-3
    • lines 22-29
  • test/metal.jl
    • lines 3-121
  • test/native.jl
    • lines 9-14
    • lines 40-44
    • lines 73-77
    • lines 110-110
    • lines 127-127
    • lines 136-136
    • lines 151-151
    • lines 163-163
    • lines 177-252
    • lines 289-346
    • lines 373-447
    • lines 493-514
    • lines 542-622
  • test/ptx.jl
    • lines 3-102
    • lines 130-133
    • lines 143-148
    • lines 159-191
    • lines 205-255
    • lines 300-336
    • lines 351-397
  • test/runtests.jl
    • lines 392-393
  • test/spirv.jl
    • lines 3-66
  • test/utils.jl
    • lines 2-5
    • lines 31-31
    • lines 40-43

Comment on lines +8 to +9
function extract_flag!(args, flag, default=nothing)
for f in args
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
function extract_flag!(args, flag, default=nothing)
for f in args
function extract_flag!(args, flag, default = nothing)
val = parse(typeof(default), val)

end
do_help, _ = extract_flag!(ARGS, "--help")
if do_help
println("""
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
println("""
println(
"""

--quickfail Fail the entire run as soon as a single test errored.
--jobs=N Launch `N` processes to perform tests (default: Sys.CPU_THREADS).

Remaining arguments filter the tests that will be executed.""")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Remaining arguments filter the tests that will be executed.""")
Remaining arguments filter the tests that will be executed."""
)

Comment on lines +53 to +76
# find Julia files
filter!(files) do file
endswith(file, ".jl") && file !== "setup.jl" && file !== "runtests.jl"
end
isempty(files) && continue
basename(rootpath) == "helpers" && continue

# strip extension
files = map(files) do file
file[1:end-3]
end

# prepend subdir
subdir = relpath(rootpath, @__DIR__)
if subdir != "."
files = map(files) do file
joinpath(subdir, file)
end
end

@dispose ctx=Context() begin
# XXX: some back-ends do not support opaque pointers
if ti.name in ["Metal"] && !supports_typed_pointers(ctx)
return false
end
# unify path separators
files = map(files) do file
replace(file, path_separator => '/')
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# find Julia files
filter!(files) do file
endswith(file, ".jl") && file !== "setup.jl" && file !== "runtests.jl"
end
isempty(files) && continue
basename(rootpath) == "helpers" && continue
# strip extension
files = map(files) do file
file[1:end-3]
end
# prepend subdir
subdir = relpath(rootpath, @__DIR__)
if subdir != "."
files = map(files) do file
joinpath(subdir, file)
end
end
@dispose ctx=Context() begin
# XXX: some back-ends do not support opaque pointers
if ti.name in ["Metal"] && !supports_typed_pointers(ctx)
return false
end
# unify path separators
files = map(files) do file
replace(file, path_separator => '/')
end
# find Julia files
filter!(files) do file
endswith(file, ".jl") && file !== "setup.jl" && file !== "runtests.jl"
end
isempty(files) && continue
basename(rootpath) == "helpers" && continue
# strip extension
file[1:(end - 3)]
# prepend subdir
subdir = relpath(rootpath, @__DIR__)
if subdir != "."
files = map(files) do file
joinpath(subdir, file)
end
end
# unify path separators
files = map(files) do file
replace(file, path_separator => '/')
end
append!(all_tests, files)
for file in files
test_runners[file] = () -> include("$(@__DIR__)/$file.jl")
end

Comment on lines +102 to +104
filter!(tests) do test
any(arg->startswith(test, arg), ARGS)
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
filter!(tests) do test
any(arg->startswith(test, arg), ARGS)
end
filter!(tests) do test
any(arg -> startswith(test, arg), ARGS)
end

Comment on lines +309 to +312
foreach(task -> begin
istaskstarted(task) || return
istaskdone(task) && return
try
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
foreach(task -> begin
istaskstarted(task) || return
istaskdone(task) && return
try
foreach(
task -> begin
schedule(task, InterruptException(); error = true)
@error "InterruptException" exception = ex, catch_backtrace()
end, all_tasks
)

Comment on lines +329 to +330
schedule(stdin_monitor, InterruptException(); error=true)
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
schedule(stdin_monitor, InterruptException(); error=true)
end
schedule(stdin_monitor, InterruptException(); error = true)
elapsed = canonicalize(Dates.CompoundPeriod(t1 - t0))

Test.push_testset(resp)
Test.record(o_ts, resp)
Test.pop_testset()
elseif isa(resp, Tuple{Int,Int})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
elseif isa(resp, Tuple{Int,Int})
elseif isa(resp, Tuple{Int, Int})

old_print_setting = Test.TESTSET_PRINT_ENABLE[]
Test.TESTSET_PRINT_ENABLE[] = false

try
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
try
return try

Comment on lines +45 to +51
passes,fails,error,broken,c_passes,c_fails,c_errors,c_broken =
tc.passes, tc.fails, tc.errors, tc.broken, tc.cumulative_passes,
tc.cumulative_fails, tc.cumulative_errors, tc.cumulative_broken
else
passes,fails,errors,broken,c_passes,c_fails,c_errors,c_broken =
Test.get_test_counts(data[1])
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
passes,fails,error,broken,c_passes,c_fails,c_errors,c_broken =
tc.passes, tc.fails, tc.errors, tc.broken, tc.cumulative_passes,
tc.cumulative_fails, tc.cumulative_errors, tc.cumulative_broken
else
passes,fails,errors,broken,c_passes,c_fails,c_errors,c_broken =
Test.get_test_counts(data[1])
end
passes, fails, error, broken, c_passes, c_fails, c_errors, c_broken =
passes, fails, errors, broken, c_passes, c_fails, c_errors, c_broken =
data = (
(passes + c_passes, broken + c_broken),
data[2],
data[3],
data[4],
data[5],
)

@maleadt maleadt marked this pull request as draft January 10, 2025 15:54
Copy link

codecov bot commented Jan 10, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 72.11%. Comparing base (a9b5a82) to head (37d8298).
Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #658      +/-   ##
==========================================
- Coverage   73.69%   72.11%   -1.59%     
==========================================
  Files          24       24              
  Lines        3334     3310      -24     
==========================================
- Hits         2457     2387      -70     
- Misses        877      923      +46     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@maleadt maleadt marked this pull request as ready for review January 13, 2025 18:57
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some suggestions could not be made:

  • test/bpf.jl
    • lines 4-7
    • lines 29-29
  • test/examples.jl
    • lines 1-1
    • lines 9-9
    • lines 21-21
  • test/gcn.jl
    • lines 3-12
    • lines 20-59
    • lines 78-130
    • lines 172-208
  • test/helpers/bpf.jl
    • lines 7-13
  • test/helpers/gcn.jl
    • lines 7-17
  • test/helpers/metal.jl
    • lines 7-17
  • test/helpers/native.jl
    • lines 13-22
    • lines 64-65
    • lines 73-76
  • test/helpers/precompile.jl
    • lines 10-11
    • lines 20-20
    • lines 50-50
  • test/helpers/ptx.jl
    • lines 8-8
    • lines 38-50
  • test/helpers/runtime.jl
    • lines 2-8
  • test/helpers/spirv.jl
    • lines 7-17
  • test/helpers/test.jl
    • lines 3-3
    • lines 22-29
  • test/metal.jl
    • lines 3-121
  • test/native.jl
    • lines 9-14
    • lines 40-44
    • lines 73-77
    • lines 110-110
    • lines 127-127
    • lines 136-136
    • lines 151-151
    • lines 163-163
    • lines 177-252
    • lines 289-346
    • lines 373-447
    • lines 493-514
    • lines 542-553
  • test/ptx.jl
    • lines 3-102
    • lines 130-133
    • lines 143-148
    • lines 159-191
    • lines 205-255
    • lines 300-336
  • test/runtests.jl
    • lines 395-396
  • test/spirv.jl
    • lines 3-66
  • test/utils.jl
    • lines 2-5
    • lines 31-31
    • lines 40-43

using ReTestItems

export precompile_test_harness, check_presence, create_standalone

function precompile_test_harness(@nospecialize(f), testset::String)
@testset "$testset" begin
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
@testset "$testset" begin
return @testset "$testset" begin

Comment on lines +7 to +26
write(joinpath(load_path, "NativeBackend.jl"), :(
module NativeBackend
import NativeCompiler
using PrecompileTools

function kernel(A, x)
A[1] = x
return
end

let
job, _ = NativeCompiler.Native.create_job(kernel, (Vector{Int}, Int))
precompile(job)
end

# identity is foreign
@setup_workload begin
job, _ = NativeCompiler.Native.create_job(identity, (Int,))
@compile_workload begin
precompile(job)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
write(joinpath(load_path, "NativeBackend.jl"), :(
module NativeBackend
import NativeCompiler
using PrecompileTools
function kernel(A, x)
A[1] = x
return
end
let
job, _ = NativeCompiler.Native.create_job(kernel, (Vector{Int}, Int))
precompile(job)
end
# identity is foreign
@setup_workload begin
job, _ = NativeCompiler.Native.create_job(identity, (Int,))
@compile_workload begin
precompile(job)
write(
joinpath(load_path, "NativeBackend.jl"), :(
module NativeBackend
import NativeCompiler
using PrecompileTools
function kernel(A, x)
A[1] = x
return
end
let
job, _ = NativeCompiler.Native.create_job(kernel, (Vector{Int}, Int))
# identity is foreign
@setup_workload begin
job, _ = NativeCompiler.Native.create_job(identity, (Int,))
@compile_workload begin
precompile(job)
end
end
end
) |> string
)

@test check_presence(kernel_mi, token)

# check that identity survived
@test check_presence(identity_mi, token) broken=VERSION>=v"1.12.0-DEV.1268"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
@test check_presence(identity_mi, token) broken=VERSION>=v"1.12.0-DEV.1268"
@test check_presence(identity_mi, token) broken = VERSION >= v"1.12.0-DEV.1268"

Comment on lines +5 to +23
write(joinpath(load_path, "PTXBackend.jl"), :(
module PTXBackend
import PTXCompiler
using PrecompileTools

function kernel()
return
end

let
job, _ = PTXCompiler.PTX.create_job(kernel, ())
precompile(job)
end

# identity is foreign
@setup_workload begin
job, _ = PTXCompiler.PTX.create_job(identity, (Int,))
@compile_workload begin
precompile(job)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
write(joinpath(load_path, "PTXBackend.jl"), :(
module PTXBackend
import PTXCompiler
using PrecompileTools
function kernel()
return
end
let
job, _ = PTXCompiler.PTX.create_job(kernel, ())
precompile(job)
end
# identity is foreign
@setup_workload begin
job, _ = PTXCompiler.PTX.create_job(identity, (Int,))
@compile_workload begin
precompile(job)
write(
joinpath(load_path, "PTXBackend.jl"), :(
module PTXBackend
import PTXCompiler
using PrecompileTools
function kernel()
return
end
let
job, _ = PTXCompiler.PTX.create_job(kernel, ())
# identity is foreign
@setup_workload begin
job, _ = PTXCompiler.PTX.create_job(identity, (Int,))
@compile_workload begin
precompile(job)
end
end
end
) |> string
)

@test check_presence(kernel_mi, token)

# check that identity survived
@test check_presence(identity_mi, token) broken=VERSION>=v"1.12.0-DEV.1268"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
@test check_presence(identity_mi, token) broken=VERSION>=v"1.12.0-DEV.1268"
@test check_presence(identity_mi, token) broken = VERSION >= v"1.12.0-DEV.1268"

Comment on lines +312 to +315
foreach(task -> begin
istaskstarted(task) || return
istaskdone(task) && return
try
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
foreach(task -> begin
istaskstarted(task) || return
istaskdone(task) && return
try
foreach(
task -> begin
schedule(task, InterruptException(); error = true)
@error "InterruptException" exception = ex, catch_backtrace()
end, all_tasks
)

Comment on lines +332 to +333
schedule(stdin_monitor, InterruptException(); error=true)
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
schedule(stdin_monitor, InterruptException(); error=true)
end
schedule(stdin_monitor, InterruptException(); error = true)
elapsed = canonicalize(Dates.CompoundPeriod(t1 - t0))

Test.push_testset(resp)
Test.record(o_ts, resp)
Test.pop_testset()
elseif isa(resp, Tuple{Int,Int})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
elseif isa(resp, Tuple{Int,Int})
elseif isa(resp, Tuple{Int, Int})

old_print_setting = Test.TESTSET_PRINT_ENABLE[]
Test.TESTSET_PRINT_ENABLE[] = false

try
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
try
return try

Comment on lines +45 to +51
passes,fails,error,broken,c_passes,c_fails,c_errors,c_broken =
tc.passes, tc.fails, tc.errors, tc.broken, tc.cumulative_passes,
tc.cumulative_fails, tc.cumulative_errors, tc.cumulative_broken
else
passes,fails,errors,broken,c_passes,c_fails,c_errors,c_broken =
Test.get_test_counts(data[1])
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
passes,fails,error,broken,c_passes,c_fails,c_errors,c_broken =
tc.passes, tc.fails, tc.errors, tc.broken, tc.cumulative_passes,
tc.cumulative_fails, tc.cumulative_errors, tc.cumulative_broken
else
passes,fails,errors,broken,c_passes,c_fails,c_errors,c_broken =
Test.get_test_counts(data[1])
end
passes, fails, error, broken, c_passes, c_fails, c_errors, c_broken =
passes, fails, errors, broken, c_passes, c_fails, c_errors, c_broken =
data = (
(passes + c_passes, broken + c_broken),
data[2],
data[3],
data[4],
data[5],
)

@maleadt maleadt merged commit 8ae152b into master Jan 13, 2025
20 checks passed
@maleadt maleadt deleted the tb/test branch January 13, 2025 18:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant