in aziotctl/aziotctl-common/src/config/apply.rs [682:765]
fn test() {
let files_directory =
std::path::Path::new(concat!(env!("CARGO_MANIFEST_DIR"), "/test-files/apply"));
for entry in std::fs::read_dir(files_directory).unwrap() {
let entry = entry.unwrap();
if !entry.file_type().unwrap().is_dir() {
continue;
}
let case_directory = entry.path();
let test_name = case_directory.file_name().unwrap().to_str().unwrap();
println!(".\n.\n=========\n.\nRunning test {test_name}");
let config = std::fs::read(case_directory.join("config.toml")).unwrap();
let config = std::str::from_utf8(&config).unwrap();
let config: super_config::Config =
toml::from_str(config).expect("could not parse config file");
let expected_keyd_config = std::fs::read(case_directory.join("keyd.toml"))
.expect("could not deserialize expected aziot-keyd config");
let expected_certd_config = std::fs::read(case_directory.join("certd.toml"))
.expect("could not deserialize expected aziot-certd config");
let expected_identityd_config = std::fs::read(case_directory.join("identityd.toml"))
.expect("could not deserialize expected aziot-identityd config");
let expected_tpmd_config = std::fs::read(case_directory.join("tpmd.toml"))
.expect("could not deserialize expected aziot-tpmd config");
let expected_preloaded_device_id_pk_bytes =
match std::fs::read(case_directory.join("device-id")) {
Ok(contents) => Some(contents),
Err(err) if err.kind() == std::io::ErrorKind::NotFound => None,
Err(err) => panic!("could not read device-id file: {err}"),
};
let aziotcs_uid = nix::unistd::Uid::from_raw(5555);
let aziotid_uid = nix::unistd::Uid::from_raw(5556);
let super::RunOutput {
keyd_config: actual_keyd_config,
certd_config: actual_certd_config,
identityd_config: actual_identityd_config,
tpmd_config: actual_tpmd_config,
preloaded_device_id_pk_bytes: actual_preloaded_device_id_pk_bytes,
} = super::run(config, aziotcs_uid, aziotid_uid).unwrap();
let actual_keyd_config = toml::to_string(&actual_keyd_config)
.expect("could not serialize actual aziot-keyd config");
let actual_certd_config = toml::to_string(&actual_certd_config)
.expect("could not serialize actual aziot-certd config");
let actual_identityd_config = toml::to_string(&actual_identityd_config)
.expect("could not serialize actual aziot-identityd config");
let actual_tpmd_config = toml::to_string(&actual_tpmd_config)
.expect("could not serialize actual aziot-tpmd config");
// Convert the four configs to bytes::Bytes before asserting, because bytes::Bytes's Debug format prints strings.
// It doesn't matter for the device ID file since it's binary anyway.
assert_eq!(
bytes::Bytes::from(expected_keyd_config),
bytes::Bytes::from(actual_keyd_config),
"keyd config does not match"
);
assert_eq!(
bytes::Bytes::from(expected_certd_config),
bytes::Bytes::from(actual_certd_config),
"certd config does not match"
);
assert_eq!(
bytes::Bytes::from(expected_identityd_config),
bytes::Bytes::from(actual_identityd_config),
"identityd config does not match"
);
assert_eq!(
bytes::Bytes::from(expected_tpmd_config),
bytes::Bytes::from(actual_tpmd_config),
"tpmd config does not match"
);
assert_eq!(
expected_preloaded_device_id_pk_bytes, actual_preloaded_device_id_pk_bytes,
"device ID key bytes do not match"
);
}
}