Skip to content

Commit dfdf185

Browse files
author
Marge Bot
committed
Merge tezos/tezos!15338: RISC-V: Add regression tests for Jstz
Co-authored-by: Ole Krüger <[email protected]> Approved-by: Victor Dumitrescu <[email protected]> Approved-by: Emma Turner <[email protected]> See merge request https://gitlab.com/tezos/tezos/-/merge_requests/15338
2 parents 36eadea + f810326 commit dfdf185

File tree

9 files changed

+206
-12
lines changed

9 files changed

+206
-12
lines changed

src/kernel_sdk/utils/src/inbox.rs

+1
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ impl Default for InboxBuilder {
180180
}
181181

182182
/// Inbox
183+
#[derive(Clone)]
183184
pub struct Inbox {
184185
current_level: u32,
185186
current_id: u32,

src/riscv/.cargo/config.toml

+3
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,6 @@ rustflags = ["-C", "link-args=-Wl,-undefined,dynamic_lookup"]
55
[profile.profiling]
66
inherits = "release"
77
debug = true
8+
9+
[profile.test]
10+
opt-level = 1
+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
[
2+
[
3+
{
4+
"external": "000000000000000000000000000000000000000000000000002000000000000000edadfe6cfe7b716a47cb43d7901504fefef6e3c2d4c84decaa7ec5d8c404800a0000000040000000000000004fd8b650f46128bf5c7edfe3c72de5ae420da3b4a78843eca103e14514efc6c337819ebef88b499d613371d6d3e6bb081745562b87172fe41105cd759eb75100000000001400000000000000cb4197b79836b135dc5bf07449b0d058fb84a395000000000000000000000000b80e00000000000066756e6374696f6e206f2865297b72657475726e20747970656f6620653d3d22737472696e67227d66756e6374696f6e206128652c72297b72657475726e2041727261792e697341727261792872292626722e72656475636528286e2c74293d3e6e2626652874292c2130297d66756e6374696f6e20692865297b72657475726e20747970656f6620653d3d226e756d6265722226264e756d6265722e6973496e74656765722865297d66756e6374696f6e206b2865297b6c657420723d653b7472797b72657475726e206f28722e746f2926266928722e746f6b656e5f69642926264e756d6265722e6973496e746567657228722e616d6f756e74297d63617463687b72657475726e21317d7d66756e6374696f6e20772865297b6c657420723d653b7472797b72657475726e206f28722e66726f6d29262661286b2c722e7472616e7366657273297d63617463687b72657475726e21317d7d66756e6374696f6e20412865297b6c657420723d653b7472797b72657475726e28722e6f7065726174696f6e3d3d3d226164645f6f70657261746f72227c7c722e6f7065726174696f6e3d3d3d2272656d6f76655f6f70657261746f72222926266f28722e6f776e65722926266f28722e6f70657261746f722926266928722e746f6b656e5f6964297d63617463687b72657475726e21317d7d66756e6374696f6e20702865297b6c657420723d653b7472797b72657475726e206f28722e6f776e65722926266928722e746f6b656e5f6964297d63617463687b72657475726e21317d7d66756e6374696f6e205f2865297b6c657420723d653b7472797b72657475726e206128702c722e7265717565737473297d63617463687b72657475726e21317d7d66756e6374696f6e20712865297b6c657420723d653b7472797b72657475726e207028722e726571756573742926264e756d6265722e6973496e746567657228722e62616c616e6365297d63617463687b72657475726e21317d7d66756e6374696f6e20672865297b6c657420723d653b7472797b72657475726e206928722e746f6b656e5f69642926266f28722e6f776e65722926264e756d6265722e6973496e746567657228722e616d6f756e74297d63617463687b72657475726e21317d7d66756e6374696f6e20642865297b72657475726e60746f6b656e2f247b657d607d66756e6374696f6e20522865297b6c657420723d642865293b6966284b762e676574287229297468726f77224641325f544f4b454e5f49445f455849535453223b4b762e73657428642865292c2130297d66756e6374696f6e204f2865297b696628214b762e676574286428652929297468726f77224641325f544f4b454e5f554e444546494e4544227d66756e6374696f6e206c28652c72297b72657475726e6062616c616e63652f247b657d2f247b727d607d66756e6374696f6e206d28652c72297b72657475726e204b762e676574286c28652c7229297c7c307d66756e6374696f6e206828652c722c6e297b6966286e3c30297468726f77224641325f494e53554646494349454e545f42414c414e4345223b4b762e736574286c28652c72292c6e297d66756e6374696f6e207528652c722c6e297b6c657420743d6d28652c72293b6828652c722c742b6e297d66756e6374696f6e207928652c722c6e2c74297b7528652c6e2c2d74292c7528722c6e2c74297d66756e6374696f6e206628652c722c6e297b72657475726e606f776e65722f247b657d2f247b727d2f247b6e7d607d66756e6374696f6e204928652c722c6e297b4b762e736574286628652c722c6e292c2130297d66756e6374696f6e206228652c722c6e297b4b762e64656c657465286628652c722c6e29297d66756e6374696f6e205428652c722c6e297b6966282128653d3d3d727c7c4b762e676574286628652c722c6e292929297468726f77224641325f4e4f545f4f50455241544f52227d66756e6374696f6e204228652c72297b69662865213d3d72297468726f7720636f6e736f6c652e6c6f672860247b657d20213d3d20247b727d60292c224641325f4e4f545f4f574e4552227d66756e6374696f6e204e28652c722c6e297b4f286e2e746f6b656e5f6964292c5428652c722c6e2e746f6b656e5f6964292c7928652c6e2e746f2c6e2e746f6b656e5f69642c6e2e616d6f756e74297d66756e6374696f6e207828652c72297b722e666f7245616368286e3d3e6e2e7472616e73666572732e666f724561636828743d3e4e286e2e66726f6d2c652c742929297d66756e6374696f6e207628652c72297b73776974636828722e6f7065726174696f6e297b63617365226164645f6f70657261746f72223a4228722e6f776e65722c65292c4928722e6f776e65722c722e6f70657261746f722c722e746f6b656e5f6964293b627265616b3b636173652272656d6f76655f6f70657261746f72223a5428722e6f776e65722c652c722e746f6b656e5f6964292c6228722e6f776e65722c722e6f70657261746f722c722e746f6b656e5f6964297d7d66756e6374696f6e20452865297b6c657420723d6d28652e6f776e65722c652e746f6b656e5f6964293b72657475726e20636f6e736f6c652e6c6f672860247b652e6f776e65727d2068617320247b727d206f6620746f6b656e20247b652e746f6b656e5f69647d60292c7b726571756573743a652c62616c616e63653a727d7d66756e6374696f6e20532865297b72657475726e20652e72657175657374732e6d61702845297d66756e6374696f6e204b2865297b5228652e746f6b656e5f6964292c7528652e6f776e65722c652e746f6b656e5f69642c652e616d6f756e74297d6173796e632066756e6374696f6e20552865297b6c657420723d6e65772055524c28652e75726c292c6e3d722e706174686e616d653b7472797b737769746368286e297b63617365222f70696e67223a72657475726e20636f6e736f6c652e6c6f67282248656c6c6f2066726f6d2072756e6e657220736d6172742066756e6374696f6e205c757b31463434427d22292c6e657720526573706f6e73652822506f6e6722293b63617365222f62616c616e63655f6f66223a696628652e6d6574686f643d3d3d2247455422297b6c657420733d7b72657175657374733a4a534f4e2e70617273652861746f6228722e736561726368506172616d732e67657428227265717565737473222929297d3b6966285f287329297b6c657420633d532873293b72657475726e20526573706f6e73652e6a736f6e2863297d656c73652072657475726e20636f6e736f6c652e6572726f722822496e76616c696420706172616d6574657273222c73292c526573706f6e73652e6572726f7228297d656c73657b6c657420733d222f62616c616e63655f6f662069732061204745542072657175657374223b72657475726e20636f6e736f6c652e6572726f722873292c6e657720526573706f6e736528732c7b7374617475733a3530307d297d63617365222f7472616e73666572223a696628652e6d6574686f643d3d3d22504f535422297b6c657420733d617761697420652e6a736f6e28293b72657475726e206128772c73293f287828652e686561646572732e67657428225265666572657222292c73292c6e657720526573706f6e7365282253756363657373212229293a28636f6e736f6c652e6572726f722822496e76616c696420706172616d6574657273222c4a534f4e2e737472696e67696679287329292c526573706f6e73652e6572726f722829297d656c73657b6c657420733d222f7472616e73666572206973206120504f53542072657175657374223b72657475726e20636f6e736f6c652e6572726f722873292c6e657720526573706f6e736528732c7b7374617475733a3530307d297d63617365222f6d696e745f6e6577223a696628652e6d6574686f643d3d3d22504f535422297b6c657420733d617761697420652e6a736f6e28293b72657475726e206128672c73293f28732e666f7245616368284b292c6e657720526573706f6e7365282253756363657373212229293a28636f6e736f6c652e6572726f722822496e76616c696420706172616d6574657273222c4a534f4e2e737472696e67696679287329292c526573706f6e73652e6572726f722829297d656c73657b6c657420733d222f6d696e745f6e6577206973206120504f53542072657175657374223b72657475726e20636f6e736f6c652e6572726f722873292c6e657720526573706f6e736528732c7b7374617475733a3530307d297d63617365222f7570646174655f6f70657261746f7273223a696628652e6d6574686f643d3d3d2250555422297b6c657420733d617761697420652e6a736f6e28293b72657475726e206128412c73293f28732e666f724561636828633d3e7628652e686561646572732e67657428225265666572657222292c6329292c6e657720526573706f6e7365282253756363657373212229293a28636f6e736f6c652e6572726f722822496e76616c696420706172616d6574657273222c4a534f4e2e737472696e67696679287329292c526573706f6e73652e6572726f722829297d656c73657b6c657420733d222f7570646174655f6f70657261746f72732069732061205055542072657175657374223b72657475726e20636f6e736f6c652e6572726f722873292c6e657720526573706f6e736528732c7b7374617475733a3530307d297d64656661756c743a6c657420743d60556e7265636f676e6973656420656e747279706f696e7420247b6e7d603b72657475726e20636f6e736f6c652e6572726f722874292c6e657720526573706f6e736528742c7b7374617475733a3430347d297d7d63617463682874297b7468726f7720636f6e736f6c652e6572726f722874292c747d7d76617220463d553b6578706f72747b462061732064656661756c742c5f20617320697342616c616e63654f662c7020617320697342616c616e6365526571756573742c7120617320697342616c616e6365526573706f6e73652c672061732069734d696e744e65772c69206173206973546f6b656e49642c6b2061732069735472616e736665722c772061732069735472616e73666572732c412061732069735570646174654f70657261746f727d3b0a0000000000000000"
5+
},
6+
{
7+
"external": "000000000000000000000000000000000000000000000000002000000000000000edadfe6cfe7b716a47cb43d7901504fefef6e3c2d4c84decaa7ec5d8c404800a0000000040000000000000003e7e298c5a15efb985369fb5756746dddd3d7c9f408d893c229b33e1b3563eab7cb81a0f650660eb6a086ee9bc7f9e1989242fcf7b9da990e6c7cffbab06b705000000001400000000000000cb4197b79836b135dc5bf07449b0d058fb84a395010000000000000001000000350000000000000074657a6f733a2f2f747a314c474a776e734d6a5637667370506954386f4a62476546776743366458703152372f6d696e745f6e65770400000000000000504f5354000000000000000001dc000000000000005b7b22746f6b656e5f6964223a302c226f776e6572223a22747a3165416b53577964783246454233445263696573673852634b64596f784172393578222c22616d6f756e74223a347d2c7b22746f6b656e5f6964223a312c226f776e6572223a22747a316850796836786b616a614c62544b6a48764b7338336b65694c6861324c46387851222c22616d6f756e74223a347d2c7b22746f6b656e5f6964223a322c226f776e6572223a22747a31526e616f416f64657478534d4775527542515275714270394e736e647867343244222c22616d6f756e74223a347d5da086010000000000"
8+
}
9+
],
10+
[
11+
{
12+
"external": "000000000000000000000000000000000000000000000000002000000000000000edadfe6cfe7b716a47cb43d7901504fefef6e3c2d4c84decaa7ec5d8c404800a00000000400000000000000095409a6c9083cb8ed5a21b215aa65f000a0ad7417606c49b2b44147e9587b9a0f9a1ad691592b4f3f453dd694d390f54b08ed70c55d382c633c8bbd86f39d604000000001400000000000000cb4197b79836b135dc5bf07449b0d058fb84a395020000000000000001000000350000000000000074657a6f733a2f2f747a314c474a776e734d6a5637667370506954386f4a62476546776743366458703152372f7472616e736665720400000000000000504f535400000000000000000185000000000000005b7b2266726f6d223a22747a3165416b53577964783246454233445263696573673852634b64596f784172393578222c227472616e7366657273223a5b7b22746f6b656e5f6964223a302c22616d6f756e74223a322c22746f223a22747a316850796836786b616a614c62544b6a48764b7338336b65694c6861324c46387851227d5d7d5da086010000000000"
13+
},
14+
{
15+
"external": "0000000000000000000000000000000000000000000000000020000000000000005cc6bbdb7c8217a70e79f54c50ae51fb73cef19d18d7bc66c87135b1fcf073a9000000004000000000000000ee18273d4ab7037aa22563a46124e0cc7c2f831ba0fbee2c57686f7d2e161ad8ef7cc8ef8d4291dfde1e8f27a40983a4764eaac5ca771397253242320034de05000000001400000000000000eeaa7074a27463d707bf4b28e70460c70d3b7040000000000000000001000000350000000000000074657a6f733a2f2f747a314c474a776e734d6a5637667370506954386f4a62476546776743366458703152372f7472616e736665720400000000000000504f535400000000000000000185000000000000005b7b2266726f6d223a22747a316850796836786b616a614c62544b6a48764b7338336b65694c6861324c46387851222c227472616e7366657273223a5b7b22746f6b656e5f6964223a302c22616d6f756e74223a312c22746f223a22747a31526e616f416f64657478534d4775527542515275714270394e736e647867343244227d5d7d5da086010000000000"
16+
}
17+
],
18+
[
19+
{
20+
"external": "000000000000000000000000000000000000000000000000002000000000000000edadfe6cfe7b716a47cb43d7901504fefef6e3c2d4c84decaa7ec5d8c404800a0000000040000000000000004817e81023bd3e5e93e2c7a83f41da3fcc79aafd67169e533cc4827edc54f6fe6f14ee2a9d6b7020cb5a18638b902dd5d800ebbf3c4a5644ea5cd3d72588d90c000000001400000000000000cb4197b79836b135dc5bf07449b0d058fb84a3950300000000000000010000003d0100000000000074657a6f733a2f2f747a314c474a776e734d6a5637667370506954386f4a62476546776743366458703152372f62616c616e63655f6f663f72657175657374733d57337369644739725a573566615751694f6a4173496d3933626d5679496a6f6964486f785a554672553164355a486779526b56434d30525359326c6c63326334556d4e4c5a466c76654546794f545634496e307365794a306232746c626c39705a4349364d537769623364755a5849694f694a30656a466c5157745456336c6b65444a475255497a52464a6a6157567a5a7a68535930746b57573934515849354e58676966537837496e52766132567558326c6b496a6f794c434a766432356c63694936496e52364d57564261314e58655752344d6b5a46516a4e45556d4e705a584e6e4f464a6a5332525a62336842636a6b3165434a3958513d3d0300000000000000474554000000000000000000a086010000000000"
21+
},
22+
{
23+
"external": "0000000000000000000000000000000000000000000000000020000000000000005cc6bbdb7c8217a70e79f54c50ae51fb73cef19d18d7bc66c87135b1fcf073a90000000040000000000000000d3bb8bf0008eb9e57bde3465c2f021b93fb6e21621d712972a76d27f362053676fea25f0d919d700da516964e5d78cf08e1bad0d11e0454ed63a6cf1adddf06000000001400000000000000eeaa7074a27463d707bf4b28e70460c70d3b70400100000000000000010000003d0100000000000074657a6f733a2f2f747a314c474a776e734d6a5637667370506954386f4a62476546776743366458703152372f62616c616e63655f6f663f72657175657374733d57337369644739725a573566615751694f6a4173496d3933626d5679496a6f6964486f786146423561445a3461324671595578695645747153485a4c637a677a61325670544768684d6b78474f486852496e307365794a306232746c626c39705a4349364d537769623364755a5849694f694a30656a466f55486c6f4e6e68725957706854474a5553327049646b747a4f444e725a576c4d61474579544559346546456966537837496e52766132567558326c6b496a6f794c434a766432356c63694936496e52364d5768516557673265477468616d464d596c524c616b683253334d344d32746c6155786f59544a4d526a683455534a3958513d3d0300000000000000474554000000000000000000a086010000000000"
24+
},
25+
{
26+
"external": "000000000000000000000000000000000000000000000000002000000000000000a4a9d0ee7287dc01ffc893ed1e92d124ff7016582b75d9198f726aee8ef4c82c000000004000000000000000636cc7ad1761a0717ee323b2fd540e26f0af556ebd290453372680e44f92898f44d448694a1fe0b8ee96afe95ea121801320de1168831882187fac9526c84508000000001400000000000000436ee1b964a1980f95e6982a9f0986c98f60c2620000000000000000010000003d0100000000000074657a6f733a2f2f747a314c474a776e734d6a5637667370506954386f4a62476546776743366458703152372f62616c616e63655f6f663f72657175657374733d57337369644739725a573566615751694f6a4173496d3933626d5679496a6f6964486f78556d3568623046765a47563065464e4e5233565364554a52556e5678516e4135546e4e755a48686e4e444a45496e307365794a306232746c626c39705a4349364d537769623364755a5849694f694a30656a4653626d46765157396b5a5852345530314864564a31516c46536458464363446c4f6332356b654763304d6b516966537837496e52766132567558326c6b496a6f794c434a766432356c63694936496e52364d564a75595739426232526c6448685454556431556e564355564a3163554a774f55357a626d52345a7a517952434a3958513d3d0300000000000000474554000000000000000000a086010000000000"
27+
}
28+
]
29+
]

src/riscv/lib/src/state_backend/elems.rs

-12
Original file line numberDiff line numberDiff line change
@@ -100,15 +100,3 @@ impl<E: Elem, const LEN: usize> Elem for [E; LEN] {
100100
new
101101
}
102102
}
103-
104-
#[cfg(test)]
105-
mod tests {
106-
#[test]
107-
fn test_bool_repr() {
108-
proptest::proptest!(|(val: u8)| {
109-
let bool_val: bool = unsafe {std::mem::transmute_copy(&val)};
110-
let truthy = val & 1 == 1;
111-
assert_eq!(bool_val, truthy);
112-
});
113-
}
114-
}

src/riscv/lib/src/stepper/pvm.rs

+11
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,17 @@ impl<'hooks, ML: MainMemoryLayout, CL: CacheLayouts> PvmStepper<'hooks, ML, CL>
117117
}
118118
}
119119
}
120+
121+
/// Obtain the root hash for the PVM state.
122+
pub fn hash(&self) -> crate::state_backend::hash::Hash
123+
where
124+
for<'a> crate::state_backend::AllocatedOf<PvmLayout<ML, CL>, crate::state_backend::Ref<'a, Owned>>:
125+
crate::state_backend::hash::RootHashable,
126+
{
127+
use crate::state_backend::hash::RootHashable;
128+
let refs = self.pvm.struct_ref();
129+
RootHashable::hash(&refs).unwrap()
130+
}
120131
}
121132

122133
impl<'hooks, ML: MainMemoryLayout, CL: CacheLayouts> Stepper for PvmStepper<'hooks, ML, CL> {

0 commit comments

Comments
 (0)