/
index_test.go
200 lines (168 loc) · 6.02 KB
/
index_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
package resolver_test
import (
"log"
"strings"
"testing"
"pault.ag/go/debian/dependency"
"pault.ag/go/resolver"
)
// Test Binary Index {{{
var testBinaryIndex = `Package: android-tools-fastboot
Source: android-tools
Version: 4.2.2+git20130529-5.1
Installed-Size: 184
Maintainer: Android tools Maintainer <android-tools-devel@lists.alioth.debian.org>
Architecture: amd64
Depends: libc6 (>= 2.14), libselinux1 (>= 2.0.65), zlib1g (>= 1:1.2.3.4)
Description: Android Fastboot protocol CLI tool
Homepage: http://developer.android.com/guide/developing/tools/adb.html
Description-md5: 56b9309fa4fb2f92a313a815c7d7b5d3
Section: devel
Priority: extra
Filename: pool/main/a/android-tools/android-tools-fastboot_4.2.2+git20130529-5.1_amd64.deb
Size: 56272
MD5sum: cd858b3257b250747822ebeea6c69f4a
SHA1: 9d45825f07b2bc52edc787ba78966db0d4a48e69
SHA256: c094b7e53eb030957cdfab865f68c817d65bf6a1345b10d2982af38d042c3e84
Package: android-tools-fsutils
Source: android-tools
Version: 4.2.2+git20130529-5.1
Installed-Size: 504
Maintainer: Android tools Maintainer <android-tools-devel@lists.alioth.debian.org>
Architecture: amd64
Depends: python:any, libc6 (>= 2.14), libselinux1 (>= 2.0.65), zlib1g (>= 1:1.2.3.4)
Description: Android ext4 utilities with sparse support
Homepage: http://developer.android.com/guide/developing/tools/adb.html
Description-md5: 23135bc652e7b302961741f9bcff8397
Section: devel
Priority: extra
Filename: pool/main/a/android-tools/android-tools-fsutils_4.2.2+git20130529-5.1_amd64.deb
Size: 71900
MD5sum: 996732fc455acdcf4682de4f80a2dc95
SHA1: 5c2320913cc7cc46305390d8b3a7ef51f0a174ef
SHA256: 270ad759d1fef9cedf894c42b5f559d7386aa1ec4de4cc3880eb44fe8c53c833
Package: androidsdk-ddms
Source: androidsdk-tools
Version: 22.2+git20130830~92d25d6-1
Installed-Size: 211
Maintainer: Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>
Architecture: all
Depends: libandroidsdk-swtmenubar-java (= 22.2+git20130830~92d25d6-1), libandroidsdk-ddmlib-java (= 22.2+git20130830~92d25d6-1), libandroidsdk-ddmuilib-java (= 22.2+git20130830~92d25d6-1), libandroidsdk-sdkstats-java (= 22.2+git20130830~92d25d6-1), eclipse-rcp
Description: Graphical debugging tool for Android
Homepage: http://developer.android.com/tools/help/index.html
Description-md5: a2f559d2abf6ebb1d25bc3929d5aa2b0
Section: java
Priority: extra
Filename: pool/main/a/androidsdk-tools/androidsdk-ddms_22.2+git20130830~92d25d6-1_all.deb
Size: 132048
MD5sum: fde05f3552457e91a415c99ab2a2a514
SHA1: 82b05c97163ccfbbb10a52a5514882412a13ee43
SHA256: fa53e4f50349c5c9b564b8dc1da86c503b0baf56ab95a4ef6e204b6f77bfe70c
`
// }}}
/*
*
*/
func isok(t *testing.T, err error) {
if err != nil {
log.Printf("Error! Error is not nil!\n")
t.FailNow()
}
}
func notok(t *testing.T, err error) {
if err == nil {
log.Printf("Error! Error is nil!\n")
t.FailNow()
}
}
func assert(t *testing.T, expr bool) {
if !expr {
log.Printf("Assertion failed!")
t.FailNow()
}
}
/*
*
*/
func TestResolverBasics(t *testing.T) {
arch, err := dependency.ParseArch("amd64")
isok(t, err)
candidates, err := resolver.ReadFromBinaryIndex(
strings.NewReader(testBinaryIndex),
)
isok(t, err)
assert(t, len(*candidates) == 3)
dep, err := dependency.Parse("baz")
isok(t, err)
possi := dep.GetAllPossibilities()[0]
assert(t, candidates.Satisfies(*arch, possi) == false)
dep, err = dependency.Parse("android-tools-fsutils")
isok(t, err)
possi = dep.GetAllPossibilities()[0]
assert(t, candidates.Satisfies(*arch, possi) == true)
}
func TestResolverVersion(t *testing.T) {
arch, err := dependency.ParseArch("amd64")
isok(t, err)
candidates, err := resolver.ReadFromBinaryIndex(
strings.NewReader(testBinaryIndex),
)
isok(t, err)
assert(t, len(*candidates) == 3)
dep, err := dependency.Parse("android-tools-fsutils (>= 1.0)")
isok(t, err)
possi := dep.GetAllPossibilities()[0]
assert(t, candidates.Satisfies(*arch, possi) == true)
dep, err = dependency.Parse("android-tools-fsutils (>= 1:1.0)")
isok(t, err)
possi = dep.GetAllPossibilities()[0]
assert(t, candidates.Satisfies(*arch, possi) == false)
dep, err = dependency.Parse("android-tools-fsutils (<= 1:1.0)")
isok(t, err)
possi = dep.GetAllPossibilities()[0]
assert(t, candidates.Satisfies(*arch, possi) == true)
dep, err = dependency.Parse("android-tools-fsutils (<= 0:0)")
isok(t, err)
possi = dep.GetAllPossibilities()[0]
assert(t, candidates.Satisfies(*arch, possi) == false)
dep, err = dependency.Parse("android-tools-fsutils (= 4.2.2+git20130529-5.1)")
isok(t, err)
possi = dep.GetAllPossibilities()[0]
assert(t, candidates.Satisfies(*arch, possi) == true)
dep, err = dependency.Parse("android-tools-fsutils (= 2.2.2+git20130529-5.1)")
isok(t, err)
possi = dep.GetAllPossibilities()[0]
assert(t, candidates.Satisfies(*arch, possi) == false)
dep, err = dependency.Parse("android-tools-fsutils (<< 4.2.2+git20130529-5.1)")
isok(t, err)
possi = dep.GetAllPossibilities()[0]
assert(t, candidates.Satisfies(*arch, possi) == false)
dep, err = dependency.Parse("android-tools-fsutils (<< 4.2.2+git20130529-6.1)")
isok(t, err)
possi = dep.GetAllPossibilities()[0]
assert(t, candidates.Satisfies(*arch, possi) == true)
dep, err = dependency.Parse("android-tools-fsutils (>> 4.2.2+git20130529-5.1)")
isok(t, err)
possi = dep.GetAllPossibilities()[0]
assert(t, candidates.Satisfies(*arch, possi) == false)
dep, err = dependency.Parse("android-tools-fsutils (>> 4.2.2+git20130529-4.1)")
isok(t, err)
possi = dep.GetAllPossibilities()[0]
assert(t, candidates.Satisfies(*arch, possi) == true)
}
func TestResolverDependsVersion(t *testing.T) {
candidates, err := resolver.ReadFromBinaryIndex(
strings.NewReader(testBinaryIndex),
)
isok(t, err)
assert(t, len(*candidates) == 3)
arch, err := dependency.ParseArch("amd64")
isok(t, err)
dep, err := dependency.Parse("android-tools-fsutils (>= 1.0)")
isok(t, err)
assert(t, candidates.SatisfiesBuildDepends(*arch, *dep) == true)
dep, err = dependency.Parse("android-tools-fsutils (>= 1.0), quix")
isok(t, err)
assert(t, candidates.SatisfiesBuildDepends(*arch, *dep) == false)
}
// vim: foldmethod=marker