Files
mrubypp/test/test_engine.cpp
zekexiao e38f5850d3
Some checks failed
ubuntu / Explore-Gitea-Actions (push) Failing after 1m47s
better call template & move to include/murbypp dir & fix test namepsace
2025-10-22 23:30:54 +08:00

63 lines
1.1 KiB
C++

//
// Created by ZekeXiao on 2025/10/18.
//
//
// Created by ZekeXiao on 2025/10/18.
//
#include <catch2/catch_all.hpp>
#include <mrubypp/engine.h>
TEST_CASE("none args call", "[engine]") {
mrubypp::engine engine;
engine.load(R"(
def get_1()
1
end
)");
auto b = engine.call<int>("get_1");
REQUIRE(b == 1);
}
TEST_CASE("args call", "[engine]") {
mrubypp::engine engine;
engine.load(R"(
def sort_and_get_first(a)
a.sort!
a[0]
end
)");
std::vector<int> a{3, 1, 2};
auto b = engine.call<int>("sort_and_get_first", a);
REQUIRE(b == 1);
}
TEST_CASE("void call", "[engine]") {
mrubypp::engine engine;
engine.load(R"(
def no_return_puts(a)
puts a
end
)");
std::vector<int> a{3, 1, 2};
engine.call("no_return_puts", a);
}
TEST_CASE("call benchmark", "[!benchmark]") {
mrubypp::engine engine;
engine.load(R"(
def get_same(a)
return a
end
)");
BENCHMARK("call and return") {
auto b = engine.call<int>("get_same", 1);
REQUIRE(b == 1);
};
}