Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bytecodealliance
GitHub Repository: bytecodealliance/wasmtime
Path: blob/main/crates/c-api/tests/wasip2.cc
1692 views
1
#include "component/utils.h"
2
3
#include <gtest/gtest.h>
4
#include <wasmtime.h>
5
6
TEST(wasip2, smoke) {
7
static constexpr auto component_text = std::string_view{
8
R"END(
9
(component)
10
)END",
11
};
12
const auto engine = wasm_engine_new();
13
EXPECT_NE(engine, nullptr);
14
15
const auto store = wasmtime_store_new(engine, nullptr, nullptr);
16
const auto context = wasmtime_store_context(store);
17
18
const auto cfg = wasmtime_wasip2_config_new();
19
wasmtime_wasip2_config_inherit_stdin(cfg);
20
wasmtime_wasip2_config_inherit_stdout(cfg);
21
wasmtime_wasip2_config_inherit_stderr(cfg);
22
wasmtime_wasip2_config_arg(cfg, "hello", strlen("hello"));
23
wasmtime_context_set_wasip2(context, cfg);
24
25
wasmtime_component_t *component = nullptr;
26
27
auto err = wasmtime_component_new(
28
engine, reinterpret_cast<const uint8_t *>(component_text.data()),
29
component_text.size(), &component);
30
31
CHECK_ERR(err);
32
33
const auto linker = wasmtime_component_linker_new(engine);
34
35
wasmtime_component_linker_add_wasip2(linker);
36
37
wasmtime_component_instance_t instance = {};
38
err = wasmtime_component_linker_instantiate(linker, context, component,
39
&instance);
40
CHECK_ERR(err);
41
42
wasmtime_component_linker_delete(linker);
43
44
wasmtime_store_delete(store);
45
wasm_engine_delete(engine);
46
}
47
48