Skip to content

Commit d27554c

Browse files
committed
test: additional tests
1 parent 8efe4f0 commit d27554c

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

src/core/selector/tests/assets.rs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,18 @@ mod tests {
251251
assert!(binaries[0].contains("direnv.linux-s390x"));
252252
}
253253

254+
#[test]
255+
fn test_linux_ppc64le_unarchived_binary() {
256+
let assets: Vec<String> = ron::from_str(include_str!("assets/direnv@direnv.ron")).unwrap();
257+
let asset_refs: Vec<&str> = assets.iter().map(|s| s.as_str()).collect();
258+
let platform_triple = AssetTriple::new("linux".to_string(), "powerpc64".to_string(), false);
259+
let binaries = get_triple_compatible_assets(&asset_refs, &platform_triple, |asset| asset);
260+
assert!(binaries.is_some());
261+
let binaries = binaries.unwrap();
262+
assert!(!binaries.is_empty() && binaries.len() == 1);
263+
assert!(binaries[0].contains("direnv.linux-ppc64le"));
264+
}
265+
254266
#[test]
255267
fn test_linux_armv7_with_armv6_glibc_asset() {
256268
let assets: Vec<String> =
@@ -444,4 +456,40 @@ mod tests {
444456
let binaries = binaries.unwrap();
445457
assert!(binaries[0].contains("fantarepo_ends_in_os_v1.0.0_arm64.darwin"));
446458
}
459+
460+
#[test]
461+
fn test_linux_x86_64_multiple_assets() {
462+
let assets: Vec<String> = ron::from_str(include_str!("assets/ahmetb@kubectx.ron")).unwrap();
463+
let platform_triple = AssetTriple::new("linux".to_string(), "x86_64".to_string(), false);
464+
let binaries = get_triple_compatible_assets(&assets, &platform_triple, |asset| asset);
465+
assert!(binaries.is_some());
466+
let binaries = binaries.unwrap();
467+
assert!(!binaries.is_empty() && binaries.len() == 2);
468+
assert!(binaries[0].contains("kubectx_v0.9.5_linux_x86_64.tar.gz"));
469+
assert!(binaries[1].contains("kubens_v0.9.5_linux_x86_64.tar.gz"));
470+
}
471+
472+
#[test]
473+
fn test_linux_armv7_multiple_assets() {
474+
let assets: Vec<String> = ron::from_str(include_str!("assets/ahmetb@kubectx.ron")).unwrap();
475+
let platform_triple = AssetTriple::new("linux".to_string(), "arm".to_string(), false);
476+
let binaries = get_triple_compatible_assets(&assets, &platform_triple, |asset| asset);
477+
assert!(binaries.is_some());
478+
let binaries = binaries.unwrap();
479+
assert!(!binaries.is_empty() && binaries.len() == 2);
480+
assert!(binaries[0].contains("kubectx_v0.9.5_linux_armv7.tar.gz"));
481+
assert!(binaries[1].contains("kubens_v0.9.5_linux_armv7.tar.gz"));
482+
}
483+
484+
#[test]
485+
fn test_linux_arm64_many_extensions_one_match() {
486+
let assets: Vec<String> = ron::from_str(include_str!("assets/muesli@duf.ron")).unwrap();
487+
let asset_refs: Vec<&str> = assets.iter().map(|s| s.as_str()).collect();
488+
let platform_triple = AssetTriple::new("linux".to_string(), "aarch64".to_string(), false);
489+
let binaries = get_triple_compatible_assets(&asset_refs, &platform_triple, |asset| asset);
490+
assert!(binaries.is_some());
491+
let binaries = binaries.unwrap();
492+
assert!(!binaries.is_empty() && binaries.len() == 1);
493+
assert!(binaries[0].contains("duf_0.9.1_linux_arm64.tar.gz"));
494+
}
447495
}

0 commit comments

Comments
 (0)