Skip to content

Commit 49c7df0

Browse files
committed
Init wasm build test
1 parent 83e5759 commit 49c7df0

File tree

7 files changed

+46
-2
lines changed

7 files changed

+46
-2
lines changed

examples/default-contract/src/lib.rs

+12
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,15 @@ fn main() -> Result<()> {
3131

3232
Ok(())
3333
}
34+
35+
#[cfg(test)]
36+
mod tests {
37+
use sewup::compiletest;
38+
39+
fn run_wasm(mode: &'static str) {}
40+
41+
#[test]
42+
fn compile_test() {
43+
run_wasm("wasm-build");
44+
}
45+
}

sewup-derive/src/lib.rs

+14
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,11 @@ pub fn ewasm_main(attr: TokenStream, item: TokenStream) -> TokenStream {
4343
// This is for a scenario that you take care the result but not using Rust client
4444
"unwrap" => format!(
4545
r#"
46+
#[cfg(target_arch = "wasm32")]
4647
use sewup::bincode;
48+
#[cfg(target_arch = "wasm32")]
4749
use ewasm_api::finish_data;
50+
#[cfg(target_arch = "wasm32")]
4851
#[no_mangle]
4952
pub fn main() {{
5053
{}
@@ -72,8 +75,11 @@ pub fn ewasm_main(attr: TokenStream, item: TokenStream) -> TokenStream {
7275
// This is for a scenario that you are using a rust client to operation the contract
7376
"rusty" => format!(
7477
r#"
78+
#[cfg(target_arch = "wasm32")]
7579
use sewup::bincode;
80+
#[cfg(target_arch = "wasm32")]
7681
use ewasm_api::finish_data;
82+
#[cfg(target_arch = "wasm32")]
7783
#[no_mangle]
7884
pub fn main() {{
7985
{}
@@ -94,7 +100,9 @@ pub fn ewasm_main(attr: TokenStream, item: TokenStream) -> TokenStream {
94100
_ => format!(
95101
r#"
96102
use sewup::bincode;
103+
#[cfg(target_arch = "wasm32")]
97104
use ewasm_api::finish_data;
105+
#[cfg(target_arch = "wasm32")]
98106
#[no_mangle]
99107
pub fn main() {{
100108
{}
@@ -132,7 +140,9 @@ pub fn ewasm_fn(_attr: TokenStream, item: TokenStream) -> TokenStream {
132140
);
133141
format!(
134142
r#"
143+
#[cfg(target_arch = "wasm32")]
135144
pub(crate) const _{}_SIG: [u8; 4] = {:?};
145+
#[cfg(target_arch = "wasm32")]
136146
{}
137147
"#,
138148
fn_name.to_ascii_uppercase(),
@@ -167,7 +177,9 @@ pub fn ewasm_lib_fn(_attr: TokenStream, item: TokenStream) -> TokenStream {
167177
format!(
168178
r#"
169179
/// The siganature for fn {}
180+
#[cfg(target_arch = "wasm32")]
170181
pub const {}_SIG: [u8; 4] = {:?};
182+
#[cfg(target_arch = "wasm32")]
171183
{}
172184
"#,
173185
fn_name,
@@ -259,6 +271,7 @@ pub fn derive_value(item: TokenStream) -> TokenStream {
259271
let struct_name = cap.name("name").unwrap().as_str();
260272
format!(
261273
r#"
274+
#[cfg(target_arch = "wasm32")]
262275
impl sewup::kv::traits::Value for {} {{}}
263276
"#,
264277
struct_name,
@@ -278,6 +291,7 @@ pub fn derive_key(item: TokenStream) -> TokenStream {
278291
let struct_name = cap.name("name").unwrap().as_str();
279292
format!(
280293
r#"
294+
#[cfg(target_arch = "wasm32")]
281295
impl sewup::kv::traits::Key for {} {{}}
282296
"#,
283297
struct_name,

sewup/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ tiny-keccak = { version = "2.0.2", features = ["sha3"] }
2020
sewup-derive = { version = "0.0.3", path = "../sewup-derive" }
2121
bincode = "1.3"
2222
cryptoxide = "0.3.3"
23+
compiletest_rs = "0.7.0"
2324

2425
[dev-dependencies]
2526
tempfile = "3.2.0"

sewup/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,4 @@ pub mod types;
3636
mod tests;
3737

3838
pub use bincode;
39+
pub use compiletest_rs as compiletest;

sewup/src/primitives.rs

+8
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,16 @@ pub struct Contract {
1313

1414
impl Contract {
1515
pub fn new() -> Result<Self> {
16+
#[cfg(target_arch = "wasm32")]
1617
let data_size = ewasm_api::calldata_size();
18+
#[cfg(not(target_arch = "wasm32"))]
19+
let data_size = 0;
20+
21+
#[cfg(target_arch = "wasm32")]
1722
let input_data = ewasm_api::calldata_acquire();
23+
#[cfg(not(target_arch = "wasm32"))]
24+
let input_data = Vec::new();
25+
1826
if data_size < 4 {
1927
Err(ContractSizeError(data_size).into())
2028
} else {

sewup/src/tests.rs

+8
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,11 @@ fn test_execute_rusty_contract() {
109109
vec![0, 0, 0, 0],
110110
);
111111
}
112+
113+
extern crate compiletest_rs as compiletest;
114+
fn run_mode(mode: &'static str) {}
115+
116+
#[test]
117+
fn compile_test() {
118+
run_mode("wasm-build");
119+
}

sewup/src/types/raw.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::{convert::TryFrom, fmt, iter::FromIterator};
22

33
use serde::{Deserialize, Deserializer, Serialize, Serializer};
4-
use serde_derive::Deserialize;
4+
use serde_derive::Deserialize as DeserializeDerive;
55

66
use crate::types::*;
77

@@ -13,7 +13,7 @@ pub struct Raw {
1313
// flag: u8,
1414
}
1515

16-
#[derive(Deserialize, Debug, PartialEq)]
16+
#[derive(DeserializeDerive, Debug, PartialEq)]
1717
struct RawHelper {
1818
e01: u8,
1919
e02: u8,

0 commit comments

Comments
 (0)