diff options
Diffstat (limited to 'tests/memory')
| -rw-r--r-- | tests/memory/test_copy_trait.zc | 10 | ||||
| -rw-r--r-- | tests/memory/test_drop.zc | 4 | ||||
| -rw-r--r-- | tests/memory/test_drop_flags.zc | 6 | ||||
| -rw-r--r-- | tests/memory/test_memory_safety.zc | 70 | ||||
| -rw-r--r-- | tests/memory/test_move_double_free.zc | 16 | ||||
| -rw-r--r-- | tests/memory/test_move_semantics.zc | 22 | ||||
| -rw-r--r-- | tests/memory/test_resources.zc | 16 | ||||
| -rw-r--r-- | tests/memory/test_unsafe.zc | 22 |
8 files changed, 83 insertions, 83 deletions
diff --git a/tests/memory/test_copy_trait.zc b/tests/memory/test_copy_trait.zc index 994ccee..c31119c 100644 --- a/tests/memory/test_copy_trait.zc +++ b/tests/memory/test_copy_trait.zc @@ -13,8 +13,8 @@ struct Mover { } test "copy_trait" { - var p1 = Point { x: 10, y: 20 }; - var p2 = p1; // Copy, not move + let p1 = Point { x: 10, y: 20 }; + let p2 = p1; // Copy, not move // Both should be valid assert(p1.x == 10, "p1 invalid after copy"); @@ -29,9 +29,9 @@ test "copy_trait" { } test "move_default" { - var m1 = Mover { val: 1 }; - var m2 = m1; // Moved + let m1 = Mover { val: 1 }; + let m2 = m1; // Moved // Uncommenting this should cause compile error - // var m3 = m1; + // let m3 = m1; } diff --git a/tests/memory/test_drop.zc b/tests/memory/test_drop.zc index 8b34efe..6b1ccdf 100644 --- a/tests/memory/test_drop.zc +++ b/tests/memory/test_drop.zc @@ -1,6 +1,6 @@ import "../../std/mem.zc" -var DROP_CALLED = 0; +let DROP_CALLED = 0; struct MyResource { id: int; @@ -15,7 +15,7 @@ impl Drop for MyResource { test "drop_trait" { { - var res = MyResource { id: 1 }; + let res = MyResource { id: 1 }; // Scope ends here, drop should be called } diff --git a/tests/memory/test_drop_flags.zc b/tests/memory/test_drop_flags.zc index 753fc83..8a25d8d 100644 --- a/tests/memory/test_drop_flags.zc +++ b/tests/memory/test_drop_flags.zc @@ -1,7 +1,7 @@ import "../../std/mem.zc" // Global to track destructor calls -var DTOR_COUNT = 0; +let DTOR_COUNT = 0; struct Buffer { data: int*; @@ -23,9 +23,9 @@ test "drop_flags_variable_move" { DTOR_COUNT = 0; { println "Init"; - var buffer = Buffer { data: malloc(100) }; + let buffer = Buffer { data: malloc(100) }; println "Moved"; - var buf = buffer; // Move occurs + let buf = buffer; // Move occurs // buffer is moved-from. Flag should prevent destructor. // buf owns data. } diff --git a/tests/memory/test_memory_safety.zc b/tests/memory/test_memory_safety.zc index c7ba01d..a5cc960 100644 --- a/tests/memory/test_memory_safety.zc +++ b/tests/memory/test_memory_safety.zc @@ -2,7 +2,7 @@ import "std/mem.zc" // ** Globals ** -var DROP_COUNT = 0; +let DROP_COUNT = 0; // ** Structs & Helpers ** @@ -20,7 +20,7 @@ impl Drop for Resource { } fn create_resource(id: int) { - var r = Resource{id: id}; + let r = Resource{id: id}; println "Created Resource {r.id}"; } @@ -30,14 +30,14 @@ struct Point { } fn distance(p1: Point, p2: Point) -> int { - var dx = p2.x - p1.x; - var dy = p2.y - p1.y; + let dx = p2.x - p1.x; + let dy = p2.y - p1.y; return dx * dx + dy * dy; } fn accumulate(start: int, count: int) -> int { - var sum = start; - var i = 0; + let sum = start; + let i = 0; while (i < count) { sum += i; i++; @@ -46,14 +46,14 @@ fn accumulate(start: int, count: int) -> int { } fn process_point(p: Point) -> Point { - var result = Point { x: p.x * 2, y: p.y * 2 }; + let result = Point { x: p.x * 2, y: p.y * 2 }; return result; } fn counter_immut() { - var count = 0; + let count = 0; { - var inner = 10; + let inner = 10; inner = inner + 5; count = count + inner; } @@ -87,7 +87,7 @@ fn release_resource(id: int) { fn test_defer_logic() { println "start test"; - var x = get_resource() defer release_resource(it); + let x = get_resource() defer release_resource(it); println "using resource {x}"; } @@ -95,14 +95,14 @@ fn test_defer_logic() { test "test_alloc" { "Testing alloc<T>..."; - var p = alloc<int>(); + let p = alloc<int>(); *p = 42; f" alloc<int>(): {*p}"; assert(*p == 42, "alloc failed"); free(p); - var arr = alloc_n<int>(5); - for var i = 0; i < 5; i++ { + let arr = alloc_n<int>(5); + for let i = 0; i < 5; i++ { arr[i] = i * 10; } f" alloc_n<int>(5): [{arr[0]}, {arr[1]}, {arr[2]}, {arr[3]}, {arr[4]}]"; @@ -113,9 +113,9 @@ test "test_alloc" { test "test_box" { "Testing Box<T>..."; - var b = Box<int>::new(); + let b = Box<int>::new(); *b.get() = 100; - var val = *b.get(); + let val = *b.get(); f" Box value: {val}"; assert(val == 100, "Box failed"); b.free(); @@ -124,14 +124,14 @@ test "test_box" { test "test_slice" { "Testing Slice<T>..."; - var data: int[5] = [1, 2, 3, 4, 5]; - var s = Slice<int>::new(&data[0], 5); + let data: int[5] = [1, 2, 3, 4, 5]; + let s = Slice<int>::new(&data[0], 5); f" Slice len: {(int)s.len}"; - var v2 = s.get(2); + let v2 = s.get(2); f" Slice[2]: {v2}"; assert(v2 == 3, "Slice get failed"); s.set(0, 99); - var v0 = s.get(0); + let v0 = s.get(0); f" After set: Slice[0] = {v0}"; assert(v0 == 99, "Slice set failed"); " ✓ Slice works!"; @@ -139,8 +139,8 @@ test "test_slice" { test "test_swap" { "Testing swap<T>..."; - var a = 10; - var b = 20; + let a = 10; + let b = 20; f" Before: a={a}, b={b}"; swap<int>(&a, &b); f" After: a={a}, b={b}"; @@ -151,15 +151,15 @@ test "test_swap" { test "test_autofree" { println "Testing autofree..."; { - autofree var p = malloc(1024); + autofree let p = malloc(1024); if (p == NULL) { eprintln "Malloc failed!"; } strcpy(p, "Auto-freed string"); print f"Allocated: {p}"; println ""; } println "Exited block successfully (hopefully freed)"; { - autofree var p1 = malloc(10); - autofree var p2 = malloc(20); + autofree let p1 = malloc(10); + autofree let p2 = malloc(20); } } @@ -170,20 +170,20 @@ test "test_raii_drop" { "Exited scope."; assert(DROP_COUNT == 1, "Expected Drop to be called once"); { - var r2 = Resource{id: 2}; - var r3 = Resource{id: 3}; + let r2 = Resource{id: 2}; + let r3 = Resource{id: 3}; } assert(DROP_COUNT == 3, "Expected 3 total drops"); } test "test_immutable" { - var p1 = Point { x: 0, y: 0 }; - var p2 = Point { x: 3, y: 4 }; - var dist = distance(p1, p2); + let p1 = Point { x: 0, y: 0 }; + let p2 = Point { x: 3, y: 4 }; + let dist = distance(p1, p2); "Distance: {dist}"; - var sum = accumulate(10, 5); + let sum = accumulate(10, 5); "Accumulate: {sum}"; - var p3 = process_point(Point { x: 0, y: 0 }); + let p3 = process_point(Point { x: 0, y: 0 }); "Processed: ({p3.x}, {p3.y})"; counter_immut(); } @@ -193,11 +193,11 @@ test "test_permissions" { def WRITE : U8 = 0b010; def EXEC : U8 = 0b001; - var p1 = Permissions::new(READ); + let p1 = Permissions::new(READ); "Start: {p1.mask} (Read)"; - var p2 = Permissions::new(WRITE); - var p_rw = p1 | p2; + let p2 = Permissions::new(WRITE); + let p_rw = p1 | p2; "Combined: {p_rw.mask} (Read + Write)"; if (p_rw.has(EXEC)) { " > Has Execute access"; } @@ -205,7 +205,7 @@ test "test_permissions" { if (p_rw.has(READ)) { " > Has Read access"; } - var p_all = p_rw | Permissions::new(EXEC); + let p_all = p_rw | Permissions::new(EXEC); "Final: {p_all.mask} (All)"; } diff --git a/tests/memory/test_move_double_free.zc b/tests/memory/test_move_double_free.zc index 8322bcd..74a794c 100644 --- a/tests/memory/test_move_double_free.zc +++ b/tests/memory/test_move_double_free.zc @@ -1,8 +1,8 @@ import "../../std/mem.zc" // Global counters to track drop calls -var DROP_COUNT = 0; -var DROP_NULL_COUNT = 0; +let DROP_COUNT = 0; +let DROP_NULL_COUNT = 0; struct Resource { data: int*; @@ -32,8 +32,8 @@ test "move_variable" { DROP_NULL_COUNT = 0; { - var r1 = Resource { data: malloc(10), id: 1 }; - var r2 = r1; // Move + let r1 = Resource { data: malloc(10), id: 1 }; + let r2 = r1; // Move // r1 should be nullified // r2 owns data @@ -52,8 +52,8 @@ test "move_function" { DROP_NULL_COUNT = 0; { - var r1 = Resource { data: malloc(10), id: 2 }; - var r2 = pass_through(r1); + let r1 = Resource { data: malloc(10), id: 2 }; + let r2 = pass_through(r1); // r1 moved to arg -> moved to return -> moved to r2 } @@ -73,8 +73,8 @@ test "partial_move_member" { DROP_NULL_COUNT = 0; { - var c = Container { res: Resource { data: malloc(10), id: 3 } }; - var r = c.res; // Partial move + let c = Container { res: Resource { data: malloc(10), id: 3 } }; + let r = c.res; // Partial move // c.res should be nullified // r owns data diff --git a/tests/memory/test_move_semantics.zc b/tests/memory/test_move_semantics.zc index bf0d717..0ccd822 100644 --- a/tests/memory/test_move_semantics.zc +++ b/tests/memory/test_move_semantics.zc @@ -8,29 +8,29 @@ struct Mover { } test "basic_move" { - var p1 = Mover { val: 10 }; - var p2 = p1; // p1 moved to p2 + let p1 = Mover { val: 10 }; + let p2 = p1; // p1 moved to p2 // Valid usage of p2 assert(p2.val == 10, "p2 should be valid"); // Invalid usage of p1 (Uncomment to test compiler error) - // var p3 = p1; + // let p3 = p1; } test "primitive_copy" { - var i = 10; - var j = i; // Copy - var k = i; // Copy again - should be valid + let i = 10; + let j = i; // Copy + let k = i; // Copy again - should be valid assert(k == 10, "Primitive copy failed"); } test "reassignment" { - var m1 = Mover { val: 1 }; - var m2 = m1; // m1 moved + let m1 = Mover { val: 1 }; + let m2 = m1; // m1 moved m1 = Mover { val: 2 }; // Resurrect m1 - var m3 = m1; // Valid now + let m3 = m1; // Valid now assert(m3.val == 2, "Resurrection failed"); } @@ -39,7 +39,7 @@ fn consume(m: Mover) { } test "func_arg" { - var m = Mover { val: 10 }; + let m = Mover { val: 10 }; consume(m); // m moved // 2. Use after move (Call - Negative Test) @@ -49,7 +49,7 @@ test "func_arg" { /* // 3. Use after return (Negative Test) fn fail_return(m: Mover) -> Mover { - var m2 = m; + let m2 = m; return m; // Should fail: Use of moved value 'm' } */ diff --git a/tests/memory/test_resources.zc b/tests/memory/test_resources.zc index dc7b9f9..e21653d 100644 --- a/tests/memory/test_resources.zc +++ b/tests/memory/test_resources.zc @@ -29,12 +29,12 @@ fn take_point(p: Point) { test "Resource Semantics" { "Testing Resource Semantics..."; - var p1 = Point{x: 10, y: 20}; - var p2 = p1; // Copied + let p1 = Point{x: 10, y: 20}; + let p2 = p1; // Copied - var b1 = Box{val: 99}; - var b2 = b1.clone(); - // var b3 = b1; // This would move if uncommented. + let b1 = Box{val: 99}; + let b2 = b1.clone(); + // let b3 = b1; // This would move if uncommented. if b2.val != 99 { !"Clone failed"; @@ -44,11 +44,11 @@ test "Resource Semantics" { // Re-initialization // struct Resource (Global) - var r1 = Resource{ptr: NULL}; - var r2 = r1; // Moved + let r1 = Resource{ptr: NULL}; + let r2 = r1; // Moved r1 = Resource{ptr: NULL}; // Re-init - var r3 = r1; // Valid again + let r3 = r1; // Valid again // Function Param Move (Simulated) take_point(p1); diff --git a/tests/memory/test_unsafe.zc b/tests/memory/test_unsafe.zc index 126404a..fe1150f 100644 --- a/tests/memory/test_unsafe.zc +++ b/tests/memory/test_unsafe.zc @@ -9,46 +9,46 @@ raw { extern fn legacy_add(a: int, b: int) -> int; fn process_arrays(n: int, a: restrict int*, b: restrict int*, out: restrict int*) { - for (var i = 0; i < n; i = i + 1) { + for (let i = 0; i < n; i = i + 1) { out[i] = a[i] + b[i]; } } fn counter() -> int { - static var count = 0; + static let count = 0; count = count + 1; return count; } test "test_raw" { println "Testing Raw C Embedding..."; - var res = legacy_add(10, 20); + let res = legacy_add(10, 20); // Expected: 10 + 20 + 12345 = 12375 assert(res == 12375, "Raw C Code failed"); println " Raw C Code: Success (Result: {res})"; } test "test_restrict" { - var a: int[10]; - var b: int[10]; - var c: int[10]; + let a: int[10]; + let b: int[10]; + let c: int[10]; - for (var i = 0; i < 10; i = i + 1) { + for (let i = 0; i < 10; i = i + 1) { a[i] = i; b[i] = i * 2; } process_arrays(10, a, b, c); - for (var i = 0; i < 10; i = i + 1) { + for (let i = 0; i < 10; i = i + 1) { assert(c[i] == i * 3, "Restrict test failed"); } } test "test_static_local" { - var a = counter(); // 1 - var b = counter(); // 2 - var c = counter(); // 3 + let a = counter(); // 1 + let b = counter(); // 2 + let c = counter(); // 3 assert a == 1; assert b == 2; |
