Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "ReTestItems"
uuid = "817f1d60-ba6b-4fd5-9520-3cf149f6a823"
version = "1.34.0"
version = "1.34.1"

[deps]
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
Expand Down
2 changes: 2 additions & 0 deletions src/ReTestItems.jl
Original file line number Diff line number Diff line change
Expand Up @@ -528,8 +528,10 @@ end
function start_worker(proj_name, nworker_threads::String, worker_init_expr::Expr, ntestitems::Int; worker_num=nothing)
w = Worker(; threads=nworker_threads)
i = worker_num == nothing ? "" : " $worker_num"
proj = Base.active_project()
# remote_fetch here because we want to make sure the worker is all setup before starting to eval testitems
remote_fetch(w, quote
Base.set_active_project($proj)
using ReTestItems, Test
Test.TESTSET_PRINT_ENABLE[] = false
const GLOBAL_TEST_CONTEXT = ReTestItems.TestContext($proj_name, $ntestitems)
Expand Down
14 changes: 13 additions & 1 deletion test/integrationtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ const TEST_PKG_DIR = joinpath(_TEST_DIR, "packages")

# Note "DontPass.jl" is handled specifically below, as it's the package which doesn't have
# passing tests. Other packages should pass tests and be added here:
const TEST_PKGS = ("NoDeps.jl", "TestsInSrc.jl", "TestProjectFile.jl", "TestEndExpr.jl")
const TEST_PKGS = ("NoDeps.jl", "TestsInSrc.jl", "TestProjectFile.jl", "TestEndExpr.jl", "TestOnlyDeps.jl")

include(joinpath(_TEST_DIR, "_integration_test_tools.jl"))

Expand Down Expand Up @@ -1586,4 +1586,16 @@ end
end
end

# https://github.com/JuliaTesting/ReTestItems.jl/issues/228
@testset "issues/228 workers always activate test env" begin
using ReTestItems
pkg = joinpath(TEST_PKG_DIR, "TestOnlyDeps.jl")
cmd = ```
$(Base.julia_cmd()) --project=$(pkg) -e '
using ReTestItems, TestOnlyDeps
runtests(TestOnlyDeps; nworkers=1)'
```
run(addenv(cmd, "JULIA_PROJECT" => pkg))
end

end # integrationtests.jl testset
1 change: 1 addition & 0 deletions test/packages/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ See `test/integrationtests.jl`.
- *TestProjectFile.jl* - A package which has test-only dependencies declared in a `test/Project.toml`.
- *MonoRepo.jl* - A package which depends on local, unregistered sub-packages. See `MonoRepo.jl/README.md`.
- *TestEndExpr.jl* - A package which requires users to uphold an invariant which we would want to test is being upheld by all code run in the tests. This provides a use-case for the `test_end_expr` functionality.
- *TestOnlyDeps.jl* - A package with tests that use test-only dependencies. This provides a test case for https://github.com/JuliaTesting/ReTestItems.jl/issues/228 when tests are run with at least 1 worker and with `JULIA_PROJECT` set.
153 changes: 153 additions & 0 deletions test/packages/TestOnlyDeps.jl/Manifest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
# This file is machine-generated - editing it directly is not advised

julia_version = "1.10.2"
manifest_format = "2.0"
project_hash = "4aa9dd1cc0f1c38891f7a7adef47f97d0b97c130"

[[deps.ArgTools]]
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
version = "1.1.1"

[[deps.Artifacts]]
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"

[[deps.Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"

[[deps.Dates]]
deps = ["Printf"]
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"

[[deps.Downloads]]
deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"]
uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
version = "1.6.0"

[[deps.FileWatching]]
uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"

[[deps.InteractiveUtils]]
deps = ["Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"

[[deps.LibCURL]]
deps = ["LibCURL_jll", "MozillaCACerts_jll"]
uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"
version = "0.6.4"

[[deps.LibCURL_jll]]
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"]
uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
version = "8.4.0+0"

[[deps.LibGit2]]
deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"

[[deps.LibGit2_jll]]
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"]
uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5"
version = "1.6.4+0"

[[deps.LibSSH2_jll]]
deps = ["Artifacts", "Libdl", "MbedTLS_jll"]
uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"
version = "1.11.0+1"

[[deps.Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"

[[deps.Logging]]
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"

[[deps.Markdown]]
deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"

[[deps.MbedTLS_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
version = "2.28.2+1"

[[deps.MozillaCACerts_jll]]
uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
version = "2023.1.10"

[[deps.NetworkOptions]]
uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
version = "1.2.0"

[[deps.Pkg]]
deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
version = "1.10.0"

[[deps.Printf]]
deps = ["Unicode"]
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"

[[deps.REPL]]
deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"]
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"

[[deps.Random]]
deps = ["SHA"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"

[[deps.ReTestItems]]
deps = ["Dates", "Logging", "Pkg", "Serialization", "Sockets", "Test", "TestEnv"]
path = "../../.."
uuid = "817f1d60-ba6b-4fd5-9520-3cf149f6a823"
version = "1.34.0"

[[deps.SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
version = "0.7.0"

[[deps.Serialization]]
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"

[[deps.Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"

[[deps.TOML]]
deps = ["Dates"]
uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
version = "1.0.3"

[[deps.Tar]]
deps = ["ArgTools", "SHA"]
uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"
version = "1.10.0"

[[deps.Test]]
deps = ["InteractiveUtils", "Logging", "Random", "Serialization"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[[deps.TestEnv]]
deps = ["Pkg"]
git-tree-sha1 = "aec63ef091b11d67040b8b35d2dcdfdc4567c4d0"
uuid = "1e6cf692-eddd-4d53-88a5-2d735e33781b"
version = "1.102.2"

[[deps.UUIDs]]
deps = ["Random", "SHA"]
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"

[[deps.Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"

[[deps.Zlib_jll]]
deps = ["Libdl"]
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
version = "1.2.13+1"

[[deps.nghttp2_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
version = "1.52.0+1"

[[deps.p7zip_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
version = "17.4.0+2"
15 changes: 15 additions & 0 deletions test/packages/TestOnlyDeps.jl/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name = "TestOnlyDeps"
uuid = "76c907bd-870e-4a64-93bf-d19a8ad0be88"
version = "0.1.0"

[deps]
ReTestItems = "817f1d60-ba6b-4fd5-9520-3cf149f6a823"

[extras]
Example = "7876af07-990d-54b4-ab0e-23690620f79a"
ReTestItems = "817f1d60-ba6b-4fd5-9520-3cf149f6a823"
TOML = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["Example", "ReTestItems", "TOML", "Test"]
5 changes: 5 additions & 0 deletions test/packages/TestOnlyDeps.jl/src/TestOnlyDeps.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module TestOnlyDeps

greet() = print("Hello World!")

end # module TestOnlyDeps
10 changes: 10 additions & 0 deletions test/packages/TestOnlyDeps.jl/test/deps_tests.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
@testitem "use a test-only dep" begin
using Example
@test Example isa Module
end

@testitem "deps as expected" begin
using TOML, TestOnlyDeps
proj = TOML.parsefile(joinpath(pkgdir(TestOnlyDeps), "Project.toml"))
@test !haskey(proj["deps"], "Example")
end
6 changes: 6 additions & 0 deletions test/packages/TestOnlyDeps.jl/test/runtests.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
using ReTestItems
using TestOnlyDeps

nworkers = parse(Int, get(ENV, "RETESTITEMS_NWORKERS", "1"))
@assert nworkers > 0
runtests(TestOnlyDeps; nworkers)
Loading