@@ -1034,6 +1034,16 @@ end
1034
1034
end
1035
1035
1036
1036
@testset " Extensions" begin
1037
+ test_ext = """
1038
+ function test_ext(parent::Module, ext::Symbol)
1039
+ _ext = Base.get_extension(parent, ext)
1040
+ _ext isa Module || error("expected extension \$ ext to be loaded")
1041
+ _pkgdir = pkgdir(_ext)
1042
+ _pkgdir == pkgdir(parent) != nothing || error("unexpected extension \$ ext pkgdir path: \$ _pkgdir")
1043
+ _pkgversion = pkgversion(_ext)
1044
+ _pkgversion == pkgversion(parent) || error("unexpected extension \$ ext version: \$ _pkgversion")
1045
+ end
1046
+ """
1037
1047
depot_path = mktempdir ()
1038
1048
try
1039
1049
proj = joinpath (@__DIR__ , " project" , " Extensions" , " HasDepWithExtensions.jl" )
@@ -1044,13 +1054,15 @@ end
1044
1054
cmd = """
1045
1055
$load_distr
1046
1056
begin
1057
+ $ew $test_ext
1047
1058
$ew push!(empty!(DEPOT_PATH), $(repr (depot_path)) )
1048
1059
using HasExtensions
1049
1060
$ew using HasExtensions
1050
1061
$ew Base.get_extension(HasExtensions, :Extension) === nothing || error("unexpectedly got an extension")
1051
1062
$ew HasExtensions.ext_loaded && error("ext_loaded set")
1052
1063
using HasDepWithExtensions
1053
1064
$ew using HasDepWithExtensions
1065
+ $ew test_ext(HasExtensions, :Extension)
1054
1066
$ew Base.get_extension(HasExtensions, :Extension).extvar == 1 || error("extvar in Extension not set")
1055
1067
$ew HasExtensions.ext_loaded || error("ext_loaded not set")
1056
1068
$ew HasExtensions.ext_folder_loaded && error("ext_folder_loaded set")
@@ -1100,11 +1112,12 @@ end
1100
1112
1101
1113
test_ext_proj = """
1102
1114
begin
1115
+ $test_ext
1103
1116
using HasExtensions
1104
1117
using ExtDep
1105
- Base.get_extension (HasExtensions, :Extension) isa Module || error("expected extension to load" )
1118
+ test_ext (HasExtensions, :Extension)
1106
1119
using ExtDep2
1107
- Base.get_extension (HasExtensions, :ExtensionFolder) isa Module || error("expected extension to load" )
1120
+ test_ext (HasExtensions, :ExtensionFolder)
1108
1121
end
1109
1122
"""
1110
1123
for compile in (` --compiled-modules=no` , ` ` )
0 commit comments