Add dev normalized→MIR bridge for P1/P2 mini and JP _atoi
This commit is contained in:
@ -7,6 +7,7 @@ use nyash_rust::mir::join_ir::{
|
||||
JoinFunction, JoinInst, JoinIrPhase, JoinModule, MirLikeInst,
|
||||
};
|
||||
use nyash_rust::mir::join_ir::normalized::fixtures::{
|
||||
build_jsonparser_atoi_structured_for_normalized_dev,
|
||||
build_jsonparser_skip_ws_structured_for_normalized_dev,
|
||||
build_pattern2_break_fixture_structured, build_pattern2_minimal_structured,
|
||||
};
|
||||
@ -331,7 +332,7 @@ fn normalized_pattern2_jsonparser_runner_dev_switch_matches_structured() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn normalized_pattern2_vm_bridge_dev_switch_matches_structured() {
|
||||
fn normalized_pattern2_vm_bridge_direct_matches_structured() {
|
||||
let structured = build_pattern2_break_fixture_structured();
|
||||
let entry = structured.entry.expect("structured entry required");
|
||||
let cases = [0, 1, 3, 5];
|
||||
@ -353,7 +354,7 @@ fn normalized_pattern2_vm_bridge_dev_switch_matches_structured() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn normalized_pattern1_vm_bridge_dev_switch_matches_structured() {
|
||||
fn normalized_pattern1_vm_bridge_direct_matches_structured() {
|
||||
let structured = build_structured_pattern1();
|
||||
let entry = structured.entry.expect("structured entry required");
|
||||
let cases = [0, 5, 7];
|
||||
@ -369,7 +370,7 @@ fn normalized_pattern1_vm_bridge_dev_switch_matches_structured() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn normalized_pattern2_jsonparser_vm_bridge_dev_switch_matches_structured() {
|
||||
fn normalized_pattern2_jsonparser_vm_bridge_direct_matches_structured() {
|
||||
let structured = build_jsonparser_skip_ws_structured_for_normalized_dev();
|
||||
let entry = structured.entry.expect("structured entry required");
|
||||
let cases = [0, 1, 2, 5];
|
||||
@ -383,3 +384,29 @@ fn normalized_pattern2_jsonparser_vm_bridge_dev_switch_matches_structured() {
|
||||
assert_eq!(dev, JoinValue::Int(len), "unexpected result at len={}", len);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn normalized_pattern2_jsonparser_atoi_vm_bridge_direct_matches_structured() {
|
||||
let structured = build_jsonparser_atoi_structured_for_normalized_dev();
|
||||
let entry = structured.entry.expect("structured entry required");
|
||||
let cases = [
|
||||
("42", 2, 42),
|
||||
("123abc", 6, 123),
|
||||
("007", 3, 7),
|
||||
("", 0, 0),
|
||||
];
|
||||
|
||||
for (s, len, expected) in cases {
|
||||
let input = [JoinValue::Str(s.to_string()), JoinValue::Int(len)];
|
||||
let base = run_joinir_vm_bridge(&structured, entry, &input, false);
|
||||
let dev = run_joinir_vm_bridge(&structured, entry, &input, true);
|
||||
|
||||
assert_eq!(base, dev, "vm bridge mismatch for input '{}'", s);
|
||||
assert_eq!(
|
||||
dev,
|
||||
JoinValue::Int(expected),
|
||||
"unexpected result for input '{}'",
|
||||
s
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user