use vb6parse::*;
const SNAPSHOT_PATH: &str = "../../../snapshots/parsers/files/binary_metamorphosis/project";
#[test]
fn binary_metamorphosis_v1_project_load() {
let file_path =
"../../test-data/Binary-metamorphosis/Binary metamorphosis V1.0/src/Bin_To_VB.vbp";
let project_file_bytes = std::fs::read(file_path).expect("Failed to read project file");
let result = SourceFile::decode_with_replacement(file_path, &project_file_bytes);
let source_file = match result {
Ok(source_file) => source_file,
Err(e) => panic!("Failed to decode source file '{file_path}': {e:?}"),
};
let (project_file_opt, failures) = ProjectFile::parse(&source_file).unpack();
if !failures.is_empty() {
for failure in &failures {
failure.print();
}
panic!("Project parse had failures");
}
let project = project_file_opt.expect("Project should be present.");
let mut settings = insta::Settings::clone_current();
settings.set_snapshot_path(SNAPSHOT_PATH);
settings.set_prepend_module_to_snapshot(false);
let _guard = settings.bind_to_scope();
insta::assert_yaml_snapshot!(project);
}
#[test]
fn binary_metamorphosis_v2_project_load() {
let file_path =
"../../test-data/Binary-metamorphosis/Binary metamorphosis V2.0/src/Bin_To_VB.vbp";
let project_file_bytes = std::fs::read(file_path).expect("Failed to read project file");
let result = SourceFile::decode_with_replacement(file_path, &project_file_bytes);
let source_file = match result {
Ok(source_file) => source_file,
Err(e) => panic!("Failed to decode source file '{file_path}': {e:?}"),
};
let (project_file_opt, failures) = ProjectFile::parse(&source_file).unpack();
if !failures.is_empty() {
for failure in &failures {
failure.print();
}
panic!("Project parse had failures");
}
let project = project_file_opt.expect("Project should be present.");
let mut settings = insta::Settings::clone_current();
settings.set_snapshot_path(SNAPSHOT_PATH);
settings.set_prepend_module_to_snapshot(false);
let _guard = settings.bind_to_scope();
insta::assert_yaml_snapshot!(project);
}
#[test]
fn binary_metamorphosis_v3_project_load() {
let file_path =
"../../test-data/Binary-metamorphosis/Binary metamorphosis V3.0/src/Bin_To_VB.vbp";
let project_file_bytes = std::fs::read(file_path).expect("Failed to read project file");
let result = SourceFile::decode_with_replacement(file_path, &project_file_bytes);
let source_file = match result {
Ok(source_file) => source_file,
Err(e) => panic!("Failed to decode source file '{file_path}': {e:?}"),
};
let (project_file_opt, failures) = ProjectFile::parse(&source_file).unpack();
if !failures.is_empty() {
for failure in &failures {
failure.print();
}
panic!("Project parse had failures");
}
let project = project_file_opt.expect("Project should be present.");
let mut settings = insta::Settings::clone_current();
settings.set_snapshot_path(SNAPSHOT_PATH);
settings.set_prepend_module_to_snapshot(false);
let _guard = settings.bind_to_scope();
insta::assert_yaml_snapshot!(project);
}
#[test]
fn binary_metamorphosis_tini_project_load() {
let file_path = "../../test-data/Binary-metamorphosis/tini/tini.vbp";
let project_file_bytes = std::fs::read(file_path).expect("Failed to read project file");
let result = SourceFile::decode_with_replacement(file_path, &project_file_bytes);
let source_file = match result {
Ok(source_file) => source_file,
Err(e) => panic!("Failed to decode source file '{file_path}': {e:?}"),
};
let (project_file_opt, failures) = ProjectFile::parse(&source_file).unpack();
if !failures.is_empty() {
for failure in &failures {
failure.print();
}
panic!("Project parse had failures");
}
let project = project_file_opt.expect("Project should be present.");
let mut settings = insta::Settings::clone_current();
settings.set_snapshot_path(SNAPSHOT_PATH);
settings.set_prepend_module_to_snapshot(false);
let _guard = settings.bind_to_scope();
insta::assert_yaml_snapshot!(project);
}