소스 검색

test: add struct* to the list

this is not working as expected
Douglas A 1 년 전
부모
커밋
b7fffb7a68
1개의 변경된 파일24개의 추가작업 그리고 1개의 파일을 삭제
  1. 24 1
      zig-list/src/main.zig

+ 24 - 1
zig-list/src/main.zig

@@ -62,6 +62,9 @@ fn Queue(comptime T: type) type {
 
 const IntQueue = Queue(i32);
 
+const Data = struct { val: usize };
+const StructQueue = Queue(*Data);
+
 pub fn main() !void {
     var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
     defer arena.deinit();
@@ -90,7 +93,27 @@ test "filled queue" {
     try q.enqueue(20);
     try q.enqueue(30);
     if (q.dequeue()) |value| {
-        try std.testing.expect(value == 20);
+        std.testing.expect(value == 20) catch {
+            std.debug.print("filled queue: got error: 20=={}", .{value});
+        };
+    }
+}
+
+test "struct* queue" {
+    var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
+    defer arena.deinit();
+
+    const allocator = arena.allocator();
+
+    var q = StructQueue.new(allocator);
+    for (0..5) |idx| {
+        var d = Data{ .val = idx };
+        try q.enqueue(&d);
+    }
+    if (q.dequeue()) |value| {
+        std.testing.expect(value.*.val == 0) catch {
+            std.debug.print("struct* queue: got error: 0=={}", .{value.*.val});
+        };
     }
 }