Skip to content

Commit 36466a6

Browse files
committed
join tests for BrTrue and BrFalse
1 parent 1ad0730 commit 36466a6

File tree

1 file changed

+20
-36
lines changed
  • crates/move-bytecode-verifier/src/type_safety_tests

1 file changed

+20
-36
lines changed

crates/move-bytecode-verifier/src/type_safety_tests/mod.rs

Lines changed: 20 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -48,64 +48,48 @@ fn get_fun_context(module: &CompiledModule) -> FunctionContext {
4848

4949

5050
#[test]
51-
fn test_br_true_correct_type() {
52-
let code = vec![Bytecode::LdTrue, Bytecode::BrTrue(0)];
51+
fn test_br_true_false_correct_type() {
52+
for instr in vec![
53+
Bytecode::BrTrue(0),
54+
Bytecode::BrFalse(0),
55+
] {
56+
let code = vec![Bytecode::LdTrue, instr];
5357
let module = make_module(code);
5458
let fun_context = get_fun_context(&module);
5559
let result = type_safety::verify(&module, &fun_context, &mut DummyMeter);
5660
assert!(result.is_ok());
5761
}
58-
59-
#[test]
60-
fn test_br_true_wrong_type() {
61-
let code = vec![Bytecode::LdU32(0), Bytecode::BrTrue(0)];
62-
let module = make_module(code);
63-
let fun_context = get_fun_context(&module);
64-
let result = type_safety::verify(&module, &fun_context, &mut DummyMeter);
65-
assert_eq!(
66-
result.unwrap_err().major_status(),
67-
StatusCode::BR_TYPE_MISMATCH_ERROR
68-
);
69-
}
70-
71-
#[test]
72-
#[should_panic]
73-
fn test_br_true_no_arg() {
74-
let code = vec![Bytecode::BrTrue(0)];
75-
let module = make_module(code);
76-
let fun_context = get_fun_context(&module);
77-
let _result = type_safety::verify(&module, &fun_context, &mut DummyMeter);
78-
}
79-
80-
81-
#[test]
82-
fn test_br_false_correct_type() {
83-
let code = vec![Bytecode::LdTrue, Bytecode::BrFalse(0)];
84-
let module = make_module(code);
85-
let fun_context = get_fun_context(&module);
86-
let result = type_safety::verify(&module, &fun_context, &mut DummyMeter);
87-
assert!(result.is_ok());
8862
}
8963

9064
#[test]
91-
fn test_br_false_wrong_type() {
92-
let code = vec![Bytecode::LdU32(0), Bytecode::BrFalse(0)];
65+
fn test_br_true_false_wrong_type() {
66+
for instr in vec![
67+
Bytecode::BrTrue(0),
68+
Bytecode::BrFalse(0),
69+
] {
70+
let code = vec![Bytecode::LdU32(0), instr];
9371
let module = make_module(code);
9472
let fun_context = get_fun_context(&module);
9573
let result = type_safety::verify(&module, &fun_context, &mut DummyMeter);
9674
assert_eq!(
9775
result.unwrap_err().major_status(),
9876
StatusCode::BR_TYPE_MISMATCH_ERROR
9977
);
78+
}
10079
}
10180

10281
#[test]
10382
#[should_panic]
104-
fn test_br_false_no_arg() {
105-
let code = vec![Bytecode::BrFalse(0)];
83+
fn test_br_true_false_no_arg() {
84+
for instr in vec![
85+
Bytecode::BrTrue(0),
86+
Bytecode::BrFalse(0),
87+
] {
88+
let code = vec![instr];
10689
let module = make_module(code);
10790
let fun_context = get_fun_context(&module);
10891
let _result = type_safety::verify(&module, &fun_context, &mut DummyMeter);
92+
}
10993
}
11094

11195

0 commit comments

Comments
 (0)