From f50f17f1e03c7bffe962205fcbe6e432eb9a0215 Mon Sep 17 00:00:00 2001 From: cozis Date: Sat, 23 May 2026 17:13:39 +0200 Subject: [PATCH] simulator: Implement Simulator.dumpFiles to easily inspect the in-memory file system's state --- src/file_system.zig | 20 ++++++++++++++++++++ src/node.zig | 4 ++++ src/simulator.zig | 6 ++++++ 3 files changed, 30 insertions(+) diff --git a/src/file_system.zig b/src/file_system.zig index dff4b29..2f507b1 100644 --- a/src/file_system.zig +++ b/src/file_system.zig @@ -414,3 +414,23 @@ pub fn fileSize(self: *FileSystem, open_file: *OpenFile) usize { _ = self; return open_file.entity.bytes.items.len; } + +fn dumpEntity(entity: *Entity, depth: u32) void { + if (entity.is_dir) { + for (entity.children.items) |item| { + for (0..depth) |_| + std.debug.print(" ", .{}); + std.debug.print("{s}\n", .{ item.getName() }); + dumpEntity(item.addr, depth+1); + } + } else { + for (0..depth) |_| + std.debug.print(" ", .{}); + std.debug.print("[{s}]", .{ entity.bytes.items }); + } +} + +pub fn dump(self: *FileSystem) void { + dumpEntity(self.root, 0); + std.debug.print("\n", .{}); +} diff --git a/src/node.zig b/src/node.zig index 5480120..b9dd06b 100644 --- a/src/node.zig +++ b/src/node.zig @@ -381,3 +381,7 @@ pub fn closeSocket(self: *Node, handle: Handle) HandleError!void { } desc.kind = .unused; } + +pub fn dumpFiles(self: *Node) void { + self.file_system.dump(); +} diff --git a/src/simulator.zig b/src/simulator.zig index f33e1d4..9cfc6fd 100644 --- a/src/simulator.zig +++ b/src/simulator.zig @@ -77,6 +77,12 @@ pub fn scheduleOne(self: *Simulator) bool { return self.scheduler.scheduleOne(); } +pub fn dumpFiles(self: *Simulator) void { + for (self.nodes.items) |node| { + node.dumpFiles(); + } +} + // Reads the first word of a command // "program arg1 arg2 arg3" -> "program" fn extractProgramNameFromCommand(command: []const u8) ?[]const u8 {