diff --git a/Config.toml b/Config.toml new file mode 100644 index 0000000..0486bbe --- /dev/null +++ b/Config.toml @@ -0,0 +1,19 @@ +modules_dir = "artifacts/" + +[[module]] + name = "sqlite3" + mem_pages_count = 100 + logger_enabled = false + + [module.wasi] + preopened_files = ["/tmp"] + mapped_dirs = { "tmp" = "/tmp" } + +[[module]] + name = "test" + mem_pages_count = 1 + logger_enabled = false + + [module.wasi] + preopened_files = ["/tmp"] + mapped_dirs = { "tmp" = "/tmp" } diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..126789b --- /dev/null +++ b/build.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -o errexit -o nounset -o pipefail + +# set current working directory to script directory to run script from everywhere +cd "$(dirname "$0")" + +# build aqua-dht.wasm +marine build --release + +# copy .wasm to artifacts +rm -f artifacts/* +mkdir -p artifacts +cp target/wasm32-wasi/release/test.wasm artifacts/ + +# download SQLite 3 to use in tests +curl -L https://github.com/fluencelabs/sqlite/releases/download/v0.14.0_w/sqlite3.wasm -o artifacts/sqlite3.wasm + +# generate Aqua bindings +#marine aqua artifacts/aqua-dht.wasm -s AquaDHT -i aqua-dht >../aqua/dht.aqua diff --git a/src/test.rs b/src/test.rs index 2907bde..6a281c8 100644 --- a/src/test.rs +++ b/src/test.rs @@ -84,3 +84,26 @@ pub fn test3() { println!("age = {}", row[1].as_integer().unwrap()); } } + +#[marine] +pub fn test4() { + use marine_sqlite_connector::Value; + + let connection = marine_sqlite_connector::open(":memory:").unwrap(); + + connection + .execute( + " + CREATE TABLE users (name TEXT, age BLOB NOT NULL); + ", + ) + .unwrap(); + + let mut cursor = connection + .prepare("INSERT OR REPLACE INTO users VALUES (?, ?)").unwrap(); + + cursor.bind(1, &Value::Integer(50)).unwrap(); + cursor.bind(2, &Value::Binary(vec![1, 2, 3])).unwrap(); + + cursor.next().unwrap(); +}