From ed14f13d9aa567524f18076f140e2b045fe3aeea Mon Sep 17 00:00:00 2001 From: "Caleb J. Gardner" Date: Thu, 15 Jan 2026 06:56:43 -0600 Subject: [PATCH] Some work on tests & metadata --- src/test.zig | 21 ++++++++++++++++++++- src/util/metadata.zig | 9 +++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/test.zig b/src/test.zig index d688c50..31dba94 100644 --- a/src/test.zig +++ b/src/test.zig @@ -1,8 +1,27 @@ const std = @import("std"); const stuff = @import("builtin"); -test "Basics" {} +const Archive = @import("archive.zig"); +const Superblock = @import("super.zig"); + +const TestArchive = "testing/LinuxPATest.sfs"; + +test "Basics" { + var fil = try std.fs.cwd().openFile(TestArchive); + defer fil.close(); + var sfs: Archive = try .init(std.testing.allocator, fil); + defer sfs.deinit(); +} + +const TestFile = "Start.exe"; +const TestFileExtractLocation = "testing/Start.exe"; test "ExtractSingleFile" {} +const TestFullExtractLocation = "testing/TestExtract"; + test "ExtractCompleteArchive" {} + +const CorrectSuperblock = Superblock{ + .magic = "hsqs", +}; diff --git a/src/util/metadata.zig b/src/util/metadata.zig index 14379f9..97a8553 100644 --- a/src/util/metadata.zig +++ b/src/util/metadata.zig @@ -14,6 +14,7 @@ decomp: *DecompMgr, buf: [8192]u8 = undefined, interface: Reader, +err: anyerror = 0, pub fn init(rdr: Reader, decomp: *DecompMgr) This { return .{ @@ -23,12 +24,16 @@ pub fn init(rdr: Reader, decomp: *DecompMgr) This { .buffer = &[0]u8{}, .end = 0, .seek = 0, - .vtable = &{ + .vtable = &.{ .stream = stream, }, }, }; } -fn stream(rdr: *Reader, wrt: *Writer, limit: Limit) StreamError!usize{ +fn advance(self: *This) !void {} + +fn stream(rdr: *Reader, wrt: *Writer, limit: Limit) StreamError!usize { + const this: *This = @fieldParentPtr("interface", rdr); + if (rdr.end == rdr.seek) try this.advance(); }