refactor(nix-compat/derivation): drop non_unicode test
The previous CLs did already absorb all the logic into the common tests, no need to write this here again. Change-Id: I7ba84ba86d5445ed247e5d11d5e59b7fa815670e Reviewed-on: https://cl.tvl.fyi/c/depot/+/9732 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
This commit is contained in:
parent
398cf8e7ce
commit
c3fad811f4
1 changed files with 1 additions and 81 deletions
|
@ -5,7 +5,7 @@ use crate::derivation::parser::Error::ParseError;
|
||||||
use crate::derivation::Derivation;
|
use crate::derivation::Derivation;
|
||||||
use crate::store_path::StorePath;
|
use crate::store_path::StorePath;
|
||||||
use bstr::{BStr, BString};
|
use bstr::{BStr, BString};
|
||||||
use std::collections::{BTreeMap, BTreeSet};
|
use std::collections::BTreeSet;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
@ -414,83 +414,3 @@ fn output_path_construction() {
|
||||||
.expect("must succeed")
|
.expect("must succeed")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This constructs a Derivation using cp1252 encoding and ensures the
|
|
||||||
/// calculated derivation path matches the one Nix does calculate, as
|
|
||||||
/// well as the ATerm serialization.
|
|
||||||
/// We can't add this as a test_case to `output_paths`, as the JSON parser
|
|
||||||
/// refuses to parse our JSONs.
|
|
||||||
/// It looks like more recent versions of Nix also seem to not produce these
|
|
||||||
/// JSON files anymore, however, it still happily produces the .drv files in
|
|
||||||
/// the store.
|
|
||||||
#[test_case(
|
|
||||||
"cp1252",
|
|
||||||
vec![0xc5, 0xc4, 0xd6],
|
|
||||||
"/nix/store/drr2mjp9fp9vvzsf5f9p0a80j33dxy7m-cp1252",
|
|
||||||
"m1vfixn8iprlf0v9abmlrz7mjw1xj8kp-cp1252.drv";
|
|
||||||
"cp1252"
|
|
||||||
)]
|
|
||||||
#[test_case(
|
|
||||||
"latin1",
|
|
||||||
vec![0xc5, 0xc4, 0xd6],
|
|
||||||
"/nix/store/x1f6jfq9qgb6i8jrmpifkn9c64fg4hcm-latin1",
|
|
||||||
"x6p0hg79i3wg0kkv7699935f7rrj9jf3-latin1.drv";
|
|
||||||
"latin1"
|
|
||||||
)]
|
|
||||||
fn non_unicode(name: &str, chars: Vec<u8>, exp_output_path: &str, exp_derivation_path: &str) {
|
|
||||||
// construct the Derivation
|
|
||||||
let mut outputs: BTreeMap<String, Output> = BTreeMap::new();
|
|
||||||
outputs.insert(
|
|
||||||
"out".to_string(),
|
|
||||||
Output {
|
|
||||||
path: exp_output_path.to_string(),
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut environment: BTreeMap<String, BString> = BTreeMap::new();
|
|
||||||
environment.insert("builder".to_string(), ":".into());
|
|
||||||
environment.insert("chars".to_string(), chars.into());
|
|
||||||
environment.insert("name".to_string(), name.into());
|
|
||||||
environment.insert("out".to_string(), exp_output_path.into());
|
|
||||||
environment.insert("system".to_string(), ":".into());
|
|
||||||
let derivation: Derivation = Derivation {
|
|
||||||
builder: ":".to_string(),
|
|
||||||
environment,
|
|
||||||
outputs,
|
|
||||||
system: ":".to_string(),
|
|
||||||
..Default::default()
|
|
||||||
};
|
|
||||||
|
|
||||||
// check the derivation_path matches what Nix calculated.
|
|
||||||
let actual_drv_path = derivation.calculate_derivation_path(name).unwrap();
|
|
||||||
assert_eq!(exp_derivation_path.to_string(), actual_drv_path.to_string());
|
|
||||||
|
|
||||||
// Now wipe the output path info, and ensure we calculate the same output
|
|
||||||
// path.
|
|
||||||
{
|
|
||||||
let mut derivation = derivation_with_trimmed_output_paths(&derivation);
|
|
||||||
let calculated_derivation_or_fod_hash = derivation.derivation_or_fod_hash(|_| {
|
|
||||||
panic!("No parents expected");
|
|
||||||
});
|
|
||||||
derivation
|
|
||||||
.calculate_output_paths(name, &calculated_derivation_or_fod_hash)
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
assert_eq!(
|
|
||||||
exp_output_path.to_string(),
|
|
||||||
derivation.outputs.get("out").unwrap().path,
|
|
||||||
"expected calculated output path to match"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Construct the ATerm representation and compare with our fixture.
|
|
||||||
{
|
|
||||||
let aterm_bytes = read_file(&format!("{}/ok/{}", RESOURCES_PATHS, exp_derivation_path));
|
|
||||||
assert_eq!(
|
|
||||||
aterm_bytes,
|
|
||||||
BStr::new(&derivation.to_aterm_bytes()),
|
|
||||||
"expected ATerm serialization to match",
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue