#!/usr/bin/env bats

bats_load_library "bats-support"
bats_load_library "bats-assert"

setup() {
	cp -r examples/capi/wasi-env/* "$BATS_FILE_TMPDIR/"
	cd "$BATS_FILE_TMPDIR" || exit 1
}

@test "build wasi_get_env.wasm with cargo/rustc" {
	cargo build --offline --manifest-path=rust/Cargo.toml --release --target=wasm32-wasip1
	cp rust/target/wasm32-wasip1/release/wasi_get_env.wasm .
}

@test "build set_wasi_env.out with gcc and run" {
	gcc set_wasi_env.c -o set_wasi_env.out -lwasmedge
	run ./set_wasi_env.out argv1 argv2 argv3
	assert_success
	run cat stdout.txt
	assert_output --partial "ENV1: VAL1"
	assert_output --partial "ENV2: VAL2"
	assert_output --partial "ENV3: VAL3"
	assert_output --partial "argv1"
	assert_output --partial "argv2"
	assert_output --partial "argv3"
}
