Skip to content

Commit

Permalink
testdefs: make sure that if a test set changes the active project, th…
Browse files Browse the repository at this point in the history
…ey change it back when they're done (#51029)

We already check the following for mutation by a test set:
1. DEPOT_PATH
2. LOAD_PATH
3. ENV

So this PR just adds the active project to the list of things we check.

Changing the active project during a test set can definitely have
negative effects on subsequent test sets that are run on the same
worker, so we want to make sure if a test set changes the active
project, that they change it back when they're done.
  • Loading branch information
DilumAluthge authored and NHDaly committed Sep 20, 2023
1 parent b4b7dbc commit ec24d5d
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions test/testdefs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ function runtests(name, path, isolate=true; seed=nothing)
original_depot_path = copy(Base.DEPOT_PATH)
original_load_path = copy(Base.LOAD_PATH)
original_env = copy(ENV)
original_project = Base.active_project()

Base.include(m, "$path.jl")

Expand Down Expand Up @@ -63,6 +64,17 @@ function runtests(name, path, isolate=true; seed=nothing)
error(msg)
end
end
if Base.active_project() != original_project
msg = "The `$(name)` test set changed the active project and did not restore the original value"
@error(
msg,
original_project,
Base.active_project(),
testset_name = name,
testset_path = path,
)
error(msg)
end
end
rss = Sys.maxrss()
#res_and_time_data[1] is the testset
Expand Down

0 comments on commit ec24d5d

Please sign in to comment.