MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / run_test

Function run_test

cranelift/src/bugpoint.rs:1004–1038  ·  view source on GitHub ↗
(test_str: &str, expected_str: &str)

Source from the content-addressed store, hash-verified

1002 use super::*;
1003
1004 fn run_test(test_str: &str, expected_str: &str) {
1005 let test_file = parse_test(test_str, ParseOptions::default()).unwrap();
1006
1007 // If we have an isa from the command-line, use that. Otherwise if the
1008 // file contains a unique isa, use that.
1009 let isa = test_file.isa_spec.unique_isa().expect("Unknown isa");
1010
1011 for (func, _) in test_file.functions {
1012 let (reduced_func, crash_msg) =
1013 reduce(isa, func, false).expect("Couldn't reduce test case");
1014 assert_eq!(crash_msg, "test crash");
1015
1016 let (func_reduced_twice, crash_msg) =
1017 reduce(isa, reduced_func.clone(), false).expect("Couldn't re-reduce test case");
1018 assert_eq!(crash_msg, "test crash");
1019
1020 assert_eq!(
1021 block_count(&func_reduced_twice),
1022 block_count(&reduced_func),
1023 "reduction wasn't maximal for blocks"
1024 );
1025 assert_eq!(
1026 inst_count(&func_reduced_twice),
1027 inst_count(&reduced_func),
1028 "reduction wasn't maximal for insts"
1029 );
1030
1031 let actual_ir = format!("{reduced_func}");
1032 let expected_ir = expected_str.replace("\r\n", "\n");
1033 assert!(
1034 expected_ir == actual_ir,
1035 "Expected:\n{expected_ir}\nGot:\n{actual_ir}",
1036 );
1037 }
1038 }
1039
1040 #[test]
1041 fn test_reduce() {

Callers 2

test_reduceFunction · 0.70
test_constsFunction · 0.70

Calls 7

parse_testFunction · 0.85
reduceFunction · 0.85
unique_isaMethod · 0.80
unwrapMethod · 0.45
expectMethod · 0.45
cloneMethod · 0.45
replaceMethod · 0.45

Tested by 2

test_reduceFunction · 0.56
test_constsFunction · 0.56