From 87348400607c4e033a0b9ec7f164506b57a97f3a Mon Sep 17 00:00:00 2001 From: heck Date: Wed, 27 Jan 2021 20:53:42 +0100 Subject: [PATCH] ext/lib-test: tests for return/param type PS by value --- .../ext/lib_test/lib_test/gen/config.json | 2 + examples/ext/lib_test/tests/test_lib_test.py | 66 +++++++++++++------ 2 files changed, 49 insertions(+), 19 deletions(-) diff --git a/examples/ext/lib_test/lib_test/gen/config.json b/examples/ext/lib_test/lib_test/gen/config.json index b1097c4..264beaa 100644 --- a/examples/ext/lib_test/lib_test/gen/config.json +++ b/examples/ext/lib_test/lib_test/gen/config.json @@ -28,7 +28,9 @@ "func_pppPc_args_pppPc", "func_pppPc_args_pppPc_ppPc", "func__PS_args_V", + "func__PS_args__PS", "func_TTAPS_args_V", + "func_TTAPS_args_TTAPS", "func_pTAPS_args_V", "func_ppTAPS_args_V", "func_pppTAPS_args_V", diff --git a/examples/ext/lib_test/tests/test_lib_test.py b/examples/ext/lib_test/tests/test_lib_test.py index 35b829d..88c3c4e 100644 --- a/examples/ext/lib_test/tests/test_lib_test.py +++ b/examples/ext/lib_test/tests/test_lib_test.py @@ -6,7 +6,9 @@ import pytest import lib_test from lib_test import * -# Int +# // Int +# // === +# // By Value def test_func_V_args_V(): (ret,) = func_V_args_V() assert(ret == None) @@ -44,7 +46,9 @@ def test_func_Pi_args_Pi_pPi_pPi(): assert (arg2 == 23) assert (arg3 == 23) -# Char +# // Char +# // ==== +# // By Value def test_func_Pc_args_V(): (ret,) = func_Pc_args_V() print("RESULT:", ret) @@ -66,7 +70,7 @@ def test_func_Pc_args_Pc(): assert (ret == 'A') assert (arg1 == 'a') -# char* +# // Char* def test_func_pPcStr_args_V(): (ret,) = func_pPcStr_args_V() print("RESULT:", ret) @@ -90,12 +94,6 @@ def test_func_V_args_pPcStr(): assert (ret == None) assert (arg1 == 'PEP') -def test_func_V_args_pPcChr_with_Str_with_Chr(): - (ret,arg1) = func_V_args_pPcChr('a') - print("RESULT:", ret, arg1) - assert (ret == None) - assert (arg1 == 'A') - def test_func_Pc_args_Pc_pPc_pPc(): (ret, arg1, arg2, arg3) = func_Pc_args_Pc_pPc_pPc('A', 'a','a') print("RESULT:", ret, arg1, arg2, arg3) @@ -104,7 +102,7 @@ def test_func_Pc_args_Pc_pPc_pPc(): assert (arg2 == 'A') assert (arg3 == 'A') -# String-by-value (const char*) +# // String-by-value (const char*) def test_func_pPcc_args_V(): (ret,) = func_pPcc_args_V() print("RESULT:", ret) @@ -133,6 +131,7 @@ def test_func_pPcc_args_pPcc_pPcc(): assert (arg1 == instr) assert (arg2 == instr) +# // String-by-ref (char**) def test_func_ppPc_args_V(): (ret,) = func_ppPc_args_V() print("RESULT:", ret) @@ -144,6 +143,7 @@ def test_func_pppPc_args_V(): assert (ret == "pEp") def test_func_V_args_ppPc(): + instr = "orig" instr = "orig" (ret,arg1) = func_V_args_ppPc(instr) print("RESULT:", ret,arg1) @@ -156,28 +156,56 @@ def test_func_pppPc_args_pppPc(): print("RESULT:", ret,arg1) assert (ret == "pEp") assert (arg1 == "pEp") -# -# def test_func_ppPc_args_ppPc_ppPc(): -# instr = "orig" -# instr2 = "orig" -# (ret,arg1,arg2) = func_ppPc_args_ppPc_ppPc(instr,instr2) -# print("RESULT:", ret,arg1,arg2) -# assert (ret == "pEp") -# assert (arg1 == "pEp") -# assert (arg2 == "pEp") +def test_func_pppPc_args_pppPc_ppPc(): + instr = "orig" + instr2 = "orig" + (ret,arg1,arg2) = func_pppPc_args_pppPc_ppPc(instr,instr2) + print("RESULT:", ret,arg1,arg2) + assert (ret == "pEp") + assert (arg1 == "pEp") + assert (arg2 == "pEp")\ + +# // Structs +# // ======= +# // By value def test_func__PS_args_V(): (ret,) = func__PS_args_V() print(PS_to_string(ret)) assert(ret.field__P_1 == 23); assert(ret.field__P_2 == 23); +def test_func__PS_args__PS(): + ps = lib_test._PS() + ps.field__P_1 = 3 + ps.field__P_2 = 3 + (ret,psout) = func__PS_args__PS(ps) + print("ret:",PS_to_string(ret)) + print("psout:",PS_to_string(psout)) + assert(ret.field__P_1 == 23); + assert(ret.field__P_2 == 23); + assert(psout.field__P_1 == 3); + assert(psout.field__P_2 == 3); + def test_func_TTAPS_args_V(): (ret,) = func_TTAPS_args_V() print(PS_to_string(ret)) assert(ret.field__P_1 == 23); assert(ret.field__P_2 == 23); +def test_func_TTAPS_args_TTAPS(): + ps = PS() + ps.field__P_1 = 3 + ps.field__P_2 = 3 + (ret,psout) = func_TTAPS_args_TTAPS(ps) + print("ret:",PS_to_string(ret)) + print("psout:",PS_to_string(psout)) + assert(ret.field__P_1 == 23); + assert(ret.field__P_2 == 23); + assert(psout.field__P_1 == 3); + assert(psout.field__P_2 == 3); + +# // By pointer def test_func_pTAPS_args_V(): (ret,) = func_pTAPS_args_V() print(PS_to_string(ret))