@@ -5,9 +5,12 @@ using BinaryBuilderBase: getname, getpkg, dependencify, destdir, PKG_VERSIONS, g
5
5
using JSON
6
6
using LibGit2
7
7
using ObjectFile
8
+ using ConstructionBase
8
9
9
- # Define equality between dependencies, in order to carry out the tests below
10
- Base.:(== )(a:: AbstractDependency , b:: AbstractDependency ) = getpkg (a) == getpkg (b)
10
+ # Define equality between dependencies, in order to carry out the tests below.
11
+ # In some cases we want to test that only the PackageSpec match, instead of the full struct.
12
+ Base.:(== )(a:: D , b:: D ) where {D<: AbstractDependency } = getproperties (a) == getproperties (b)
13
+ Base. isapprox (a:: D , b:: D ) where {D<: AbstractDependency } = getpkg (a) == getpkg (b)
11
14
12
15
function with_temp_project (f:: Function )
13
16
mktempdir () do dir
20
23
@testset " Dependencies" begin
21
24
name = " Foo_jll"
22
25
dep = Dependency (PackageSpec (; name = name); platforms= supported_platforms (; experimental= true , exclude= ! Sys. isapple))
23
- @test Dependency (name) == dep
26
+ @test Dependency (name) ≈ dep
24
27
@test ! is_host_dependency (dep)
25
28
@test is_target_dependency (dep)
26
29
@test is_build_dependency (dep)
40
43
41
44
# the same but with compat info
42
45
dep_buildver = Dependency (PackageSpec (; name = name), build_version; compat = " ~1.2" , platforms= [Platform (" x86_64" , " linux" ; cxxstring_abi= " cxx11" )])
43
- @test Dependency (name, build_version) == dep_buildver
46
+ @test Dependency (name, build_version) ≈ dep_buildver
44
47
@test getname (dep_buildver) == name
45
48
@test getpkg (dep_buildver) == PackageSpec (; name = name, version = PKG_VERSIONS. VersionSpec (build_version))
46
49
@test getcompat (dep_buildver) == " ~1.2"
47
50
48
51
# the same but only with compat specifier
49
52
dep_compat = Dependency (PackageSpec (; name); compat = " 2, ~$(build_version) " )
50
- @test Dependency (name, build_version) == dep_compat
53
+ @test Dependency (name, build_version) ≈ dep_compat
51
54
@test getname (dep_compat) == name
52
55
@test getpkg (dep_compat) == PackageSpec (; name, version = PKG_VERSIONS. VersionSpec (build_version))
53
56
@test getcompat (dep_compat) == " 2, ~$(build_version) "
56
59
@test_throws ArgumentError Dependency (PackageSpec (; name = name), build_version; compat = " 2.0" )
57
60
58
61
run_dep = RuntimeDependency (PackageSpec (; name); compat= " 3.14" )
59
- @test RuntimeDependency (name) == run_dep
62
+ @test RuntimeDependency (name) ≈ run_dep
60
63
@test ! is_host_dependency (run_dep)
61
64
@test is_target_dependency (run_dep)
62
65
@test ! is_build_dependency (run_dep)
69
72
# We should be able to convert a `Vector{RuntimeDependency}` to `Vector{Dependency}`
70
73
@test Dependency[RuntimeDependency (name; compat= " ~1.8" , platforms= [Platform (" aarch64" , " macos" ; cxxstring_abi= " cxx03" )])] ==
71
74
[Dependency (name; compat= " ~1.8" , platforms= [Platform (" aarch64" , " macos" ; cxxstring_abi= " cxx03" )])]
75
+ @test @test_logs ((:warn , r" was defined as top-level" ), Dependency[RuntimeDependency (name; top_level= true )]) ==
76
+ [@test_logs ((:warn , r" was defined as top-level" ), Dependency (name; top_level= true ))]
72
77
# If the version in the PackageSpec and the compat don't match, an error should be thrown
73
78
@test_throws ArgumentError RuntimeDependency (PackageSpec (; name, version= v " 1.2.3" ); compat = " 2.0" )
74
79
0 commit comments