Skip to content

Commit 67ea645

Browse files
committed
fix unittest
1 parent a1e8dca commit 67ea645

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ceno_host/tests/test_elf.rs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -478,30 +478,34 @@ fn test_sha256_extend() -> Result<()> {
478478
634956631,
479479
];
480480

481+
let mut state = VMState::new_from_elf(unsafe_platform(), program_elf)?;
482+
let steps = run(&mut state)?;
483+
let syscalls = steps.iter().filter_map(|step| step.syscall()).collect_vec();
484+
assert_eq!(syscalls.len(), 48);
485+
481486
for round in 0..48 {
482-
let mut state = VMState::new_from_elf(unsafe_platform(), program_elf)?;
483-
let steps = run(&mut state)?;
484-
let syscalls = steps.iter().filter_map(|step| step.syscall()).collect_vec();
485-
assert_eq!(syscalls.len(), 1);
486-
let witness = syscalls[0];
487+
let witness = &syscalls[round];
487488

488489
assert_eq!(witness.reg_ops.len(), 1);
489490
assert_eq!(witness.reg_ops[0].register_index(), Platform::reg_arg0());
490491

492+
assert_eq!(
493+
witness.reg_ops[0].value.before,
494+
witness.reg_ops[0].value.after
495+
);
491496
let state_ptr = witness.reg_ops[0].value.before;
492-
assert_eq!(state_ptr + WORD_SIZE as u32, witness.reg_ops[0].value.after);
493497
let state_ptr: WordAddr = state_ptr.into();
494498

495499
assert_eq!(witness.mem_ops.len(), 5);
496500

497-
let offsets = [-2, -7, -15, -16, 0];
501+
let offsets = [2, 7, 15, 16, 0];
498502
for (i, write_op) in witness.mem_ops.iter().enumerate() {
499-
let mem_round_id = round + (16 + offsets[i]) as usize;
500-
assert_eq!(write_op.addr, state_ptr + mem_round_id as u32);
503+
let mem_addr: u32 = state_ptr.0 - offsets[i] as u32;
504+
assert_eq!(write_op.addr.0, mem_addr);
501505
if i < 4 {
502506
assert_eq!(write_op.value.before, write_op.value.after);
503507
} else {
504-
assert_eq!(write_op.value.after, expected[mem_round_id]);
508+
assert_eq!(write_op.value.after, expected[round + 16 - offsets[i]]);
505509
}
506510
}
507511
}

0 commit comments

Comments
 (0)