Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions crates/forge/tests/data/wasm_oracles/Scarb.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[package]
name = "oracles"
version = "0.1.0"
edition = "2024_07"
assets = ["wasm_oracle.wasm"]

#[[target.starknet-contract]]
#sierra = true

[dependencies]
oracle = "1"
starknet = "2.4.0"
Comment on lines +5 to +12
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:

Suggested change
assets = ["wasm_oracle.wasm"]
#[[target.starknet-contract]]
#sierra = true
[dependencies]
oracle = "1"
starknet = "2.4.0"
assets = ["wasm_oracle.wasm"]
[dependencies]
oracle = "1"
starknet = "2.12.0"


[dev-dependencies]
snforge_std = { path = "../../../../../snforge_std" }
10 changes: 10 additions & 0 deletions crates/forge/tests/data/wasm_oracles/build-fixtures.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env sh
set -ex

# Run this script to generate wasm fixtures from their sources.
# Prebuilt fixtures are expected to be committed to the repository.

cd "$(dirname "$0")"

cargo build --manifest-path=wasm_oracle/Cargo.toml --release --target wasm32-wasip2
cp wasm_oracle/target/wasm32-wasip2/release/wasm_oracle.wasm .
1 change: 1 addition & 0 deletions crates/forge/tests/data/wasm_oracles/src/lib.cairo
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

43 changes: 43 additions & 0 deletions crates/forge/tests/data/wasm_oracles/tests/test.cairo
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know these tests are enough but are there any other (more complicated) scenarios that we could cover?

Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
use core::panics::panic_with_byte_array;

mod wasm_oracle {
pub fn add(left: u64, right: u64) -> oracle::Result<u64> {
oracle::invoke("wasm:wasm_oracle.wasm", "add", (left, right))
}

pub fn err() -> oracle::Result<Result<ByteArray, ByteArray>> {
oracle::invoke("wasm:wasm_oracle.wasm", "err", ())
}

pub fn panic() -> oracle::Result<Result<ByteArray, ByteArray>> {
oracle::invoke("wasm:wasm_oracle.wasm", "panic", ())
}
}

#[test]
fn add() {
assert!(wasm_oracle::add(2, 3) == Ok(5));
}

#[test]
fn err() {
assert!(wasm_oracle::err() == Ok(Err("failed hard")));
}

#[should_panic]
#[test]
fn panic() {
wasm_oracle::panic().unwrap().unwrap();
}

#[test]
fn unexpected_panic() {
wasm_oracle::panic().unwrap().unwrap();
}

#[test]
fn panic_contents() {
let err = wasm_oracle::panic().unwrap_err();
// Panic with error so we get better error than "unwrap failed"
panic_with_byte_array(@format!("{}", err))
}
Binary file not shown.
Loading
Loading