From e5e416316722fdb6d0144ea3ac73cc3f14d50030 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Mon, 12 Oct 2026 20:59:31 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E5=85=A8=E4=BB=93=E5=90=8C=E6=AD=A5=20?= =?UTF-8?q?w32=E2=86=92win32=20=E6=A8=A1=E5=9D=97=E6=94=B9=E5=90=8D?= =?UTF-8?q?=E4=B8=8E=E7=AA=84=E5=8C=96=E6=96=AD=E8=A8=80=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AstTest/App/main.vp | 6 +-- BuddyTest/App/main.vp | 6 +-- BuddyTest/App/mbuddytest.vp | 12 ++--- DefineTest/App/main.vp | 6 +-- DictTest/App/main.vp | 6 +-- EqTest/App/main.vp | 6 +-- FakeDuckTest/App/main.vp | 6 +-- FileIoTest/App/fileiotest.vp | 82 +++++++++++++++---------------- G4/App/caller1.vp | 4 +- G4/App/main.vp | 10 ++-- G7/App/main.vp | 2 +- GenericOopTest/App/main.vp | 6 +-- HashLibTest/App/main.vp | 6 +-- HashTableTest/App/main.vp | 6 +-- IterTest/App/main.vp | 6 +-- JsonTest/App/main.vp | 2 +- ListTest/App/main.vp | 6 +-- MultiInheritTest/App/main.vp | 6 +-- NumpyTest/App/test_numpy.vp | 12 ++--- OopInheritTest/App/main.vp | 6 +-- PointerTest/App/main.vp | 24 ++++----- ShortCircuitTest/App/main.vp | 6 +-- SlotsBugTest/App/main.vp | 9 ++-- StringTest/App/main.vp | 12 ++--- StructTest/App/main.vp | 4 +- SysLibTest/App/main.vp | 6 +-- SysLibTest/App/syslibtest_impl.vp | 10 ++-- TestFBProject/App/main.vp | 6 +-- TypeCastTest/App/main.vp | 10 ++-- VariadicTest/App/main.vp | 6 +-- 30 files changed, 148 insertions(+), 147 deletions(-) diff --git a/AstTest/App/main.vp b/AstTest/App/main.vp index 4a59fb0..365df57 100644 --- a/AstTest/App/main.vp +++ b/AstTest/App/main.vp @@ -7,7 +7,7 @@ import stdlib import sys import string import ast -import w32.win32console +import win32.win32console # MBuddy arena size: 1MB @@ -94,8 +94,8 @@ def classify_print(node: ast.AST*, depth: int): def main() -> CInt | CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) printf("AST Comprehensive Test Start\n") diff --git a/BuddyTest/App/main.vp b/BuddyTest/App/main.vp index 77d83ee..d295f80 100644 --- a/BuddyTest/App/main.vp +++ b/BuddyTest/App/main.vp @@ -1,5 +1,5 @@ from stdint import * -import w32.win32console +import win32.win32console import t, c from t import CInt, CExport import memhub @@ -7,8 +7,8 @@ import mbuddytest def main() -> CInt | CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) # BuddyTest has a negative case that deliberately double-frees. With memhub's # [MEMDBG] checks on (_memdbg_enable=1) the second free aborts, so disable it. diff --git a/BuddyTest/App/mbuddytest.vp b/BuddyTest/App/mbuddytest.vp index 7f3a803..a8d5ea7 100644 --- a/BuddyTest/App/mbuddytest.vp +++ b/BuddyTest/App/mbuddytest.vp @@ -6,9 +6,9 @@ import stdlib import memhub import string import testcheck -import w32.win32process -import w32.win32sync -import w32.win32base +import win32.win32process +import win32.win32sync +import win32.win32base # Thread body: alloc/free on a shared MBuddy to exercise the spinlock @@ -386,14 +386,14 @@ def mbuddy_main() -> CInt: # Spawn 4 threads doing concurrent alloc/free t_idx: CInt for t_idx in range(NUM_THREADS): - h: bytes = w32.win32process.CreateThread(None, 0, _thread_alloc_free, t.CPtr(bd_mt), 0, &tid) + h: bytes = win32.win32process.CreateThread(None, 0, _thread_alloc_free, t.CPtr(bd_mt), 0, &tid) handles[t_idx] = CUInt64T(h) # Wait for all threads to finish for t_idx in range(NUM_THREADS): h: bytes = t.CPtr(handles[t_idx]) - w32.win32sync.WaitForSingleObject(h, w32.win32base.INFINITE) - w32.win32base.CloseHandle(h) + win32.win32sync.WaitForSingleObject(h, win32.win32base.INFINITE) + win32.win32base.CloseHandle(h) # Verify allocator state: self-check passes and all blocks coalesced testcheck.check(bd_mt.self_check() == 0, "mt: self_check OK", "mt: self_check FAILED") diff --git a/DefineTest/App/main.vp b/DefineTest/App/main.vp index 553a2ed..078474f 100644 --- a/DefineTest/App/main.vp +++ b/DefineTest/App/main.vp @@ -3,7 +3,7 @@ from t import CInt, CInt32T, CUInt32T, CUInt64T, CFloat64T, CPtr, CChar, CDefine import viperlib import stdlib import platmacro -import w32.win32console +import win32.win32console import testcheck @@ -380,8 +380,8 @@ def test_cifdef_complex() -> CInt: def main() -> int: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) testcheck.begin("DefineTest: CDefine 宏与 cif 测试") diff --git a/DictTest/App/main.vp b/DictTest/App/main.vp index 126b17b..ed3bddf 100644 --- a/DictTest/App/main.vp +++ b/DictTest/App/main.vp @@ -1,5 +1,5 @@ from stdint import * -import w32.win32console +import win32.win32console import t, c from t import CInt, CExport import stdio @@ -10,8 +10,8 @@ import testcheck def main() -> CInt | CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) testcheck.begin("DictTest: 万能 dict (Variant 存储) 测试") diff --git a/EqTest/App/main.vp b/EqTest/App/main.vp index 6403cd5..5b9f56e 100644 --- a/EqTest/App/main.vp +++ b/EqTest/App/main.vp @@ -1,5 +1,5 @@ from stdint import * -import w32.win32console +import win32.win32console import t, c from t import CInt, CExport import stdio @@ -9,8 +9,8 @@ import testcheck def main() -> CInt | CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) testcheck.begin("== 重载和 is 地址比较测试") diff --git a/FakeDuckTest/App/main.vp b/FakeDuckTest/App/main.vp index 01067e1..13257f6 100644 --- a/FakeDuckTest/App/main.vp +++ b/FakeDuckTest/App/main.vp @@ -1,5 +1,5 @@ from stdint import * -import w32.win32console +import win32.win32console import t, c from t import CInt, CExport import _fakeduck @@ -12,8 +12,8 @@ import _withcontent def main() -> CInt | CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) # FakeDuck: str calls extension method b() a: str = "Hello" diff --git a/FileIoTest/App/fileiotest.vp b/FileIoTest/App/fileiotest.vp index a0d3d7d..1725f7c 100644 --- a/FileIoTest/App/fileiotest.vp +++ b/FileIoTest/App/fileiotest.vp @@ -3,11 +3,11 @@ from t import CInt, CInt32T, CUInt32T, CPtr, CChar, CExport from stdint import * import stdlib import viperlib -import w32.win32base -import w32.win32file -import w32.win32console -import w32.fileio -from w32.fileio import File, FileW, MODE, FRESULT, SEEK_SET, SEEK_CUR, SEEK_END +import win32.win32base +import win32.win32file +import win32.win32console +import win32.fileio +from win32.fileio import File, FileW, MODE, FRESULT, SEEK_SET, SEEK_CUR, SEEK_END define BUF_SIZE = 4096 @@ -20,20 +20,20 @@ def fileio_main(): bytes_written: ULONG = 0 bytes_read: ULONG = 0 - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) - hFile: w32.win32base.HANDLE = w32.win32file.CreateFileA( + hFile: win32.win32base.HANDLE = win32.win32file.CreateFileA( "testfile.txt", - w32.win32file.GENERIC_WRITE, - w32.win32file.FILE_SHARE_READ, + win32.win32file.GENERIC_WRITE, + win32.win32file.FILE_SHARE_READ, None, - w32.win32file.CREATE_ALWAYS, - w32.win32file.FILE_ATTRIBUTE_NORMAL, + win32.win32file.CREATE_ALWAYS, + win32.win32file.FILE_ATTRIBUTE_NORMAL, None ) - if hFile == w32.win32base.INVALID_HANDLE_VALUE: + if hFile == win32.win32base.INVALID_HANDLE_VALUE: print("Failed to create file") return @@ -48,32 +48,32 @@ def fileio_main(): i = i + 1 ch = ch + 1 - result: BOOL = w32.win32file.WriteFile(hFile, write_buf, write_len, &bytes_written, None) + result: BOOL = win32.win32file.WriteFile(hFile, write_buf, write_len, &bytes_written, None) if result == 0: print("WriteFile failed") else: viperlib.snprintf(buf, 256, "Written %d bytes to testfile.txt", bytes_written) print(buf) - w32.win32file.FlushFileBuffers(hFile) - w32.win32base.CloseHandle(hFile) + win32.win32file.FlushFileBuffers(hFile) + win32.win32base.CloseHandle(hFile) - hFile = w32.win32file.CreateFileA( + hFile = win32.win32file.CreateFileA( "testfile.txt", - w32.win32file.GENERIC_READ, - w32.win32file.FILE_SHARE_READ, + win32.win32file.GENERIC_READ, + win32.win32file.FILE_SHARE_READ, None, - w32.win32file.OPEN_EXISTING, - w32.win32file.FILE_ATTRIBUTE_NORMAL, + win32.win32file.OPEN_EXISTING, + win32.win32file.FILE_ATTRIBUTE_NORMAL, None ) - if hFile == w32.win32base.INVALID_HANDLE_VALUE: + if hFile == win32.win32base.INVALID_HANDLE_VALUE: print("Failed to open file for reading") return read_len: ULONG = 0 - result = w32.win32file.ReadFile(hFile, read_buf, BUF_SIZE - 1, &read_len, None) + result = win32.win32file.ReadFile(hFile, read_buf, BUF_SIZE - 1, &read_len, None) if result == 0: print("ReadFile failed") else: @@ -87,20 +87,20 @@ def fileio_main(): print(read_buf) print("--- End ---") - fileSize: ULONG = w32.win32file.GetFileSize(hFile, None) + fileSize: ULONG = win32.win32file.GetFileSize(hFile, None) viperlib.snprintf(buf, 256, "File size: %d bytes", fileSize) print(buf) - w32.win32base.CloseHandle(hFile) + win32.win32base.CloseHandle(hFile) - attrs: ULONG = w32.win32file.GetFileAttributesA("testfile.txt") - if attrs == w32.win32base.INVALID_HANDLE_VALUE: + attrs: ULONG = win32.win32file.GetFileAttributesA("testfile.txt") + if attrs == win32.win32base.INVALID_HANDLE_VALUE: print("GetFileAttributes failed") else: viperlib.snprintf(buf, 256, "File attributes: 0x%X", attrs) print(buf) - w32.win32file.DeleteFileA("testfile.txt") + win32.win32file.DeleteFileA("testfile.txt") print("File deleted") stdlib.free(write_buf) @@ -168,7 +168,7 @@ def fileio_with_test(): viperlib.snprintf(buf, 256, "[with] After seek: Pos=%d", pos) print(buf) - w32.win32file.DeleteFileA("oop_with.txt") + win32.win32file.DeleteFileA("oop_with.txt") print("[with] test file deleted") stdlib.free(buf) @@ -229,7 +229,7 @@ def fileio_handle_test(): print(buf) fr4.close() - w32.win32file.DeleteFileA("oop_handle.txt") + win32.win32file.DeleteFileA("oop_handle.txt") print("[handle] test file deleted") stdlib.free(buf) @@ -273,7 +273,7 @@ def fileio_rw_test(): print(buf) fap.close() - w32.win32file.DeleteFileA("rw_test.txt") + win32.win32file.DeleteFileA("rw_test.txt") print("[rw] test file deleted") print("=== OOP FileIO: wide char (u\"...\") ===") @@ -295,7 +295,7 @@ def fileio_wide_test(): print(buf) fw2.close() - w32.win32file.DeleteFileA("wide_test.txt") + win32.win32file.DeleteFileA("wide_test.txt") print("[wide] test file deleted") stdlib.free(buf) @@ -325,7 +325,7 @@ def fileio_chinese_test(): print(buf) fr.close() - w32.win32file.DeleteFileW(u"中文文件.txt") + win32.win32file.DeleteFileW(u"中文文件.txt") print("[chinese] T1: deleted") # === T2: Chinese filename + Chinese wide content (WCHAR_T) === @@ -335,7 +335,7 @@ def fileio_chinese_test(): print("[chinese] T2: create failed") else: # u"你好世界\n" = 5 WCHARs = 10 bytes (UTF-16LE) - w32.win32file.WriteFile(fw2.handle, u"你好世界\n", 10, &bytes_written, None) + win32.win32file.WriteFile(fw2.handle, u"你好世界\n", 10, &bytes_written, None) viperlib.snprintf(buf, 256, "[chinese] T2: wrote %d WCHAR bytes", bytes_written) print(buf) fw2.close() @@ -346,7 +346,7 @@ def fileio_chinese_test(): print(buf) fr2.close() - w32.win32file.DeleteFileW(u"中文内容.txt") + win32.win32file.DeleteFileW(u"中文内容.txt") print("[chinese] T2: deleted") # === T3: Chinese filename + mixed ANSI + wide content === @@ -357,14 +357,14 @@ def fileio_chinese_test(): else: fw3.write_str("ASCII line\n") # u"中文行\n" = 4 WCHARs = 8 bytes (UTF-16LE) - w32.win32file.WriteFile(fw3.handle, u"中文行\n", 8, &bytes_written, None) + win32.win32file.WriteFile(fw3.handle, u"中文行\n", 8, &bytes_written, None) fw3.seek(0, SEEK_SET) n: LONG = fw3.read_all(buf, 512) viperlib.snprintf(buf, 256, "[chinese] T3: total %d bytes", n) print(buf) fw3.close() - w32.win32file.DeleteFileW(u"混合测试.txt") + win32.win32file.DeleteFileW(u"混合测试.txt") print("[chinese] T3: deleted") # === T4: Chinese filename + Chinese content via WriteConsoleW === @@ -374,7 +374,7 @@ def fileio_chinese_test(): print("[chinese] T4: create failed") else: # u"你好,世界!\n" = 7 WCHARs = 14 bytes (UTF-16LE) - w32.win32file.WriteFile(fw4.handle, u"你好,世界!\n", 14, &bytes_written, None) + win32.win32file.WriteFile(fw4.handle, u"你好,世界!\n", 14, &bytes_written, None) viperlib.snprintf(buf, 256, "[chinese] T4: wrote %d WCHAR bytes", bytes_written) print(buf) fw4.close() @@ -385,11 +385,11 @@ def fileio_chinese_test(): print(buf) # Print wide content to console using WriteConsoleW chars_written: ULONG = 0 - hOut: w32.win32base.HANDLE = w32.win32file.GetStdHandle(w32.win32file.STD_OUTPUT_HANDLE) - w32.win32console.WriteConsoleW(hOut, u"你好,世界!\n", 7, &chars_written, None) + hOut: win32.win32base.HANDLE = win32.win32file.GetStdHandle(win32.win32file.STD_OUTPUT_HANDLE) + win32.win32console.WriteConsoleW(hOut, u"你好,世界!\n", 7, &chars_written, None) fr4.close() - w32.win32file.DeleteFileW(u"控制台测试.txt") + win32.win32file.DeleteFileW(u"控制台测试.txt") print("[chinese] T4: deleted") stdlib.free(buf) diff --git a/G4/App/caller1.vp b/G4/App/caller1.vp index 8de1d0e..b80ebc4 100644 --- a/G4/App/caller1.vp +++ b/G4/App/caller1.vp @@ -31,10 +31,10 @@ def caller1_sum_chain(head: G4Node*) -> int: """Sum the chain by walking Next directly.""" if head is None: return 0 - total: int = head.IntVal + total: int = int(head.IntVal) cur: G4Node* = head # Access Next directly (bypass g4node_get_next). while cur.Next is not None: cur = cur.Next - total = total + cur.IntVal + total = total + int(cur.IntVal) return total diff --git a/G4/App/main.vp b/G4/App/main.vp index efa64a3..43ae88c 100644 --- a/G4/App/main.vp +++ b/G4/App/main.vp @@ -27,7 +27,7 @@ def test_g4node_create(): testcheck.check(False, "new_g4node", "FAIL") return n.IntVal = 42 - v: int = n.IntVal + v: int = int(n.IntVal) testcheck.check(v == 42, "G4Node.IntVal = 42", "expect 42") @@ -50,7 +50,7 @@ def test_g4node_next_field(): if next_node is None: testcheck.check(False, "g4node_get_next", "FAIL") return - v: int = next_node.IntVal + v: int = int(next_node.IntVal) testcheck.check(v == 20, "n1.Next.IntVal = 20", "expect 20") @@ -72,11 +72,11 @@ def test_g4node_chain(): c.IntVal = 3 g4node_set_next(a, b) g4node_set_next(b, c) - sum: int = a.IntVal + sum: int = int(a.IntVal) p: G4Node* = g4node_get_next(a) - sum = sum + p.IntVal + sum = sum + int(p.IntVal) p = g4node_get_next(p) - sum = sum + p.IntVal + sum = sum + int(p.IntVal) testcheck.check(sum == 6, "chain sum = 1+2+3 = 6", "expect 6") diff --git a/G7/App/main.vp b/G7/App/main.vp index 708b0be..fca802d 100644 --- a/G7/App/main.vp +++ b/G7/App/main.vp @@ -31,7 +31,7 @@ def test_value_struct_fields(): node.IntVal = 42 node.FloatVal = 3.14 # Read back and verify - v: int = node.IntVal + v: int = int(node.IntVal) testcheck.check(v == 42, "Value.IntVal = 42", "expect 42") f: double = node.FloatVal testcheck.check(f > 3.0 and f < 4.0, "Value.FloatVal = 3.14", "expect ~3.14") diff --git a/GenericOopTest/App/main.vp b/GenericOopTest/App/main.vp index a27df89..fc98f88 100644 --- a/GenericOopTest/App/main.vp +++ b/GenericOopTest/App/main.vp @@ -1,5 +1,5 @@ from stdint import * -import w32.win32console +import win32.win32console import t, c from t import CInt, CPtr, CChar, CInt32T, CUInt64T, CFloat64T, CExport, State import viperlib @@ -70,8 +70,8 @@ class Container[T](): def main() -> CInt | CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) testcheck.begin("GenericOopTest: 泛型专项测试") diff --git a/HashLibTest/App/main.vp b/HashLibTest/App/main.vp index d96efef..7ec51a4 100644 --- a/HashLibTest/App/main.vp +++ b/HashLibTest/App/main.vp @@ -6,7 +6,7 @@ import testcheck import hashlib import binascii import base64 -import w32.win32console +import win32.win32console # ============================================== @@ -23,8 +23,8 @@ def default_value_test_function(a: int, b: int = 1): def main() -> int | t.CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) testcheck.begin("HashLibTest: 哈希与校验测试") diff --git a/HashTableTest/App/main.vp b/HashTableTest/App/main.vp index 9e0222c..a832341 100644 --- a/HashTableTest/App/main.vp +++ b/HashTableTest/App/main.vp @@ -1,5 +1,5 @@ from stdint import * -import w32.win32console +import win32.win32console import t, c from t import CInt, CExport import stdio @@ -11,8 +11,8 @@ import testcheck def main() -> CInt | CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) testcheck.begin("HashTableTest: 开放寻址哈希表测试") diff --git a/IterTest/App/main.vp b/IterTest/App/main.vp index a35e840..bab21f2 100644 --- a/IterTest/App/main.vp +++ b/IterTest/App/main.vp @@ -27,8 +27,8 @@ def test_strcpy_for_in(): testcheck.section("Test 3: strcpy using for-in") src: char* = "test" # Implement strcpy by hand with for-in. - import w32.win32memory - buf: char* = w32.win32memory.VirtualAlloc(None, 64, 12288, 4) + import win32.win32memory + buf: char* = win32.win32memory.VirtualAlloc(None, 64, 12288, 4) if uint64(buf) == 0: stdio.printf("SKIP: VirtualAlloc returned NULL\n") return @@ -42,7 +42,7 @@ def test_strcpy_for_in(): # '==' on pointers compares addresses (C-like); use strcmp for contents. testcheck.check(string.strcmp(buf, "test") == 0, "strcpy for-in (result=test)", "strcpy for-in (cmp mismatch)") -import w32.win32memory +import win32.win32memory def main() -> int: testcheck.begin("IterTest: 指针迭代测试") diff --git a/JsonTest/App/main.vp b/JsonTest/App/main.vp index 1370593..1ad282c 100644 --- a/JsonTest/App/main.vp +++ b/JsonTest/App/main.vp @@ -4,7 +4,7 @@ from stdio import printf import memhub import json import string -import w32.win32memory as win32mem +import win32.win32memory as win32mem import testcheck # --- Test 1: construct JSON values (with mpool) --- diff --git a/ListTest/App/main.vp b/ListTest/App/main.vp index 7391d51..347ea9b 100644 --- a/ListTest/App/main.vp +++ b/ListTest/App/main.vp @@ -1,5 +1,5 @@ from stdint import * -import w32.win32console +import win32.win32console import t, c from t import CInt, CExport import stdlib @@ -9,8 +9,8 @@ import testcheck def main() -> CInt | CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) testcheck.begin("ListTest: list[T] 堆容器测试") diff --git a/MultiInheritTest/App/main.vp b/MultiInheritTest/App/main.vp index 8be371f..ad10f8b 100644 --- a/MultiInheritTest/App/main.vp +++ b/MultiInheritTest/App/main.vp @@ -1,5 +1,5 @@ from stdint import * -import w32.win32console +import win32.win32console import t, c from t import CInt, CPtr, CChar, CInt32T, CFloat64T, CExport, State import viperlib @@ -138,8 +138,8 @@ class Vec2Both(Vec2M, Vec2Extra): def main() -> CInt | CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) testcheck.begin("MultiInheritTest: 多继承专项测试") diff --git a/NumpyTest/App/test_numpy.vp b/NumpyTest/App/test_numpy.vp index ba4d002..f6b3053 100644 --- a/NumpyTest/App/test_numpy.vp +++ b/NumpyTest/App/test_numpy.vp @@ -5,7 +5,7 @@ from stdlib import calloc, free import string import math import memhub -import w32.win32base +import win32.win32base import t, c # ============================================================ @@ -71,7 +71,7 @@ def section_footer(): # Timer: monotonic clock (GetTickCount64 ms -> s) via Win32 API. # ============================================================ def timer_sec() -> double: - return double(w32.win32base.GetTickCount64()) / double(1000.0) + return double(win32.win32base.GetTickCount64()) / double(1000.0) # ============================================================ @@ -988,7 +988,7 @@ def test_numpy_correct() -> int: global arena, pool, test_passed, test_failed arena = calloc(2 * 1024 * 1024, 1) - pool = memhub.MemPool(arena, 2 * 1024 * 1024) + pool = new memhub.MemPool(arena, 2 * 1024 * 1024) test_passed = 0 test_failed = 0 @@ -1038,7 +1038,7 @@ def test_numpy_edge_main() -> int: global arena, pool, test_passed, test_failed arena = calloc(2 * 1024 * 1024, 1) - pool = memhub.MemPool(arena, 2 * 1024 * 1024) + pool = new memhub.MemPool(arena, 2 * 1024 * 1024) test_passed = 0 test_failed = 0 @@ -1060,7 +1060,7 @@ def bench_numpy_main() -> int: global arena, pool arena = calloc(8 * 1024 * 1024, 1) - pool = memhub.MemPool(arena, 8 * 1024 * 1024) + pool = new memhub.MemPool(arena, 8 * 1024 * 1024) printf("==============================================\n") printf(" numpy Performance Benchmark\n") @@ -1077,7 +1077,7 @@ def test_numpy_main() -> int: global arena, pool arena = calloc(2 * 1024 * 1024, 1) - pool = memhub.MemPool(arena, 2 * 1024 * 1024) + pool = new memhub.MemPool(arena, 2 * 1024 * 1024) failed: int = test_numpy_correct() if failed == 0: diff --git a/OopInheritTest/App/main.vp b/OopInheritTest/App/main.vp index 81f71a8..43a6832 100644 --- a/OopInheritTest/App/main.vp +++ b/OopInheritTest/App/main.vp @@ -1,5 +1,5 @@ from stdint import * -import w32.win32console +import win32.win32console import t, c from t import CInt, CPtr, CChar, CInt32T, CUInt64T, CFloat64T, CExport, State import viperlib @@ -257,8 +257,8 @@ class ElectricCar(Car): def main() -> CInt | CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) testcheck.begin("OopInheritTest: OOP 继承与多态专项测试") diff --git a/PointerTest/App/main.vp b/PointerTest/App/main.vp index 78f9f4e..407506c 100644 --- a/PointerTest/App/main.vp +++ b/PointerTest/App/main.vp @@ -2,8 +2,8 @@ from stdint import * import t, c import stdio import string -import w32.win32console -import w32.win32memory +import win32.win32console +import win32.win32memory import testcheck # PointerTest: pointer operations, global declarations, array decay, pointer arithmetic @@ -26,7 +26,7 @@ def test_global_write_no_decl(): def test_global_ptr(): global _g_ptr - buf: uint32* = w32.win32memory.VirtualAlloc(None, 256, 0x3000, 0x04) + buf: uint32* = win32.win32memory.VirtualAlloc(None, 256, 0x3000, 0x04) if buf: string.memset(buf, 0, 256) _g_ptr = buf @@ -45,7 +45,7 @@ def test_global_ptr_no_decl(): # --- Test 2: pointer arithmetic and array indexing --- def test_pointer_arithmetic(): """Verify pointer arithmetic computes offsets correctly.""" - buf: uint32* = w32.win32memory.VirtualAlloc(None, 256, 0x3000, 0x04) + buf: uint32* = win32.win32memory.VirtualAlloc(None, 256, 0x3000, 0x04) if not buf: testcheck.fail("pointer arithmetic: VirtualAlloc returned NULL") return @@ -85,7 +85,7 @@ def test_array_decay(): # --- Test 4: pointer type casts (CVoid/CPtr) --- def test_pointer_cast(): """Cast between pointers and integers.""" - buf: uint32* = w32.win32memory.VirtualAlloc(None, 256, 0x3000, 0x04) + buf: uint32* = win32.win32memory.VirtualAlloc(None, 256, 0x3000, 0x04) if not buf: testcheck.fail("pointer cast: VirtualAlloc returned NULL") return @@ -108,7 +108,7 @@ def test_pointer_cast(): # --- Test 5: pointer offset (byte offset vs element offset) --- def test_pointer_offset(): """CUInt8T* + N advances N bytes; CUInt32T* + N advances N*4 bytes.""" - buf: uint8* = w32.win32memory.VirtualAlloc(None, 256, 0x3000, 0x04) + buf: uint8* = win32.win32memory.VirtualAlloc(None, 256, 0x3000, 0x04) if not buf: testcheck.fail("pointer offset: VirtualAlloc returned NULL") return @@ -153,8 +153,8 @@ def test_struct_pointer(): # --- Test 7: memcpy/memset through pointers --- def test_memcpy_pointers(): """Copy data between pointers with memcpy.""" - src_buf: uint32* = w32.win32memory.VirtualAlloc(None, 64, 0x3000, 0x04) - dst_buf: uint32* = w32.win32memory.VirtualAlloc(None, 64, 0x3000, 0x04) + src_buf: uint32* = win32.win32memory.VirtualAlloc(None, 64, 0x3000, 0x04) + dst_buf: uint32* = win32.win32memory.VirtualAlloc(None, 64, 0x3000, 0x04) if not src_buf or not dst_buf: testcheck.fail("memcpy: VirtualAlloc returned NULL") return @@ -182,7 +182,7 @@ def fill_array(arr: uint32*, count: int, val: uint32): def test_pointer_param(): """Pass a pointer as a function parameter.""" - buf: uint32* = w32.win32memory.VirtualAlloc(None, 64, 0x3000, 0x04) + buf: uint32* = win32.win32memory.VirtualAlloc(None, 64, 0x3000, 0x04) if not buf: testcheck.fail("pointer param: VirtualAlloc returned NULL") return @@ -197,11 +197,11 @@ def test_pointer_param(): def main() -> int | t.CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) print("你好") - l: t.CArray[char, 2] = 0 + l: t.CArray[char, 2] = None for i in "hello": l[0] = i print(l) diff --git a/ShortCircuitTest/App/main.vp b/ShortCircuitTest/App/main.vp index 55a36d0..3c9473f 100644 --- a/ShortCircuitTest/App/main.vp +++ b/ShortCircuitTest/App/main.vp @@ -1,5 +1,5 @@ from stdint import * -import w32.win32console +import win32.win32console import t, c from t import CInt, CExport import stdio @@ -21,8 +21,8 @@ def bump_false(buf: bytes) -> bool: def main() -> CInt | CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) testcheck.begin("if 短路机制测试") diff --git a/SlotsBugTest/App/main.vp b/SlotsBugTest/App/main.vp index 1ee48ed..b473ae7 100644 --- a/SlotsBugTest/App/main.vp +++ b/SlotsBugTest/App/main.vp @@ -8,12 +8,15 @@ import ast # VoidType alloca; ast.expr (invalid) errors, ast.AST (valid) compiles. # ============================================================ class Result: + elem_type_node: ast.AST + count_node: ast.AST* + is_pointer: bool __slots__ = ('elem_type_node', 'count_node', 'is_pointer') def __init__(self, elem: ast.AST, count: ast.AST*, flag: bool) -> None: - self.elem_type_node: ast.AST = elem - self.count_node: ast.AST* = count - self.is_pointer: bool = flag + self.elem_type_node = elem + self.count_node = count + self.is_pointer = flag def main() -> int: return 0 diff --git a/StringTest/App/main.vp b/StringTest/App/main.vp index 131d2f3..4150513 100644 --- a/StringTest/App/main.vp +++ b/StringTest/App/main.vp @@ -2,7 +2,7 @@ import t import stdio import string import testcheck -import w32.win32memory +import win32.win32memory def test_strlen(): testcheck.section("Test 1: strlen") @@ -12,7 +12,7 @@ def test_strlen(): def test_strcpy(): testcheck.section("Test 2: strcpy") - buf: char* = w32.win32memory.VirtualAlloc(None, 64, 12288, 4) + buf: char* = win32.win32memory.VirtualAlloc(None, 64, 12288, 4) if uint64(buf) == 0: stdio.printf("SKIP: VirtualAlloc returned NULL\n") return @@ -23,7 +23,7 @@ def test_strcpy(): def test_strcat(): testcheck.section("Test 3: strcat (via memcpy)") - buf: char* = w32.win32memory.VirtualAlloc(None, 64, 12288, 4) + buf: char* = win32.win32memory.VirtualAlloc(None, 64, 12288, 4) if uint64(buf) == 0: stdio.printf("SKIP: VirtualAlloc returned NULL\n") return @@ -45,7 +45,7 @@ def test_strcmp(): def test_strncpy(): testcheck.section("Test 5: strncpy") - buf: char* = w32.win32memory.VirtualAlloc(None, 64, 12288, 4) + buf: char* = win32.win32memory.VirtualAlloc(None, 64, 12288, 4) if uint64(buf) == 0: stdio.printf("SKIP: VirtualAlloc returned NULL\n") return @@ -62,7 +62,7 @@ def test_char_access(): def test_snprintf(): testcheck.section("Test 7: snprintf") - buf: char* = w32.win32memory.VirtualAlloc(None, 128, 12288, 4) + buf: char* = win32.win32memory.VirtualAlloc(None, 128, 12288, 4) if uint64(buf) == 0: stdio.printf("SKIP: VirtualAlloc returned NULL\n") return @@ -71,8 +71,6 @@ def test_snprintf(): cmp_result: int = string.strcmp(buf, "value=42 hex=0xff str=test") testcheck.check(cmp_result == 0, "snprintf (result=value=42 hex=0xff str=test)", "snprintf (result mismatch)") -import w32.win32memory - def main() -> int: testcheck.begin("StringTest: 字符串操作基准测试") test_strlen() diff --git a/StructTest/App/main.vp b/StructTest/App/main.vp index 712884b..98d2d42 100644 --- a/StructTest/App/main.vp +++ b/StructTest/App/main.vp @@ -2,6 +2,7 @@ import t import stdio import string import testcheck +import win32.win32memory # Define structs class Point(): @@ -59,7 +60,7 @@ def point_sum(p: Point) -> int: def test_struct_array(): testcheck.section("Test 5: struct array") # Allocate a struct array - buf: uint8* = w32.win32memory.VirtualAlloc(None, 256, 12288, 4) + buf: uint8* = win32.win32memory.VirtualAlloc(None, 256, 12288, 4) if uint64(buf) == 0: stdio.printf("SKIP: VirtualAlloc returned NULL\n") return @@ -73,7 +74,6 @@ def test_struct_array(): total: int = pts[0].x + pts[0].y + pts[1].x + pts[1].y testcheck.check(total == 10, "struct array (total=10)", "struct array (total expect 10)") -import w32.win32memory def main() -> int: testcheck.begin("StructTest: 结构体操作基准测试") diff --git a/SysLibTest/App/main.vp b/SysLibTest/App/main.vp index 004c5cd..a0f9531 100644 --- a/SysLibTest/App/main.vp +++ b/SysLibTest/App/main.vp @@ -1,5 +1,5 @@ from stdint import * -import w32.win32console +import win32.win32console import t, c from t import CInt, CExport import memhub @@ -19,8 +19,8 @@ define ARENA_SIZE = 1048576 def main() -> CInt | CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) # Initialize the global MBuddy allocator. arena: bytes = stdlib.malloc(ARENA_SIZE) diff --git a/SysLibTest/App/syslibtest_impl.vp b/SysLibTest/App/syslibtest_impl.vp index a7c22a4..9297305 100644 --- a/SysLibTest/App/syslibtest_impl.vp +++ b/SysLibTest/App/syslibtest_impl.vp @@ -13,9 +13,9 @@ import shutil import sys import subprocess import string -import w32.fileio -import w32.win32base -import w32.win32process +import win32.fileio +import win32.win32base +import win32.win32process # Temp file/dir name prefixes used by tests @@ -174,7 +174,7 @@ def run() -> CInt: testcheck.section("shutil 高级文件操作") # Create test file - f: w32.fileio.File | CPtr = w32.fileio.File(TEST_FILE, w32.fileio.MODE.W) + f: win32.fileio.File | CPtr = win32.fileio.File(TEST_FILE, win32.fileio.MODE.W) testcheck.check(not f.closed, "create test file OK", "create test file FAILED") f.write_str("hello shutil") f.close() @@ -203,7 +203,7 @@ def run() -> CInt: testcheck.check(os.mkdir(subdir) == 0, "mkdir subdir OK", "mkdir subdir FAILED") # Create a file inside the subdir subfile: str = os.path.join(subdir, "leaf.txt") - sf: w32.fileio.File | CPtr = w32.fileio.File(subfile, w32.fileio.MODE.W) + sf: win32.fileio.File | CPtr = win32.fileio.File(subfile, win32.fileio.MODE.W) sf.write_str("leaf") sf.close() testcheck.check(os_backend.os_exists(subfile), "create subfile OK", "create subfile FAILED") diff --git a/TestFBProject/App/main.vp b/TestFBProject/App/main.vp index 005bf52..57fe39a 100644 --- a/TestFBProject/App/main.vp +++ b/TestFBProject/App/main.vp @@ -1,5 +1,5 @@ from stdint import * -import w32.win32console +import win32.win32console import t, c import testcheck @@ -35,8 +35,8 @@ def raise_timeout(): def main() -> int | t.CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) testcheck.begin("TestFBProject: 异常处理与LLVMIR测试") diff --git a/TypeCastTest/App/main.vp b/TypeCastTest/App/main.vp index 6b6d5d6..bebdca3 100644 --- a/TypeCastTest/App/main.vp +++ b/TypeCastTest/App/main.vp @@ -2,8 +2,8 @@ from stdint import * import t, c import stdio import string -import w32.win32console -import w32.win32memory +import win32.win32console +import win32.win32memory import testcheck # TypeCastTest: type casts, zext/sext/trunc behavior, @@ -116,7 +116,7 @@ def test_comparison_types(): # --- Test 12: pointer/integer casts --- def test_ptr_int_cast(): - buf: uint32* = w32.win32memory.VirtualAlloc(None, 64, 0x3000, 0x04) + buf: uint32* = win32.win32memory.VirtualAlloc(None, 64, 0x3000, 0x04) if not buf: testcheck.fail("VirtualAlloc returned NULL") return @@ -159,8 +159,8 @@ def test_ternary(): def main() -> int | t.CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) testcheck.begin("TypeCastTest: 类型转换与运算基准测试") diff --git a/VariadicTest/App/main.vp b/VariadicTest/App/main.vp index 5f83169..8c1157a 100644 --- a/VariadicTest/App/main.vp +++ b/VariadicTest/App/main.vp @@ -4,7 +4,7 @@ import stdio import testcheck import string import viperlib -import w32.win32console +import win32.win32console # ============================================================ # VariadicTest - check snprintf/printf variadic argument passing @@ -163,8 +163,8 @@ def test_snprintf_u8_edge(): def main() -> int | t.CExport: - w32.win32console.SetConsoleCP(65001) - w32.win32console.SetConsoleOutputCP(65001) + win32.win32console.SetConsoleCP(65001) + win32.win32console.SetConsoleOutputCP(65001) testcheck.begin("VariadicTest: snprintf/printf variadic 参数测试")