|
25 | 25 | @test is_target_dependency(dep)
|
26 | 26 | @test is_build_dependency(dep)
|
27 | 27 | @test is_runtime_dependency(dep)
|
| 28 | + @test !is_top_level_dependency(dep) |
28 | 29 | @test getname(dep) == name
|
29 | 30 | @test getname(PackageSpec(; name = name)) == name
|
30 | 31 | @test getpkg(dep) == PackageSpec(; name = name)
|
|
60 | 61 | @test is_target_dependency(run_dep)
|
61 | 62 | @test !is_build_dependency(run_dep)
|
62 | 63 | @test is_runtime_dependency(run_dep)
|
| 64 | + @test !is_top_level_dependency(run_dep) |
63 | 65 | @test getname(run_dep) == name
|
64 | 66 | @test getname(PackageSpec(; name)) == name
|
65 | 67 | @test getpkg(run_dep) == PackageSpec(; name)
|
|
76 | 78 | @test is_target_dependency(build_dep)
|
77 | 79 | @test is_build_dependency(build_dep)
|
78 | 80 | @test !is_runtime_dependency(build_dep)
|
| 81 | + @test !is_top_level_dependency(build_dep) |
79 | 82 | @test getname(build_dep) == build_name
|
80 | 83 | @test getname(PackageSpec(; name = build_name)) == build_name
|
81 | 84 | @test getpkg(build_dep) == PackageSpec(; name = build_name)
|
|
87 | 90 | @test !is_target_dependency(host_dep)
|
88 | 91 | @test is_build_dependency(host_dep)
|
89 | 92 | @test !is_runtime_dependency(host_dep)
|
| 93 | + @test !is_top_level_dependency(host_dep) |
90 | 94 | @test getname(host_dep) == host_name
|
91 | 95 | @test getname(PackageSpec(; name = host_name)) == host_name
|
92 | 96 | @test getpkg(host_dep) == PackageSpec(; name = host_name)
|
93 | 97 |
|
| 98 | + top_level_name = "MPIPreferences" |
| 99 | + @test_throws ArgumentError Dependency(PackageSpec(; name = top_level_name); platforms=supported_platforms(; experimental=true, exclude=!Sys.isapple), |
| 100 | + top_level=true) |
| 101 | + |
| 102 | + top_level_dep = Dependency(PackageSpec(; name = top_level_name); top_level=true) |
| 103 | + @test is_top_level_dependency(top_level_dep) |
| 104 | + |
94 | 105 | @testset "Filter dependencies by platform" begin
|
95 | 106 | @test filter_platforms([dep, dep_buildver, dep_compat], Platform("x86_64", "linux"; cxxstring_abi="cxx03")) == [dep_compat]
|
96 | 107 | @test filter_platforms([dep, dep_buildver, dep_compat], Platform("x86_64", "macos")) == [dep, dep_compat]
|
97 | 108 | end
|
98 | 109 |
|
99 | 110 | @testset "JSON (de)serialization" begin
|
100 | 111 | jdep = JSON.lower(dep)
|
101 |
| - @test jdep == Dict("type" => "dependency", "name" => name, "uuid" => nothing, "compat" => "", "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0, "platforms" => ["x86_64-apple-darwin", "aarch64-apple-darwin"]) |
| 112 | + @test jdep == Dict("type" => "dependency", "name" => name, "uuid" => nothing, "compat" => "", "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0, "platforms" => ["x86_64-apple-darwin", "aarch64-apple-darwin"], "top_level" => false) |
102 | 113 | @test dependencify(jdep) == dep
|
103 | 114 |
|
104 | 115 | jrun_dep = JSON.lower(run_dep)
|
105 |
| - @test jrun_dep == Dict("type" => "runtimedependency", "name" => name, "uuid" => nothing, "compat" => "", "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0, "platforms" => ["any"]) |
| 116 | + @test jrun_dep == Dict("type" => "runtimedependency", "name" => name, "uuid" => nothing, "compat" => "", "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0, "platforms" => ["any"], "top_level" => false) |
106 | 117 | @test dependencify(jrun_dep) == run_dep
|
107 | 118 |
|
108 | 119 | jdep_buildver = JSON.lower(dep_buildver)
|
109 |
| - @test jdep_buildver == Dict("type" => "dependency", "name" => name, "uuid" => nothing, "compat" => "~1.2", "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0, "platforms" => ["x86_64-linux-gnu-cxx11"]) |
| 120 | + @test jdep_buildver == Dict("type" => "dependency", "name" => name, "uuid" => nothing, "compat" => "~1.2", "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0, "platforms" => ["x86_64-linux-gnu-cxx11"], "top_level" => false) |
110 | 121 | # the build_version is currently not serialized, so the following test fails
|
111 | 122 | @test dependencify(jdep_buildver) == dep_buildver broken=true
|
112 | 123 |
|
113 | 124 | jbuild_dep = JSON.lower(build_dep)
|
114 |
| - @test jbuild_dep == Dict("type" => "builddependency", "name" => build_name, "uuid" => nothing, "compat" => "", "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0, "platforms" => ["any"]) |
| 125 | + @test jbuild_dep == Dict("type" => "builddependency", "name" => build_name, "uuid" => nothing, "compat" => "", "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0, "platforms" => ["any"], "top_level" => false) |
115 | 126 | @test dependencify(jbuild_dep) == build_dep
|
116 | 127 |
|
117 | 128 | jhost_dep = JSON.lower(host_dep)
|
118 |
| - @test jhost_dep == Dict("type" => "hostdependency", "name" => host_name, "uuid" => nothing, "compat" => "", "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0, "platforms" => ["any"]) |
| 129 | + @test jhost_dep == Dict("type" => "hostdependency", "name" => host_name, "uuid" => nothing, "compat" => "", "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0, "platforms" => ["any"], "top_level" => false) |
119 | 130 | @test dependencify(jhost_dep) == host_dep
|
120 | 131 |
|
121 | 132 | full_dep = Dependency(PackageSpec(; name = "Baz_jll", uuid = "00000000-1111-2222-3333-444444444444", version = PKG_VERSIONS.VersionSpec("3.1.4")))
|
122 | 133 | jfull_dep = JSON.lower(full_dep)
|
123 |
| - @test jfull_dep == Dict("type" => "dependency", "name" => "Baz_jll", "uuid" => "00000000-1111-2222-3333-444444444444", "compat" => "", "version-major" => 0x3, "version-minor" => 0x1, "version-patch" => 0x4, "platforms" => ["any"]) |
| 134 | + @test jfull_dep == Dict("type" => "dependency", "name" => "Baz_jll", "uuid" => "00000000-1111-2222-3333-444444444444", "compat" => "", "version-major" => 0x3, "version-minor" => 0x1, "version-patch" => 0x4, "platforms" => ["any"], "top_level" => false) |
124 | 135 | @test dependencify(jfull_dep) == full_dep
|
125 | 136 | @test_throws ErrorException dependencify(Dict("type" => "git"))
|
| 137 | + |
| 138 | + jtop_level_dep = JSON.lower(top_level_dep) |
| 139 | + @test jtop_level_dep == Dict("type" => "dependency", "name" => "MPIPreferences", "uuid" => nothing, "compat" => "", "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0, "platforms" => ["any"], "top_level" => true) |
| 140 | + @test dependencify(jtop_level_dep) == top_level_dep |
126 | 141 | end
|
127 | 142 |
|
128 | 143 | @testset "Setup" begin
|
|
0 commit comments