Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions src/proto.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,20 @@ pub fn download_prebuilt(
_ => unreachable!(),
};

let os = env.os;

let prefix = match os {
HostOS::Linux => format!("zig-linux-{arch}-{version}"),
HostOS::MacOS => format!("zig-macos-{arch}-{version}"),
HostOS::Windows => format!("zig-windows-{arch}-{version}"),
let os = match env.os {
HostOS::Linux => "linux",
HostOS::MacOS => "macos",
HostOS::Windows => "windows",
_ => unreachable!(),
};

let filename = if os.is_windows() {
let prefix = if version >= VersionSpec::parse("0.14.1")? {
format!("zig-{arch}-{os}-{version}")
} else {
format!("zig-{os}-{arch}-{version}")
};

let filename = if env.os.is_windows() {
format!("{prefix}.zip")
} else {
format!("{prefix}.tar.xz")
Expand Down
122 changes: 79 additions & 43 deletions tests/download_test.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use proto_pdk_test_utils::*;

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

mod canary {
use super::*;
Expand All @@ -21,23 +21,23 @@ async fn supports_linux_arm64() {
plugin
.download_prebuilt(DownloadPrebuiltInput {
context: ToolContext {
version: VersionSpec::parse("0.11.0").unwrap(),
version: VersionSpec::parse("0.14.1").unwrap(),
..Default::default()
},
..Default::default()
})
.await,
DownloadPrebuiltOutput {
archive_prefix: Some("zig-linux-aarch64-0.11.0".into()),
archive_prefix: Some("zig-aarch64-linux-0.14.1".into()),
checksum_url: Some(
"https://ziglang.org/download/0.11.0/zig-linux-aarch64-0.11.0.tar.xz.minisig"
"https://ziglang.org/download/0.14.1/zig-aarch64-linux-0.14.1.tar.xz.minisig"
.into()
),
checksum_public_key: Some(
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
),
download_name: Some("zig-linux-aarch64-0.11.0.tar.xz".into()),
download_url: "https://ziglang.org/download/0.11.0/zig-linux-aarch64-0.11.0.tar.xz"
download_name: Some("zig-aarch64-linux-0.14.1.tar.xz".into()),
download_url: "https://ziglang.org/download/0.14.1/zig-aarch64-linux-0.14.1.tar.xz"
.into(),
..Default::default()
}
Expand All @@ -57,22 +57,22 @@ async fn supports_linux_x64() {
plugin
.download_prebuilt(DownloadPrebuiltInput {
context: ToolContext {
version: VersionSpec::parse("0.11.0").unwrap(),
version: VersionSpec::parse("0.14.1").unwrap(),
..Default::default()
},
..Default::default()
})
.await,
DownloadPrebuiltOutput {
archive_prefix: Some("zig-linux-x86_64-0.11.0".into()),
archive_prefix: Some("zig-x86_64-linux-0.14.1".into()),
checksum_url: Some(
"https://ziglang.org/download/0.11.0/zig-linux-x86_64-0.11.0.tar.xz.minisig".into()
"https://ziglang.org/download/0.14.1/zig-x86_64-linux-0.14.1.tar.xz.minisig".into()
),
checksum_public_key: Some(
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
),
download_name: Some("zig-linux-x86_64-0.11.0.tar.xz".into()),
download_url: "https://ziglang.org/download/0.11.0/zig-linux-x86_64-0.11.0.tar.xz"
download_name: Some("zig-x86_64-linux-0.14.1.tar.xz".into()),
download_url: "https://ziglang.org/download/0.14.1/zig-x86_64-linux-0.14.1.tar.xz"
.into(),
..Default::default()
}
Expand All @@ -92,22 +92,22 @@ async fn supports_linux_x86() {
plugin
.download_prebuilt(DownloadPrebuiltInput {
context: ToolContext {
version: VersionSpec::parse("0.11.0").unwrap(),
version: VersionSpec::parse("0.14.1").unwrap(),
..Default::default()
},
..Default::default()
})
.await,
DownloadPrebuiltOutput {
archive_prefix: Some("zig-linux-x86-0.11.0".into()),
archive_prefix: Some("zig-x86-linux-0.14.1".into()),
checksum_url: Some(
"https://ziglang.org/download/0.11.0/zig-linux-x86-0.11.0.tar.xz.minisig".into()
"https://ziglang.org/download/0.14.1/zig-x86-linux-0.14.1.tar.xz.minisig".into()
),
checksum_public_key: Some(
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
),
download_name: Some("zig-linux-x86-0.11.0.tar.xz".into()),
download_url: "https://ziglang.org/download/0.11.0/zig-linux-x86-0.11.0.tar.xz".into(),
download_name: Some("zig-x86-linux-0.14.1.tar.xz".into()),
download_url: "https://ziglang.org/download/0.14.1/zig-x86-linux-0.14.1.tar.xz".into(),
..Default::default()
}
);
Expand All @@ -126,23 +126,23 @@ async fn supports_macos_arm64() {
plugin
.download_prebuilt(DownloadPrebuiltInput {
context: ToolContext {
version: VersionSpec::parse("0.11.0").unwrap(),
version: VersionSpec::parse("0.14.1").unwrap(),
..Default::default()
},
..Default::default()
})
.await,
DownloadPrebuiltOutput {
archive_prefix: Some("zig-macos-aarch64-0.11.0".into()),
archive_prefix: Some("zig-aarch64-macos-0.14.1".into()),
checksum_url: Some(
"https://ziglang.org/download/0.11.0/zig-macos-aarch64-0.11.0.tar.xz.minisig"
"https://ziglang.org/download/0.14.1/zig-aarch64-macos-0.14.1.tar.xz.minisig"
.into()
),
checksum_public_key: Some(
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
),
download_name: Some("zig-macos-aarch64-0.11.0.tar.xz".into()),
download_url: "https://ziglang.org/download/0.11.0/zig-macos-aarch64-0.11.0.tar.xz"
download_name: Some("zig-aarch64-macos-0.14.1.tar.xz".into()),
download_url: "https://ziglang.org/download/0.14.1/zig-aarch64-macos-0.14.1.tar.xz"
.into(),
..Default::default()
}
Expand All @@ -162,22 +162,22 @@ async fn supports_macos_x64() {
plugin
.download_prebuilt(DownloadPrebuiltInput {
context: ToolContext {
version: VersionSpec::parse("0.11.0").unwrap(),
version: VersionSpec::parse("0.14.1").unwrap(),
..Default::default()
},
..Default::default()
})
.await,
DownloadPrebuiltOutput {
archive_prefix: Some("zig-macos-x86_64-0.11.0".into()),
archive_prefix: Some("zig-x86_64-macos-0.14.1".into()),
checksum_url: Some(
"https://ziglang.org/download/0.11.0/zig-macos-x86_64-0.11.0.tar.xz.minisig".into()
"https://ziglang.org/download/0.14.1/zig-x86_64-macos-0.14.1.tar.xz.minisig".into()
),
checksum_public_key: Some(
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
),
download_name: Some("zig-macos-x86_64-0.11.0.tar.xz".into()),
download_url: "https://ziglang.org/download/0.11.0/zig-macos-x86_64-0.11.0.tar.xz"
download_name: Some("zig-x86_64-macos-0.14.1.tar.xz".into()),
download_url: "https://ziglang.org/download/0.14.1/zig-x86_64-macos-0.14.1.tar.xz"
.into(),
..Default::default()
}
Expand All @@ -197,22 +197,22 @@ async fn supports_windows_arm64() {
plugin
.download_prebuilt(DownloadPrebuiltInput {
context: ToolContext {
version: VersionSpec::parse("0.11.0").unwrap(),
version: VersionSpec::parse("0.14.1").unwrap(),
..Default::default()
},
..Default::default()
})
.await,
DownloadPrebuiltOutput {
archive_prefix: Some("zig-windows-aarch64-0.11.0".into()),
archive_prefix: Some("zig-aarch64-windows-0.14.1".into()),
checksum_url: Some(
"https://ziglang.org/download/0.11.0/zig-windows-aarch64-0.11.0.zip.minisig".into()
"https://ziglang.org/download/0.14.1/zig-aarch64-windows-0.14.1.zip.minisig".into()
),
checksum_public_key: Some(
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
),
download_name: Some("zig-windows-aarch64-0.11.0.zip".into()),
download_url: "https://ziglang.org/download/0.11.0/zig-windows-aarch64-0.11.0.zip"
download_name: Some("zig-aarch64-windows-0.14.1.zip".into()),
download_url: "https://ziglang.org/download/0.14.1/zig-aarch64-windows-0.14.1.zip"
.into(),
..Default::default()
}
Expand All @@ -232,22 +232,22 @@ async fn supports_windows_x64() {
plugin
.download_prebuilt(DownloadPrebuiltInput {
context: ToolContext {
version: VersionSpec::parse("0.11.0").unwrap(),
version: VersionSpec::parse("0.14.1").unwrap(),
..Default::default()
},
..Default::default()
})
.await,
DownloadPrebuiltOutput {
archive_prefix: Some("zig-windows-x86_64-0.11.0".into()),
archive_prefix: Some("zig-x86_64-windows-0.14.1".into()),
checksum_url: Some(
"https://ziglang.org/download/0.11.0/zig-windows-x86_64-0.11.0.zip.minisig".into()
"https://ziglang.org/download/0.14.1/zig-x86_64-windows-0.14.1.zip.minisig".into()
),
checksum_public_key: Some(
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
),
download_name: Some("zig-windows-x86_64-0.11.0.zip".into()),
download_url: "https://ziglang.org/download/0.11.0/zig-windows-x86_64-0.11.0.zip"
download_name: Some("zig-x86_64-windows-0.14.1.zip".into()),
download_url: "https://ziglang.org/download/0.14.1/zig-x86_64-windows-0.14.1.zip"
.into(),
..Default::default()
}
Expand All @@ -267,22 +267,58 @@ async fn supports_windows_x86() {
plugin
.download_prebuilt(DownloadPrebuiltInput {
context: ToolContext {
version: VersionSpec::parse("0.11.0").unwrap(),
version: VersionSpec::parse("0.14.1").unwrap(),
..Default::default()
},
..Default::default()
})
.await,
DownloadPrebuiltOutput {
archive_prefix: Some("zig-windows-x86-0.11.0".into()),
archive_prefix: Some("zig-x86-windows-0.14.1".into()),
checksum_url: Some(
"https://ziglang.org/download/0.11.0/zig-windows-x86-0.11.0.zip.minisig".into()
"https://ziglang.org/download/0.14.1/zig-x86-windows-0.14.1.zip.minisig".into()
),
checksum_public_key: Some(
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
),
download_name: Some("zig-windows-x86-0.11.0.zip".into()),
download_url: "https://ziglang.org/download/0.11.0/zig-windows-x86-0.11.0.zip".into(),
download_name: Some("zig-x86-windows-0.14.1.zip".into()),
download_url: "https://ziglang.org/download/0.14.1/zig-x86-windows-0.14.1.zip".into(),
..Default::default()
}
);
}

#[tokio::test(flavor = "multi_thread")]
async fn supports_v0_14_0_and_below() {
let sandbox = create_empty_proto_sandbox();
let plugin = sandbox
.create_plugin_with_config("zig-test", |config| {
config.host(HostOS::Linux, HostArch::Arm64);
})
.await;

assert_eq!(
plugin
.download_prebuilt(DownloadPrebuiltInput {
context: ToolContext {
version: VersionSpec::parse("0.14.0").unwrap(),
..Default::default()
},
..Default::default()
})
.await,
DownloadPrebuiltOutput {
archive_prefix: Some("zig-linux-aarch64-0.14.0".into()),
checksum_url: Some(
"https://ziglang.org/download/0.14.0/zig-linux-aarch64-0.14.0.tar.xz.minisig"
.into()
),
checksum_public_key: Some(
"RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into()
),
download_name: Some("zig-linux-aarch64-0.14.0.tar.xz".into()),
download_url: "https://ziglang.org/download/0.14.0/zig-linux-aarch64-0.14.0.tar.xz"
.into(),
..Default::default()
}
);
Expand All @@ -301,7 +337,7 @@ async fn locates_unix_bin() {
plugin
.locate_executables(LocateExecutablesInput {
context: ToolContext {
version: VersionSpec::parse("0.11.0").unwrap(),
version: VersionSpec::parse("0.14.1").unwrap(),
..Default::default()
},
..Default::default()
Expand All @@ -328,7 +364,7 @@ async fn locates_windows_bin() {
plugin
.locate_executables(LocateExecutablesInput {
context: ToolContext {
version: VersionSpec::parse("0.11.0").unwrap(),
version: VersionSpec::parse("0.14.1").unwrap(),
..Default::default()
},
..Default::default()
Expand Down
6 changes: 3 additions & 3 deletions tests/versions_test.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
use proto_pdk_test_utils::*;

generate_resolve_versions_tests!("zig-test", {
"0.10" => "0.10.1",
"0.11.0" => "0.11.0",
"0" => "0.14.0",
"0.14" => "0.14.1",
"0.14.0" => "0.14.0",
"0" => "0.14.1",
});

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