summaryrefslogtreecommitdiff
path: root/tests/memory
diff options
context:
space:
mode:
Diffstat (limited to 'tests/memory')
-rw-r--r--tests/memory/test_copy_trait.zc10
-rw-r--r--tests/memory/test_drop.zc4
-rw-r--r--tests/memory/test_drop_flags.zc6
-rw-r--r--tests/memory/test_memory_safety.zc70
-rw-r--r--tests/memory/test_move_double_free.zc16
-rw-r--r--tests/memory/test_move_semantics.zc22
-rw-r--r--tests/memory/test_resources.zc16
-rw-r--r--tests/memory/test_unsafe.zc22
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;