Skip to content

Commit 8e42cb4

Browse files
committed
Add a test for generating the trigger queue
1 parent f8916c4 commit 8e42cb4

File tree

6 files changed

+391
-2
lines changed

6 files changed

+391
-2
lines changed

.test/jq.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ for t in "$dir/"*"/test.jq"; do
1313
td="$(dirname "$t")"
1414
echo -n 'test: '
1515
basename "$td"
16-
args=( --tab -L "$dir/.." -f "$t" )
16+
args=( --tab -L "$dir/.." )
17+
if [ -s "$td/in.jq" ]; then
18+
jq "${args[@]}" -n -f "$td/in.jq" > "$td/in.json"
19+
fi
20+
args+=( -f "$t" )
1721
if [ -s "$td/in.json" ]; then
1822
args+=( "$td/in.json" )
1923
else

.test/meta-queue/in.jq

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
[
2+
# add new test cases here
3+
# each item will be used for each architecture generated
4+
# [ ".build.resloved", "count", "skips" ]
5+
[ null, 1, 0 ], # buildable, tried once
6+
[ null, 23, 0 ], # buildable, tried many but less than skip threshold
7+
[ null, 24, 0 ], # buildable, tried many, just on skip threshold
8+
[ null, 25, 23 ], # buildable, final skip
9+
[ null, 25, 24 ], # buildable, no longer skipped
10+
[ {}, 3, 0 ], # build "complete" (not queued or skipped)
11+
empty # trailing comma
12+
]
13+
| map(
14+
("amd64", "arm32v7") as $arch
15+
| ([ $arch, .[] | tostring ] | join("-")) as $buildId
16+
| {
17+
# give our inputs cuter names
18+
resolved: .[0],
19+
count: .[1],
20+
skips: .[2],
21+
}
22+
| [
23+
{
24+
count,
25+
skips,
26+
},
27+
{
28+
$buildId,
29+
build: {
30+
$arch,
31+
resolved,
32+
},
33+
"source": {
34+
"arches": {
35+
($arch): {
36+
"tags": ["fake:\($buildId)"]
37+
},
38+
},
39+
},
40+
},
41+
empty # trailing comma
42+
]
43+
| map({ ($buildId): . })
44+
)
45+
| transpose
46+
| map(add)
47+
| { pastjobs: .[0], builds: .[1] }

.test/meta-queue/in.json

Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
{
2+
"pastjobs": {
3+
"amd64-null-1-0": {
4+
"count": 1,
5+
"skips": 0
6+
},
7+
"arm32v7-null-1-0": {
8+
"count": 1,
9+
"skips": 0
10+
},
11+
"amd64-null-23-0": {
12+
"count": 23,
13+
"skips": 0
14+
},
15+
"arm32v7-null-23-0": {
16+
"count": 23,
17+
"skips": 0
18+
},
19+
"amd64-null-24-0": {
20+
"count": 24,
21+
"skips": 0
22+
},
23+
"arm32v7-null-24-0": {
24+
"count": 24,
25+
"skips": 0
26+
},
27+
"amd64-null-25-23": {
28+
"count": 25,
29+
"skips": 23
30+
},
31+
"arm32v7-null-25-23": {
32+
"count": 25,
33+
"skips": 23
34+
},
35+
"amd64-null-25-24": {
36+
"count": 25,
37+
"skips": 24
38+
},
39+
"arm32v7-null-25-24": {
40+
"count": 25,
41+
"skips": 24
42+
},
43+
"amd64-{}-3-0": {
44+
"count": 3,
45+
"skips": 0
46+
},
47+
"arm32v7-{}-3-0": {
48+
"count": 3,
49+
"skips": 0
50+
}
51+
},
52+
"builds": {
53+
"amd64-null-1-0": {
54+
"buildId": "amd64-null-1-0",
55+
"build": {
56+
"arch": "amd64",
57+
"resolved": null
58+
},
59+
"source": {
60+
"arches": {
61+
"amd64": {
62+
"tags": [
63+
"fake:amd64-null-1-0"
64+
]
65+
}
66+
}
67+
}
68+
},
69+
"arm32v7-null-1-0": {
70+
"buildId": "arm32v7-null-1-0",
71+
"build": {
72+
"arch": "arm32v7",
73+
"resolved": null
74+
},
75+
"source": {
76+
"arches": {
77+
"arm32v7": {
78+
"tags": [
79+
"fake:arm32v7-null-1-0"
80+
]
81+
}
82+
}
83+
}
84+
},
85+
"amd64-null-23-0": {
86+
"buildId": "amd64-null-23-0",
87+
"build": {
88+
"arch": "amd64",
89+
"resolved": null
90+
},
91+
"source": {
92+
"arches": {
93+
"amd64": {
94+
"tags": [
95+
"fake:amd64-null-23-0"
96+
]
97+
}
98+
}
99+
}
100+
},
101+
"arm32v7-null-23-0": {
102+
"buildId": "arm32v7-null-23-0",
103+
"build": {
104+
"arch": "arm32v7",
105+
"resolved": null
106+
},
107+
"source": {
108+
"arches": {
109+
"arm32v7": {
110+
"tags": [
111+
"fake:arm32v7-null-23-0"
112+
]
113+
}
114+
}
115+
}
116+
},
117+
"amd64-null-24-0": {
118+
"buildId": "amd64-null-24-0",
119+
"build": {
120+
"arch": "amd64",
121+
"resolved": null
122+
},
123+
"source": {
124+
"arches": {
125+
"amd64": {
126+
"tags": [
127+
"fake:amd64-null-24-0"
128+
]
129+
}
130+
}
131+
}
132+
},
133+
"arm32v7-null-24-0": {
134+
"buildId": "arm32v7-null-24-0",
135+
"build": {
136+
"arch": "arm32v7",
137+
"resolved": null
138+
},
139+
"source": {
140+
"arches": {
141+
"arm32v7": {
142+
"tags": [
143+
"fake:arm32v7-null-24-0"
144+
]
145+
}
146+
}
147+
}
148+
},
149+
"amd64-null-25-23": {
150+
"buildId": "amd64-null-25-23",
151+
"build": {
152+
"arch": "amd64",
153+
"resolved": null
154+
},
155+
"source": {
156+
"arches": {
157+
"amd64": {
158+
"tags": [
159+
"fake:amd64-null-25-23"
160+
]
161+
}
162+
}
163+
}
164+
},
165+
"arm32v7-null-25-23": {
166+
"buildId": "arm32v7-null-25-23",
167+
"build": {
168+
"arch": "arm32v7",
169+
"resolved": null
170+
},
171+
"source": {
172+
"arches": {
173+
"arm32v7": {
174+
"tags": [
175+
"fake:arm32v7-null-25-23"
176+
]
177+
}
178+
}
179+
}
180+
},
181+
"amd64-null-25-24": {
182+
"buildId": "amd64-null-25-24",
183+
"build": {
184+
"arch": "amd64",
185+
"resolved": null
186+
},
187+
"source": {
188+
"arches": {
189+
"amd64": {
190+
"tags": [
191+
"fake:amd64-null-25-24"
192+
]
193+
}
194+
}
195+
}
196+
},
197+
"arm32v7-null-25-24": {
198+
"buildId": "arm32v7-null-25-24",
199+
"build": {
200+
"arch": "arm32v7",
201+
"resolved": null
202+
},
203+
"source": {
204+
"arches": {
205+
"arm32v7": {
206+
"tags": [
207+
"fake:arm32v7-null-25-24"
208+
]
209+
}
210+
}
211+
}
212+
},
213+
"amd64-{}-3-0": {
214+
"buildId": "amd64-{}-3-0",
215+
"build": {
216+
"arch": "amd64",
217+
"resolved": {}
218+
},
219+
"source": {
220+
"arches": {
221+
"amd64": {
222+
"tags": [
223+
"fake:amd64-{}-3-0"
224+
]
225+
}
226+
}
227+
}
228+
},
229+
"arm32v7-{}-3-0": {
230+
"buildId": "arm32v7-{}-3-0",
231+
"build": {
232+
"arch": "arm32v7",
233+
"resolved": {}
234+
},
235+
"source": {
236+
"arches": {
237+
"arm32v7": {
238+
"tags": [
239+
"fake:arm32v7-{}-3-0"
240+
]
241+
}
242+
}
243+
}
244+
}
245+
}
246+
}

.test/meta-queue/out.json

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
[
2+
{
3+
"buildId": "arm32v7-null-1-0",
4+
"build": {
5+
"arch": "arm32v7",
6+
"resolved": null
7+
},
8+
"source": {
9+
"arches": {
10+
"arm32v7": {
11+
"tags": [
12+
"fake:arm32v7-null-1-0"
13+
]
14+
}
15+
}
16+
},
17+
"identifier": "fake:arm32v7-null-1-0"
18+
},
19+
{
20+
"buildId": "arm32v7-null-23-0",
21+
"build": {
22+
"arch": "arm32v7",
23+
"resolved": null
24+
},
25+
"source": {
26+
"arches": {
27+
"arm32v7": {
28+
"tags": [
29+
"fake:arm32v7-null-23-0"
30+
]
31+
}
32+
}
33+
},
34+
"identifier": "fake:arm32v7-null-23-0"
35+
},
36+
{
37+
"buildId": "arm32v7-null-25-24",
38+
"build": {
39+
"arch": "arm32v7",
40+
"resolved": null
41+
},
42+
"source": {
43+
"arches": {
44+
"arm32v7": {
45+
"tags": [
46+
"fake:arm32v7-null-25-24"
47+
]
48+
}
49+
}
50+
},
51+
"identifier": "fake:arm32v7-null-25-24"
52+
}
53+
]
54+
{
55+
"arm32v7-null-1-0": {
56+
"count": 2,
57+
"skips": 0,
58+
"identifier": "fake:arm32v7-null-1-0"
59+
},
60+
"arm32v7-null-23-0": {
61+
"count": 24,
62+
"skips": 0,
63+
"identifier": "fake:arm32v7-null-23-0"
64+
},
65+
"arm32v7-null-24-0": {
66+
"count": 24,
67+
"skips": 1,
68+
"identifier": "fake:arm32v7-null-24-0"
69+
},
70+
"arm32v7-null-25-23": {
71+
"count": 25,
72+
"skips": 24,
73+
"identifier": "fake:arm32v7-null-25-23"
74+
},
75+
"arm32v7-null-25-24": {
76+
"count": 26,
77+
"skips": 0,
78+
"identifier": "fake:arm32v7-null-25-24"
79+
}
80+
}
81+
2

0 commit comments

Comments
 (0)