@@ -1004,6 +1004,16 @@ end
1004
1004
end
1005
1005
1006
1006
@testset " Extensions" begin
1007
+ test_ext = """
1008
+ function test_ext(parent::Module, ext::Symbol)
1009
+ _ext = Base.get_extension(parent, ext)
1010
+ _ext isa Module || error("expected extension \$ ext to be loaded")
1011
+ _pkgdir = pkgdir(_ext)
1012
+ _pkgdir == pkgdir(parent) != nothing || error("unexpected extension \$ ext pkgdir path: \$ _pkgdir")
1013
+ _pkgversion = pkgversion(_ext)
1014
+ _pkgversion == pkgversion(parent) || error("unexpected extension \$ ext version: \$ _pkgversion")
1015
+ end
1016
+ """
1007
1017
depot_path = mktempdir ()
1008
1018
try
1009
1019
proj = joinpath (@__DIR__ , " project" , " Extensions" , " HasDepWithExtensions.jl" )
@@ -1014,13 +1024,15 @@ end
1014
1024
cmd = """
1015
1025
$load_distr
1016
1026
begin
1027
+ $ew $test_ext
1017
1028
$ew push!(empty!(DEPOT_PATH), $(repr (depot_path)) )
1018
1029
using HasExtensions
1019
1030
$ew using HasExtensions
1020
1031
$ew Base.get_extension(HasExtensions, :Extension) === nothing || error("unexpectedly got an extension")
1021
1032
$ew HasExtensions.ext_loaded && error("ext_loaded set")
1022
1033
using HasDepWithExtensions
1023
1034
$ew using HasDepWithExtensions
1035
+ $ew test_ext(HasExtensions, :Extension)
1024
1036
$ew Base.get_extension(HasExtensions, :Extension).extvar == 1 || error("extvar in Extension not set")
1025
1037
$ew HasExtensions.ext_loaded || error("ext_loaded not set")
1026
1038
$ew HasExtensions.ext_folder_loaded && error("ext_folder_loaded set")
@@ -1070,11 +1082,12 @@ end
1070
1082
1071
1083
test_ext_proj = """
1072
1084
begin
1085
+ $test_ext
1073
1086
using HasExtensions
1074
1087
using ExtDep
1075
- Base.get_extension (HasExtensions, :Extension) isa Module || error("expected extension to load" )
1088
+ test_ext (HasExtensions, :Extension)
1076
1089
using ExtDep2
1077
- Base.get_extension (HasExtensions, :ExtensionFolder) isa Module || error("expected extension to load" )
1090
+ test_ext (HasExtensions, :ExtensionFolder)
1078
1091
end
1079
1092
"""
1080
1093
for compile in (` --compiled-modules=no` , ` ` )
0 commit comments