|
1 | 1 | using Test
|
2 |
| -using Pkg, Base.BinaryPlatforms |
| 2 | +using Base.BinaryPlatforms |
| 3 | +using Pkg |
| 4 | +using Pkg.Types: VersionSpec |
3 | 5 | using BinaryBuilderBase
|
4 | 6 | using BinaryBuilderBase: getname, getpkg, dependencify
|
5 | 7 | using JSON
|
|
17 | 19 |
|
18 | 20 | @testset "Dependencies" begin
|
19 | 21 | name = "Foo_jll"
|
| 22 | + |
20 | 23 | dep = Dependency(PackageSpec(; name = name))
|
21 | 24 | @test Dependency(name) == dep
|
22 | 25 | @test getname(dep) == name
|
23 |
| - @test getname(PackageSpec(; name = name)) == name |
24 | 26 | @test getpkg(dep) == PackageSpec(; name = name)
|
25 | 27 |
|
| 28 | + dep_version = Dependency(PackageSpec(; name = name, version = v"1")) |
| 29 | + @test getname(dep_version) == name |
| 30 | + @test getpkg(dep_version) == PackageSpec(; name = name, version = v"1") |
| 31 | + |
| 32 | + dep_vspec = Dependency(PackageSpec(; name = name, version = VersionSpec("1.1-1.4.5"))) |
| 33 | + @test getname(dep_vspec) == name |
| 34 | + @test getpkg(dep_vspec) == PackageSpec(; name = name, version = VersionSpec("1.1-1.4.5")) |
| 35 | + |
26 | 36 | build_version = v"1.2.3"
|
27 | 37 | dep_buildver = Dependency(PackageSpec(; name = name), build_version)
|
28 | 38 | @test Dependency(name, build_version) == dep_buildver
|
|
33 | 43 | build_dep = BuildDependency(PackageSpec(; name = build_name))
|
34 | 44 | @test BuildDependency(build_name) == build_dep
|
35 | 45 | @test getname(build_dep) == build_name
|
36 |
| - @test getname(PackageSpec(; name = build_name)) == build_name |
37 | 46 | @test getpkg(build_dep) == PackageSpec(; name = build_name)
|
38 | 47 |
|
39 | 48 | @testset "JSON (de)serialization" begin
|
40 | 49 | jdep = JSON.lower(dep)
|
41 |
| - @test jdep == Dict("type" => "dependency", "name" => name, "uuid" => nothing, "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0) |
| 50 | + @test jdep == Dict( |
| 51 | + "type" => "dependency", |
| 52 | + "name" => name, |
| 53 | + "uuid" => nothing, |
| 54 | + "version" => Dict( |
| 55 | + "ranges" => [ |
| 56 | + Dict( |
| 57 | + "lower" => Dict("t" => [0,0,0], "n" => 0), |
| 58 | + "upper" => Dict("t" => [0,0,0], "n" => 0) |
| 59 | + ) |
| 60 | + ] |
| 61 | + ) |
| 62 | + ) |
42 | 63 | @test dependencify(jdep) == dep
|
43 | 64 |
|
| 65 | + jdep_vspec = JSON.lower(dep_vspec) |
| 66 | + @test jdep_vspec == Dict( |
| 67 | + "type" => "dependency", |
| 68 | + "name" => name, |
| 69 | + "uuid" => nothing, |
| 70 | + "version" => Dict( |
| 71 | + "ranges" => [ |
| 72 | + Dict( |
| 73 | + "lower" => Dict("t" => [1,1,0], "n" => 2), |
| 74 | + "upper" => Dict("t" => [1,4,5], "n" => 3) |
| 75 | + ) |
| 76 | + ] |
| 77 | + ) |
| 78 | + ) |
| 79 | + @test dependencify(jdep_vspec) == dep_vspec |
| 80 | + |
44 | 81 | jdep_buildver = JSON.lower(dep_buildver)
|
45 |
| - @test jdep_buildver == Dict("type" => "dependency", "name" => name, "uuid" => nothing, "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0) |
| 82 | + @test jdep_buildver == Dict( |
| 83 | + "type" => "dependency", |
| 84 | + "name" => name, |
| 85 | + "uuid" => nothing, |
| 86 | + "version" => Dict( |
| 87 | + "ranges" => [ |
| 88 | + Dict( |
| 89 | + "lower" => Dict("t" => [0,0,0], "n" => 0), |
| 90 | + "upper" => Dict("t" => [0,0,0], "n" => 0) |
| 91 | + ) |
| 92 | + ] |
| 93 | + ) |
| 94 | + ) |
46 | 95 | # the build_version is currently not serialized, so the following test fails
|
47 | 96 | @test_broken dependencify(jdep_buildver) == dep_buildver
|
48 | 97 |
|
49 | 98 | jbuild_dep = JSON.lower(build_dep)
|
50 |
| - @test jbuild_dep == Dict("type" => "builddependency", "name" => build_name, "uuid" => nothing, "version-major" => 0x0, "version-minor" => 0x0, "version-patch" => 0x0) |
| 99 | + @test jbuild_dep == Dict( |
| 100 | + "type" => "builddependency", |
| 101 | + "name" => build_name, |
| 102 | + "uuid" => nothing, |
| 103 | + "version" => Dict( |
| 104 | + "ranges" => [ |
| 105 | + Dict( |
| 106 | + "lower" => Dict("t" => [0,0,0], "n" => 0), |
| 107 | + "upper" => Dict("t" => [0,0,0], "n" => 0) |
| 108 | + ) |
| 109 | + ] |
| 110 | + ) |
| 111 | + ) |
51 | 112 | @test dependencify(jbuild_dep) == build_dep
|
52 | 113 |
|
53 | 114 | full_dep = Dependency(PackageSpec(; name = "Baz_jll", uuid = "00000000-1111-2222-3333-444444444444", version = "3.1.4"))
|
54 | 115 | jfull_dep = JSON.lower(full_dep)
|
55 |
| - @test jfull_dep == Dict("type" => "dependency", "name" => "Baz_jll", "uuid" => "00000000-1111-2222-3333-444444444444", "version-major" => 0x3, "version-minor" => 0x1, "version-patch" => 0x4) |
| 116 | + @test jfull_dep == Dict( |
| 117 | + "type" => "dependency", |
| 118 | + "name" => "Baz_jll", |
| 119 | + "uuid" => "00000000-1111-2222-3333-444444444444", |
| 120 | + "version" => Dict( |
| 121 | + "ranges" => [ |
| 122 | + Dict( |
| 123 | + "lower" => Dict("t" => [3,1,4], "n" => 3), |
| 124 | + "upper" => Dict("t" => [3,1,4], "n" => 3) |
| 125 | + ) |
| 126 | + ] |
| 127 | + ) |
| 128 | + ) |
56 | 129 | @test dependencify(jfull_dep) == full_dep
|
57 | 130 | @test_throws ErrorException dependencify(Dict("type" => "git"))
|
58 | 131 | end
|
|
0 commit comments