in executor/src/wamr.rs [307:354]
fn test_wamr_millionaire() {
let mut args = HashMap::new();
args.insert("input_file_id1".to_string(), "pf_in_a".to_string());
args.insert("input_file_id2".to_string(), "pf_in_b".to_string());
args.insert("output_file_id".to_string(), "pf_out".to_string());
let args = FunctionArguments::from_map(args);
let mut file = fs::File::open(
"../../examples/python/wasm_c_millionaire_problem_payload/millionaire_problem.wasm",
)
.unwrap();
let mut wa_payload = Vec::new();
file.read_to_end(&mut wa_payload).unwrap();
let input_a = "fixtures/functions/wamr_c_millionaire_problem/input_a.txt";
let input_b = "fixtures/functions/wamr_c_millionaire_problem/input_b.txt";
let output = "fixtures/functions/wamr_c_millionaire_problem/output.txt";
let expected_output = "fixtures/functions/wamr_c_millionaire_problem/expected_output.txt";
let input_a_info =
StagedFileInfo::new(input_a, TeaclaveFile128Key::random(), FileAuthTag::mock());
let input_b_info =
StagedFileInfo::new(input_b, TeaclaveFile128Key::random(), FileAuthTag::mock());
let output_info =
StagedFileInfo::new(output, TeaclaveFile128Key::random(), FileAuthTag::mock());
let input_files =
StagedFiles::new(hashmap!("pf_in_a" => input_a_info, "pf_in_b" => input_b_info));
let output_files = StagedFiles::new(hashmap!("pf_out" => output_info));
let runtime = Box::new(RawIoRuntime::new(input_files, output_files));
let function = WAMicroRuntime::default();
let summary = function
.execute("".to_string(), args, wa_payload, runtime)
.unwrap();
log::debug!(
"IN TEST test_wamr_millionaire: AFTER execution, summary: {:?}",
summary
);
assert_eq!(summary, "7");
let output = fs::read_to_string(output).unwrap();
let expected = fs::read_to_string(expected_output).unwrap();
assert_eq!(&output[..], &expected[..]);
}