Skip to content

Commit 0c1e9c4

Browse files
committed
Disable Xsystem for WASM
1 parent 160dce0 commit 0c1e9c4

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

src/xsystem.hpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ namespace xcpp
2828

2929
void apply(const std::string& code, nl::json& kernel_res) override
3030
{
31+
#if defined(XEUS_CPP_EMSCRIPTEN_WASM_BUILD)
32+
// WASM environment: Disable shell commands
33+
kernel_res["status"] = "error";
34+
kernel_res["ename"] = "UnsupportedEnvironment";
35+
kernel_res["evalue"] = "Shell commands are not supported in the WASM environment.";
36+
kernel_res["traceback"] = nl::json::array();
37+
#else
38+
// Native environment: Execute shell commands
3139
std::regex re(spattern + R"((.*))");
3240
std::smatch to_execute;
3341
std::regex_search(code, to_execute, re);
@@ -65,6 +73,7 @@ namespace xcpp
6573
kernel_res["evalue"] = "evalue";
6674
kernel_res["traceback"] = nl::json::array();
6775
}
76+
#endif
6877
}
6978

7079
[[nodiscard]] std::unique_ptr<xpreamble> clone() const override

test/test_interpreter.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -654,15 +654,10 @@ TEST_SUITE("xsystem_clone")
654654
}
655655
}
656656

657+
#if !defined(XEUS_CPP_EMSCRIPTEN_WASM_BUILD)
657658
TEST_SUITE("xsystem_apply")
658659
{
659-
#if defined(XEUS_CPP_EMSCRIPTEN_WASM_BUILD)
660-
TEST_CASE("apply_xsystem"
661-
* doctest::should_fail(true)
662-
* doctest::description("TODO: Currently fails for the Emscripten build"))
663-
#else
664660
TEST_CASE("apply_xsystem")
665-
#endif
666661
{
667662
xcpp::xsystem system;
668663
std::string code = "!echo Hello, World!";
@@ -673,6 +668,7 @@ TEST_SUITE("xsystem_apply")
673668
REQUIRE(kernel_res["status"] == "ok");
674669
}
675670
}
671+
#endif
676672

677673
TEST_SUITE("xmagics_contains"){
678674
TEST_CASE("bad_status_cell") {

0 commit comments

Comments
 (0)