mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
test for ctypes is ok
This commit is contained in:
parent
69730efea4
commit
41f270e053
@ -25,7 +25,15 @@ int ctypes_Test_dc_cpuapdu_hex(PikaObj* self,
|
||||
PikaObj* rlen,
|
||||
uint8_t* sendbuf,
|
||||
int slen) {
|
||||
printf("input: slen = %d, sendbuf = %s\n", slen, sendbuf);
|
||||
/* print input */
|
||||
__platform_printf("input: slen = %d\n", slen);
|
||||
__platform_printf("sendbuf :\n");
|
||||
for (int i = 0; i < slen; i++) {
|
||||
__platform_printf("0x%02x ", sendbuf[i]);
|
||||
}
|
||||
__platform_printf("\n");
|
||||
|
||||
/* set output */
|
||||
ctypesUtils_setInt(rlen, 5);
|
||||
char rcv[] = {0x01, 0x02, 0x03, 0x00, 0x05, 0x08};
|
||||
ctypesUtils_setBytes(rcvbuf, rcv, sizeof(rcv));
|
||||
@ -37,8 +45,8 @@ void ctypes_Test_print_rcv(PikaObj* self, PikaObj* rcvbuf) {
|
||||
size_t rcv_size = ctypesUtils_getBytesSize(rcvbuf);
|
||||
__platform_printf("{");
|
||||
for (size_t i = 0; i < rcv_size - 1; i++) {
|
||||
__platform_printf("%x, ", rcv[i]);
|
||||
__platform_printf("0x%02x, ", rcv[i]);
|
||||
}
|
||||
__platform_printf("%x", rcv[rcv_size - 1]);
|
||||
__platform_printf("0x%02x", rcv[rcv_size - 1]);
|
||||
__platform_printf("}\r\n");
|
||||
}
|
||||
|
@ -1675,3 +1675,29 @@ TEST(pikaMain, list_init) {
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
TEST(pikaMain, ctypes) {
|
||||
/* init */
|
||||
pikaMemInfo.heapUsedMax = 0;
|
||||
/* run */
|
||||
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
||||
__platform_printf((char*)"BEGIN\r\n");
|
||||
obj_run(pikaMain, (char*)
|
||||
"t = ctypes.Test()\n"
|
||||
"sendbuf = b'\\x03\\x04\\x33\\x00\\x05'\n"
|
||||
"rlen = ctypes.c_uint(0)\n"
|
||||
"rcvbuf = ctypes.c_char_p('')\n"
|
||||
"res = t.dc_cpuapdu_hex(5, sendbuf, rlen, rcvbuf)\n"
|
||||
"t.print_rcv(rcvbuf)\n"
|
||||
);
|
||||
/* as run in shell */
|
||||
/* collect */
|
||||
Arg* sendbuf = obj_getArg(pikaMain, (char*)"sendbuf");
|
||||
Arg* rcvbuf = obj_getArg(pikaMain, (char*)"rcvbuf.value");
|
||||
/* assert */
|
||||
EXPECT_EQ(arg_getBytesSize(sendbuf), 5);
|
||||
EXPECT_EQ(arg_getBytesSize(rcvbuf), 6);
|
||||
/* deinit */
|
||||
obj_deinit(pikaMain);
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user