support bytes add bytes

This commit is contained in:
pikastech 2022-11-09 16:42:09 +08:00
parent 43d65eabc6
commit a97212a5b3
5 changed files with 30 additions and 3 deletions

View File

@ -11,7 +11,7 @@
"program": "${workspaceFolder}/build/test/pikascript_test", "program": "${workspaceFolder}/build/test/pikascript_test",
// "program": "${workspaceFolder}/build/boot/demo06-pikamain/pikascript_demo06-pikamain", // "program": "${workspaceFolder}/build/boot/demo06-pikamain/pikascript_demo06-pikamain",
"args": [ "args": [
"--gtest_filter=module.REPL_big_script" "--gtest_filter=stddata.bytes_add"
], ],
"stopAtEntry": false, "stopAtEntry": false,
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",

View File

@ -69,7 +69,8 @@
"gtesttask_proxytest.h": "c", "gtesttask_proxytest.h": "c",
"datastack.h": "c", "datastack.h": "c",
"syscall.h": "c", "syscall.h": "c",
"fcntl.h": "c" "fcntl.h": "c",
"pikastddata_bytearray.h": "c"
}, },
"python.formatting.provider": "autopep8", "python.formatting.provider": "autopep8",
"C_Cpp.errorSquiggles": "Disabled" "C_Cpp.errorSquiggles": "Disabled"

View File

@ -1861,6 +1861,17 @@ static void _OPT_ADD(OperatorInfo* op) {
strsDeinit(&str_opt_buffs); strsDeinit(&str_opt_buffs);
return; return;
} }
if ((op->t1 == ARG_TYPE_BYTES) && (op->t2 == ARG_TYPE_BYTES)) {
uint8_t* bytes1 = arg_getBytes(op->a1);
uint8_t* bytes2 = arg_getBytes(op->a2);
size_t size1 = arg_getBytesSize(op->a1);
size_t size2 = arg_getBytesSize(op->a2);
op->res = arg_setBytes(op->res, "", NULL, size1 + size2);
uint8_t* bytes_out = arg_getBytes(op->res);
__platform_memcpy(bytes_out, bytes1, size1);
__platform_memcpy(bytes_out + size1, bytes2, size2);
return;
}
/* match float */ /* match float */
if ((op->t1 == ARG_TYPE_FLOAT) || op->t2 == ARG_TYPE_FLOAT) { if ((op->t1 == ARG_TYPE_FLOAT) || op->t2 == ARG_TYPE_FLOAT) {
op->res = arg_setFloat(op->res, "", op->f1 + op->f2); op->res = arg_setFloat(op->res, "", op->f1 + op->f2);

View File

@ -2,4 +2,4 @@
#define PIKA_VERSION_MINOR 11 #define PIKA_VERSION_MINOR 11
#define PIKA_VERSION_MICRO 6 #define PIKA_VERSION_MICRO 6
#define PIKA_EDIT_TIME "2022/11/09 01:42:09" #define PIKA_EDIT_TIME "2022/11/09 16:42:07"

View File

@ -492,6 +492,21 @@ TEST(stddata, kw_fun_err_input) {
EXPECT_EQ(pikaMemNow(), 0); EXPECT_EQ(pikaMemNow(), 0);
} }
TEST(stddata, bytes_add) {
/* init */
pikaMemInfo.heapUsedMax = 0;
PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
/* run */
__platform_printf("BEGIN\r\n");
obj_run(pikaMain, "b'a' + b'b'\n");
/* collect */
/* assert */
EXPECT_STREQ(log_buff[0], "b'\\x61\\x62'\r\n");
/* deinit */
obj_deinit(pikaMain);
EXPECT_EQ(pikaMemNow(), 0);
}
#endif #endif
TEST_END TEST_END