Skip to content

Commit

Permalink
test: add runtime checks in get_inputs test to check for mocked inputs
Browse files Browse the repository at this point in the history
on the Rust side
  • Loading branch information
greenhat committed Jul 17, 2024
1 parent 41491cb commit 859e350
Show file tree
Hide file tree
Showing 4 changed files with 415 additions and 29 deletions.
103 changes: 100 additions & 3 deletions tests/integration/expected/abi_transform_tx_kernel_get_inputs_4.hir
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,107 @@
;; Functions
(func (export #entrypoint) (param i32)
(block 0 (param v0 i32)
(call #miden_tx_kernel_sys::get_inputs v0)
(br (block 1)))
(let (v1 i32) (const.i32 0))
(let (v2 i32) (global.load i32 (global.symbol #__stack_pointer)))
(let (v3 i32) (const.i32 16))
(let (v4 i32) (sub.wrapping v2 v3))
(let (v5 (ptr i32)) (global.symbol #__stack_pointer))
(store v5 v4)
(let (v6 i32) (const.i32 4))
(let (v7 i32) (add.wrapping v4 v6))
(call #miden_tx_kernel_sys::get_inputs v7)
(let (v8 u32) (cast v4))
(let (v9 u32) (add.checked v8 12))
(let (v10 (ptr i32)) (inttoptr v9))
(let (v11 i32) (load v10))
(let (v12 i1) (eq v11 0))
(let (v13 i32) (cast v12))
(let (v14 i1) (neq v13 0))
(condbr v14 (block 2) (block 3)))

(block 1
(block 1)

(block 2
(unreachable))

(block 3
(let (v15 u32) (cast v4))
(let (v16 u32) (add.checked v15 8))
(let (v17 (ptr i32)) (inttoptr v16))
(let (v18 i32) (load v17))
(let (v19 u32) (cast v18))
(let (v20 (ptr felt)) (inttoptr v19))
(let (v21 felt) (load v20))
(let (v22 i64) (const.i64 4294967295))
(let (v23 felt) (cast v22))
(assert.eq v23 v21)
(let (v24 i32) (const.i32 1))
(let (v25 i1) (eq v11 v24))
(let (v26 i32) (cast v25))
(let (v27 i1) (neq v26 0))
(condbr v27 (block 2) (block 4)))

(block 4
(let (v28 u32) (cast v18))
(let (v29 u32) (add.checked v28 8))
(let (v30 (ptr felt)) (inttoptr v29))
(let (v31 felt) (load v30))
(let (v32 i64) (const.i64 1))
(let (v33 felt) (cast v32))
(assert.eq v33 v31)
(let (v34 i32) (const.i32 2))
(let (v35 u32) (cast v11))
(let (v36 u32) (cast v34))
(let (v37 i1) (lte v35 v36))
(let (v38 i32) (cast v37))
(let (v39 i1) (neq v38 0))
(condbr v39 (block 2) (block 5)))

(block 5
(let (v40 u32) (cast v18))
(let (v41 u32) (add.checked v40 16))
(let (v42 (ptr felt)) (inttoptr v41))
(let (v43 felt) (load v42))
(let (v44 i64) (const.i64 0))
(let (v45 felt) (cast v44))
(assert.eq v45 v43)
(let (v46 i32) (const.i32 3))
(let (v47 i1) (eq v11 v46))
(let (v48 i32) (cast v47))
(let (v49 i1) (neq v48 0))
(condbr v49 (block 2) (block 6)))

(block 6
(let (v50 u32) (cast v18))
(let (v51 u32) (add.checked v50 24))
(let (v52 (ptr felt)) (inttoptr v51))
(let (v53 felt) (load v52))
(let (v54 i64) (const.i64 4294967295))
(let (v55 felt) (cast v54))
(assert.eq v55 v53)
(let (v56 i32) (const.i32 8))
(let (v57 i32) (add.wrapping v0 v56))
(let (v58 i32) (const.i32 4))
(let (v59 i32) (add.wrapping v4 v58))
(let (v60 i32) (const.i32 8))
(let (v61 i32) (add.wrapping v59 v60))
(let (v62 u32) (cast v61))
(let (v63 (ptr i32)) (inttoptr v62))
(let (v64 i32) (load v63))
(let (v65 u32) (cast v57))
(let (v66 (ptr i32)) (inttoptr v65))
(store v66 v64)
(let (v67 u32) (cast v4))
(let (v68 u32) (add.checked v67 4))
(let (v69 (ptr i64)) (inttoptr v68))
(let (v70 i64) (load v69))
(let (v71 u32) (cast v0))
(let (v72 (ptr i64)) (inttoptr v71))
(store v72 v70)
(let (v73 i32) (const.i32 16))
(let (v74 i32) (add.wrapping v4 v73))
(let (v75 (ptr i32)) (global.symbol #__stack_pointer))
(store v75 v74)
(ret))
)

Expand Down
215 changes: 215 additions & 0 deletions tests/integration/expected/abi_transform_tx_kernel_get_inputs_4.masm
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,222 @@ export.get_inputs
use.miden::note

export.entrypoint
mem_load.0x00000000
push.16
u32wrapping_sub
push.4
dup.1
swap.1
u32wrapping_add
exec."miden_tx_kernel_sys::get_inputs"
dup.1
swap.1
dup.0
u32mod.16
dup.0
u32mod.4
swap.1
u32div.4
movup.2
u32div.16
exec.::intrinsics::mem::store_sw
dup.0
add.12
u32assert
dup.0
u32mod.16
dup.0
u32mod.4
swap.1
u32div.4
movup.2
u32div.16
exec.::intrinsics::mem::load_sw
dup.0
eq.0
neq.0
if.true
push.0 assert
else
dup.1
add.8
u32assert
dup.0
u32mod.16
dup.0
u32mod.4
swap.1
u32div.4
movup.2
u32div.16
exec.::intrinsics::mem::load_sw
dup.0
dup.0
u32mod.16
dup.0
u32mod.4
swap.1
u32div.4
movup.2
u32div.16
exec.::intrinsics::mem::load_felt
push.0.4294967295
dup.1
dup.1
push.4294967295.1
exec.::std::math::u64::lte
assert
mul
assert_eq
push.1
dup.2
swap.1
eq
neq.0
if.true
push.0 assert
else
dup.0
add.8
u32assert
dup.0
u32mod.16
dup.0
u32mod.4
swap.1
u32div.4
movup.2
u32div.16
exec.::intrinsics::mem::load_felt
push.0.1
dup.1
dup.1
push.4294967295.1
exec.::std::math::u64::lte
assert
mul
assert_eq
dup.1
push.2
u32lte
neq.0
if.true
push.0 assert
else
dup.0
add.16
u32assert
dup.0
u32mod.16
dup.0
u32mod.4
swap.1
u32div.4
movup.2
u32div.16
exec.::intrinsics::mem::load_felt
push.0.0
dup.1
dup.1
push.4294967295.1
exec.::std::math::u64::lte
assert
mul
assert_eq
push.3
movup.2
swap.1
eq
neq.0
if.true
push.0 assert
else
push.16
dup.2
swap.1
u32wrapping_add
dup.0
u32mod.16
dup.0
u32mod.4
swap.1
u32div.4
movup.2
u32div.16
exec.::intrinsics::mem::store_sw
dup.1
add.4
u32assert
dup.0
u32mod.16
dup.0
u32mod.4
swap.1
u32div.4
movup.2
u32div.16
exec.::intrinsics::mem::load_dw
dup.4
dup.0
u32mod.16
dup.0
u32mod.4
swap.1
u32div.4
movup.2
u32div.16
exec.::intrinsics::mem::store_dw
push.4
movup.2
swap.1
u32wrapping_add
push.8
u32wrapping_add
dup.0
u32mod.16
dup.0
u32mod.4
swap.1
u32div.4
movup.2
u32div.16
exec.::intrinsics::mem::load_sw
push.8
movup.3
swap.1
u32wrapping_add
dup.0
u32mod.16
dup.0
u32mod.4
swap.1
u32div.4
movup.2
u32div.16
exec.::intrinsics::mem::store_sw
add.24
u32assert
dup.0
u32mod.16
dup.0
u32mod.4
swap.1
u32div.4
movup.2
u32div.16
exec.::intrinsics::mem::load_felt
push.0.4294967295
dup.1
dup.1
push.4294967295.1
exec.::std::math::u64::lte
assert
mul
assert_eq
end
end
end
end
end


Expand Down
Loading

0 comments on commit 859e350

Please sign in to comment.