Skip to content

Commit 81c4711

Browse files
authored
Support zig 0.14.1 (#8)
1 parent 6824074 commit 81c4711

3 files changed

Lines changed: 93 additions & 53 deletions

File tree

src/proto.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,20 @@ pub fn download_prebuilt(
4545
_ => unreachable!(),
4646
};
4747

48-
let os = env.os;
49-
50-
let prefix = match os {
51-
HostOS::Linux => format!("zig-linux-{arch}-{version}"),
52-
HostOS::MacOS => format!("zig-macos-{arch}-{version}"),
53-
HostOS::Windows => format!("zig-windows-{arch}-{version}"),
48+
let os = match env.os {
49+
HostOS::Linux => "linux",
50+
HostOS::MacOS => "macos",
51+
HostOS::Windows => "windows",
5452
_ => unreachable!(),
5553
};
5654

57-
let filename = if os.is_windows() {
55+
let prefix = if version >= VersionSpec::parse("0.14.1")? {
56+
format!("zig-{arch}-{os}-{version}")
57+
} else {
58+
format!("zig-{os}-{arch}-{version}")
59+
};
60+
61+
let filename = if env.os.is_windows() {
5862
format!("{prefix}.zip")
5963
} else {
6064
format!("{prefix}.tar.xz")

tests/download_test.rs

Lines changed: 79 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use proto_pdk_test_utils::*;
22

3-
generate_download_install_tests!("zig-test", "0.11.0");
3+
generate_download_install_tests!("zig-test", "0.14.1");
44

55
mod canary {
66
use super::*;
@@ -21,23 +21,23 @@ async fn supports_linux_arm64() {
2121
plugin
2222
.download_prebuilt(DownloadPrebuiltInput {
2323
context: ToolContext {
24-
version: VersionSpec::parse("0.11.0").unwrap(),
24+
version: VersionSpec::parse("0.14.1").unwrap(),
2525
..Default::default()
2626
},
2727
..Default::default()
2828
})
2929
.await,
3030
DownloadPrebuiltOutput {
31-
archive_prefix: Some("zig-linux-aarch64-0.11.0".into()),
31+
archive_prefix: Some("zig-aarch64-linux-0.14.1".into()),
3232
checksum_url: Some(
33-
"https://ziglang.org/download/0.11.0/zig-linux-aarch64-0.11.0.tar.xz.minisig"
33+
"https://ziglang.org/download/0.14.1/zig-aarch64-linux-0.14.1.tar.xz.minisig"
3434
.into()
3535
),
3636
checksum_public_key: Some(
3737
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
3838
),
39-
download_name: Some("zig-linux-aarch64-0.11.0.tar.xz".into()),
40-
download_url: "https://ziglang.org/download/0.11.0/zig-linux-aarch64-0.11.0.tar.xz"
39+
download_name: Some("zig-aarch64-linux-0.14.1.tar.xz".into()),
40+
download_url: "https://ziglang.org/download/0.14.1/zig-aarch64-linux-0.14.1.tar.xz"
4141
.into(),
4242
..Default::default()
4343
}
@@ -57,22 +57,22 @@ async fn supports_linux_x64() {
5757
plugin
5858
.download_prebuilt(DownloadPrebuiltInput {
5959
context: ToolContext {
60-
version: VersionSpec::parse("0.11.0").unwrap(),
60+
version: VersionSpec::parse("0.14.1").unwrap(),
6161
..Default::default()
6262
},
6363
..Default::default()
6464
})
6565
.await,
6666
DownloadPrebuiltOutput {
67-
archive_prefix: Some("zig-linux-x86_64-0.11.0".into()),
67+
archive_prefix: Some("zig-x86_64-linux-0.14.1".into()),
6868
checksum_url: Some(
69-
"https://ziglang.org/download/0.11.0/zig-linux-x86_64-0.11.0.tar.xz.minisig".into()
69+
"https://ziglang.org/download/0.14.1/zig-x86_64-linux-0.14.1.tar.xz.minisig".into()
7070
),
7171
checksum_public_key: Some(
7272
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
7373
),
74-
download_name: Some("zig-linux-x86_64-0.11.0.tar.xz".into()),
75-
download_url: "https://ziglang.org/download/0.11.0/zig-linux-x86_64-0.11.0.tar.xz"
74+
download_name: Some("zig-x86_64-linux-0.14.1.tar.xz".into()),
75+
download_url: "https://ziglang.org/download/0.14.1/zig-x86_64-linux-0.14.1.tar.xz"
7676
.into(),
7777
..Default::default()
7878
}
@@ -92,22 +92,22 @@ async fn supports_linux_x86() {
9292
plugin
9393
.download_prebuilt(DownloadPrebuiltInput {
9494
context: ToolContext {
95-
version: VersionSpec::parse("0.11.0").unwrap(),
95+
version: VersionSpec::parse("0.14.1").unwrap(),
9696
..Default::default()
9797
},
9898
..Default::default()
9999
})
100100
.await,
101101
DownloadPrebuiltOutput {
102-
archive_prefix: Some("zig-linux-x86-0.11.0".into()),
102+
archive_prefix: Some("zig-x86-linux-0.14.1".into()),
103103
checksum_url: Some(
104-
"https://ziglang.org/download/0.11.0/zig-linux-x86-0.11.0.tar.xz.minisig".into()
104+
"https://ziglang.org/download/0.14.1/zig-x86-linux-0.14.1.tar.xz.minisig".into()
105105
),
106106
checksum_public_key: Some(
107107
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
108108
),
109-
download_name: Some("zig-linux-x86-0.11.0.tar.xz".into()),
110-
download_url: "https://ziglang.org/download/0.11.0/zig-linux-x86-0.11.0.tar.xz".into(),
109+
download_name: Some("zig-x86-linux-0.14.1.tar.xz".into()),
110+
download_url: "https://ziglang.org/download/0.14.1/zig-x86-linux-0.14.1.tar.xz".into(),
111111
..Default::default()
112112
}
113113
);
@@ -126,23 +126,23 @@ async fn supports_macos_arm64() {
126126
plugin
127127
.download_prebuilt(DownloadPrebuiltInput {
128128
context: ToolContext {
129-
version: VersionSpec::parse("0.11.0").unwrap(),
129+
version: VersionSpec::parse("0.14.1").unwrap(),
130130
..Default::default()
131131
},
132132
..Default::default()
133133
})
134134
.await,
135135
DownloadPrebuiltOutput {
136-
archive_prefix: Some("zig-macos-aarch64-0.11.0".into()),
136+
archive_prefix: Some("zig-aarch64-macos-0.14.1".into()),
137137
checksum_url: Some(
138-
"https://ziglang.org/download/0.11.0/zig-macos-aarch64-0.11.0.tar.xz.minisig"
138+
"https://ziglang.org/download/0.14.1/zig-aarch64-macos-0.14.1.tar.xz.minisig"
139139
.into()
140140
),
141141
checksum_public_key: Some(
142142
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
143143
),
144-
download_name: Some("zig-macos-aarch64-0.11.0.tar.xz".into()),
145-
download_url: "https://ziglang.org/download/0.11.0/zig-macos-aarch64-0.11.0.tar.xz"
144+
download_name: Some("zig-aarch64-macos-0.14.1.tar.xz".into()),
145+
download_url: "https://ziglang.org/download/0.14.1/zig-aarch64-macos-0.14.1.tar.xz"
146146
.into(),
147147
..Default::default()
148148
}
@@ -162,22 +162,22 @@ async fn supports_macos_x64() {
162162
plugin
163163
.download_prebuilt(DownloadPrebuiltInput {
164164
context: ToolContext {
165-
version: VersionSpec::parse("0.11.0").unwrap(),
165+
version: VersionSpec::parse("0.14.1").unwrap(),
166166
..Default::default()
167167
},
168168
..Default::default()
169169
})
170170
.await,
171171
DownloadPrebuiltOutput {
172-
archive_prefix: Some("zig-macos-x86_64-0.11.0".into()),
172+
archive_prefix: Some("zig-x86_64-macos-0.14.1".into()),
173173
checksum_url: Some(
174-
"https://ziglang.org/download/0.11.0/zig-macos-x86_64-0.11.0.tar.xz.minisig".into()
174+
"https://ziglang.org/download/0.14.1/zig-x86_64-macos-0.14.1.tar.xz.minisig".into()
175175
),
176176
checksum_public_key: Some(
177177
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
178178
),
179-
download_name: Some("zig-macos-x86_64-0.11.0.tar.xz".into()),
180-
download_url: "https://ziglang.org/download/0.11.0/zig-macos-x86_64-0.11.0.tar.xz"
179+
download_name: Some("zig-x86_64-macos-0.14.1.tar.xz".into()),
180+
download_url: "https://ziglang.org/download/0.14.1/zig-x86_64-macos-0.14.1.tar.xz"
181181
.into(),
182182
..Default::default()
183183
}
@@ -197,22 +197,22 @@ async fn supports_windows_arm64() {
197197
plugin
198198
.download_prebuilt(DownloadPrebuiltInput {
199199
context: ToolContext {
200-
version: VersionSpec::parse("0.11.0").unwrap(),
200+
version: VersionSpec::parse("0.14.1").unwrap(),
201201
..Default::default()
202202
},
203203
..Default::default()
204204
})
205205
.await,
206206
DownloadPrebuiltOutput {
207-
archive_prefix: Some("zig-windows-aarch64-0.11.0".into()),
207+
archive_prefix: Some("zig-aarch64-windows-0.14.1".into()),
208208
checksum_url: Some(
209-
"https://ziglang.org/download/0.11.0/zig-windows-aarch64-0.11.0.zip.minisig".into()
209+
"https://ziglang.org/download/0.14.1/zig-aarch64-windows-0.14.1.zip.minisig".into()
210210
),
211211
checksum_public_key: Some(
212212
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
213213
),
214-
download_name: Some("zig-windows-aarch64-0.11.0.zip".into()),
215-
download_url: "https://ziglang.org/download/0.11.0/zig-windows-aarch64-0.11.0.zip"
214+
download_name: Some("zig-aarch64-windows-0.14.1.zip".into()),
215+
download_url: "https://ziglang.org/download/0.14.1/zig-aarch64-windows-0.14.1.zip"
216216
.into(),
217217
..Default::default()
218218
}
@@ -232,22 +232,22 @@ async fn supports_windows_x64() {
232232
plugin
233233
.download_prebuilt(DownloadPrebuiltInput {
234234
context: ToolContext {
235-
version: VersionSpec::parse("0.11.0").unwrap(),
235+
version: VersionSpec::parse("0.14.1").unwrap(),
236236
..Default::default()
237237
},
238238
..Default::default()
239239
})
240240
.await,
241241
DownloadPrebuiltOutput {
242-
archive_prefix: Some("zig-windows-x86_64-0.11.0".into()),
242+
archive_prefix: Some("zig-x86_64-windows-0.14.1".into()),
243243
checksum_url: Some(
244-
"https://ziglang.org/download/0.11.0/zig-windows-x86_64-0.11.0.zip.minisig".into()
244+
"https://ziglang.org/download/0.14.1/zig-x86_64-windows-0.14.1.zip.minisig".into()
245245
),
246246
checksum_public_key: Some(
247247
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
248248
),
249-
download_name: Some("zig-windows-x86_64-0.11.0.zip".into()),
250-
download_url: "https://ziglang.org/download/0.11.0/zig-windows-x86_64-0.11.0.zip"
249+
download_name: Some("zig-x86_64-windows-0.14.1.zip".into()),
250+
download_url: "https://ziglang.org/download/0.14.1/zig-x86_64-windows-0.14.1.zip"
251251
.into(),
252252
..Default::default()
253253
}
@@ -267,22 +267,58 @@ async fn supports_windows_x86() {
267267
plugin
268268
.download_prebuilt(DownloadPrebuiltInput {
269269
context: ToolContext {
270-
version: VersionSpec::parse("0.11.0").unwrap(),
270+
version: VersionSpec::parse("0.14.1").unwrap(),
271271
..Default::default()
272272
},
273273
..Default::default()
274274
})
275275
.await,
276276
DownloadPrebuiltOutput {
277-
archive_prefix: Some("zig-windows-x86-0.11.0".into()),
277+
archive_prefix: Some("zig-x86-windows-0.14.1".into()),
278278
checksum_url: Some(
279-
"https://ziglang.org/download/0.11.0/zig-windows-x86-0.11.0.zip.minisig".into()
279+
"https://ziglang.org/download/0.14.1/zig-x86-windows-0.14.1.zip.minisig".into()
280280
),
281281
checksum_public_key: Some(
282282
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
283283
),
284-
download_name: Some("zig-windows-x86-0.11.0.zip".into()),
285-
download_url: "https://ziglang.org/download/0.11.0/zig-windows-x86-0.11.0.zip".into(),
284+
download_name: Some("zig-x86-windows-0.14.1.zip".into()),
285+
download_url: "https://ziglang.org/download/0.14.1/zig-x86-windows-0.14.1.zip".into(),
286+
..Default::default()
287+
}
288+
);
289+
}
290+
291+
#[tokio::test(flavor = "multi_thread")]
292+
async fn supports_v0_14_0_and_below() {
293+
let sandbox = create_empty_proto_sandbox();
294+
let plugin = sandbox
295+
.create_plugin_with_config("zig-test", |config| {
296+
config.host(HostOS::Linux, HostArch::Arm64);
297+
})
298+
.await;
299+
300+
assert_eq!(
301+
plugin
302+
.download_prebuilt(DownloadPrebuiltInput {
303+
context: ToolContext {
304+
version: VersionSpec::parse("0.14.0").unwrap(),
305+
..Default::default()
306+
},
307+
..Default::default()
308+
})
309+
.await,
310+
DownloadPrebuiltOutput {
311+
archive_prefix: Some("zig-linux-aarch64-0.14.0".into()),
312+
checksum_url: Some(
313+
"https://ziglang.org/download/0.14.0/zig-linux-aarch64-0.14.0.tar.xz.minisig"
314+
.into()
315+
),
316+
checksum_public_key: Some(
317+
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
318+
),
319+
download_name: Some("zig-linux-aarch64-0.14.0.tar.xz".into()),
320+
download_url: "https://ziglang.org/download/0.14.0/zig-linux-aarch64-0.14.0.tar.xz"
321+
.into(),
286322
..Default::default()
287323
}
288324
);
@@ -301,7 +337,7 @@ async fn locates_unix_bin() {
301337
plugin
302338
.locate_executables(LocateExecutablesInput {
303339
context: ToolContext {
304-
version: VersionSpec::parse("0.11.0").unwrap(),
340+
version: VersionSpec::parse("0.14.1").unwrap(),
305341
..Default::default()
306342
},
307343
..Default::default()
@@ -328,7 +364,7 @@ async fn locates_windows_bin() {
328364
plugin
329365
.locate_executables(LocateExecutablesInput {
330366
context: ToolContext {
331-
version: VersionSpec::parse("0.11.0").unwrap(),
367+
version: VersionSpec::parse("0.14.1").unwrap(),
332368
..Default::default()
333369
},
334370
..Default::default()

tests/versions_test.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
use proto_pdk_test_utils::*;
22

33
generate_resolve_versions_tests!("zig-test", {
4-
"0.10" => "0.10.1",
5-
"0.11.0" => "0.11.0",
6-
"0" => "0.14.0",
4+
"0.14" => "0.14.1",
5+
"0.14.0" => "0.14.0",
6+
"0" => "0.14.1",
77
});
88

99
#[tokio::test(flavor = "multi_thread")]

0 commit comments

Comments
 (0)