From 0c1e9c411dca09937261503a1e37d271f924ee94 Mon Sep 17 00:00:00 2001 From: tharun571 Date: Thu, 17 Apr 2025 18:47:17 +0530 Subject: [PATCH 1/2] Disable Xsystem for WASM --- src/xsystem.hpp | 9 +++++++++ test/test_interpreter.cpp | 8 ++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/xsystem.hpp b/src/xsystem.hpp index 159dbeb9..8a97f520 100644 --- a/src/xsystem.hpp +++ b/src/xsystem.hpp @@ -28,6 +28,14 @@ namespace xcpp void apply(const std::string& code, nl::json& kernel_res) override { +#if defined(XEUS_CPP_EMSCRIPTEN_WASM_BUILD) + // WASM environment: Disable shell commands + kernel_res["status"] = "error"; + kernel_res["ename"] = "UnsupportedEnvironment"; + kernel_res["evalue"] = "Shell commands are not supported in the WASM environment."; + kernel_res["traceback"] = nl::json::array(); +#else + // Native environment: Execute shell commands std::regex re(spattern + R"((.*))"); std::smatch to_execute; std::regex_search(code, to_execute, re); @@ -65,6 +73,7 @@ namespace xcpp kernel_res["evalue"] = "evalue"; kernel_res["traceback"] = nl::json::array(); } +#endif } [[nodiscard]] std::unique_ptr clone() const override diff --git a/test/test_interpreter.cpp b/test/test_interpreter.cpp index 435cd839..3ffdb5e3 100644 --- a/test/test_interpreter.cpp +++ b/test/test_interpreter.cpp @@ -654,15 +654,10 @@ TEST_SUITE("xsystem_clone") } } +#if !defined(XEUS_CPP_EMSCRIPTEN_WASM_BUILD) TEST_SUITE("xsystem_apply") { -#if defined(XEUS_CPP_EMSCRIPTEN_WASM_BUILD) - TEST_CASE("apply_xsystem" - * doctest::should_fail(true) - * doctest::description("TODO: Currently fails for the Emscripten build")) -#else TEST_CASE("apply_xsystem") -#endif { xcpp::xsystem system; std::string code = "!echo Hello, World!"; @@ -673,6 +668,7 @@ TEST_SUITE("xsystem_apply") REQUIRE(kernel_res["status"] == "ok"); } } +#endif TEST_SUITE("xmagics_contains"){ TEST_CASE("bad_status_cell") { From c85c28154e6ec9e0020bd55ad3a9897de17bee49 Mon Sep 17 00:00:00 2001 From: tharun571 Date: Sat, 19 Apr 2025 09:25:03 +0530 Subject: [PATCH 2/2] Update XSystem --- src/xsystem.hpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/xsystem.hpp b/src/xsystem.hpp index 8a97f520..159dbeb9 100644 --- a/src/xsystem.hpp +++ b/src/xsystem.hpp @@ -28,14 +28,6 @@ namespace xcpp void apply(const std::string& code, nl::json& kernel_res) override { -#if defined(XEUS_CPP_EMSCRIPTEN_WASM_BUILD) - // WASM environment: Disable shell commands - kernel_res["status"] = "error"; - kernel_res["ename"] = "UnsupportedEnvironment"; - kernel_res["evalue"] = "Shell commands are not supported in the WASM environment."; - kernel_res["traceback"] = nl::json::array(); -#else - // Native environment: Execute shell commands std::regex re(spattern + R"((.*))"); std::smatch to_execute; std::regex_search(code, to_execute, re); @@ -73,7 +65,6 @@ namespace xcpp kernel_res["evalue"] = "evalue"; kernel_res["traceback"] = nl::json::array(); } -#endif } [[nodiscard]] std::unique_ptr clone() const override