From 726009aa538e35810e0bcc92f4338fc2ab8a88d7 Mon Sep 17 00:00:00 2001 From: lyon Date: Sat, 4 Sep 2021 12:36:02 +0800 Subject: [PATCH] testing block assert --- src/.vscode/launch.json | 2 +- .../pikascript/pikascript-core/PikaBlock.c | 21 +++++++++++++++++++ .../pikascript/pikascript-core/PikaBlock.h | 3 +++ src/test/block-test.cpp | 10 +++++++++ 4 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/.vscode/launch.json b/src/.vscode/launch.json index 5b23ab8d0..0c80090da 100644 --- a/src/.vscode/launch.json +++ b/src/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "program": "${workspaceFolder}/../build/src/test/pikascript_test", "args": [ - "--gtest_filter=strs.formatInt" + // "--gtest_filter=strs.formatInt" ], "stopAtEntry": false, "cwd": "${workspaceFolder}", diff --git a/src/package/pikascript/pikascript-core/PikaBlock.c b/src/package/pikascript/pikascript-core/PikaBlock.c index 8217f3a2c..5cfc0fe0c 100644 --- a/src/package/pikascript/pikascript-core/PikaBlock.c +++ b/src/package/pikascript/pikascript-core/PikaBlock.c @@ -6,6 +6,7 @@ #include #include "PikaBlock.h" #include "TinyObj.h" +#include "PikaInvoke.h" void block_deinit(PikaObj *self) { @@ -22,6 +23,26 @@ PikaObj *block_init() return self; } +uint8_t block_checkAssert(PikaObj *self) +{ + Args *buffs = New_strBuff(); + char *assert = block_getAssert(self); + obj_invoke(self, strsFormat(buffs, 32, "_res = %s", assert)); + int res = obj_getInt(self, "_res"); + args_deinit(buffs); + return res; +} + +void block_setAssert(PikaObj *self, char *assert) +{ + obj_setStr(self, "assert", assert); +} + +char *block_getAssert(PikaObj *self) +{ + return obj_getStr(self, "assert"); +} + void block_setMode(PikaObj *self, char *mode) { obj_setStr(self, "mode", mode); diff --git a/src/package/pikascript/pikascript-core/PikaBlock.h b/src/package/pikascript/pikascript-core/PikaBlock.h index bc3550f02..3863ae999 100644 --- a/src/package/pikascript/pikascript-core/PikaBlock.h +++ b/src/package/pikascript/pikascript-core/PikaBlock.h @@ -6,4 +6,7 @@ void block_deinit(PikaObj *self); PikaObj *block_init(); char *block_popLine(PikaObj *self); void block_pushLine(PikaObj *self, char *line); +char *block_getAssert(PikaObj *self); +void block_setAssert(PikaObj *self, char *assert); +uint8_t block_checkAssert(PikaObj *self); #endif \ No newline at end of file diff --git a/src/test/block-test.cpp b/src/test/block-test.cpp index cfb159e72..57f832552 100644 --- a/src/test/block-test.cpp +++ b/src/test/block-test.cpp @@ -35,4 +35,14 @@ TEST(block, pop) block_deinit(block); EXPECT_EQ(pikaMemNow(), 0); } + +TEST(block, assert1) +{ + PikaObj *block = block_init(); + block_setAssert(block, (char *)"1"); + int res = block_checkAssert(block); + ASSERT_EQ(1, res); + block_deinit(block); +} + void block_pushLine(PikaObj *self, char *line);