Skip to content

Commit

Permalink
Fix unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mattnite committed Jan 18, 2025
1 parent 132c31f commit 2657c91
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 26 deletions.
6 changes: 4 additions & 2 deletions tools/regz/src/Database.zig
Original file line number Diff line number Diff line change
Expand Up @@ -2031,8 +2031,10 @@ pub fn apply_patch(db: *Database, ndjson: []const u8) !void {
}
}

pub fn to_zig(db: *Database, for_microzig: bool, out_writer: anytype) !void {
try gen.to_zig(db, for_microzig, out_writer);
pub const ToZigOptions = gen.ToZigOptions;

pub fn to_zig(db: *Database, out_writer: anytype, opts: ToZigOptions) !void {
try gen.to_zig(db, out_writer, opts);
}

test "all" {
Expand Down
50 changes: 27 additions & 23 deletions tools/regz/src/gen.zig
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ const riscv = @import("arch/riscv.zig");

const log = std.log.scoped(.gen);

pub fn to_zig(db: *Database, for_microzig: bool, out_writer: anytype) !void {
pub const ToZigOptions = struct {
for_microzig: bool = false,
};

pub fn to_zig(db: *Database, out_writer: anytype, opts: ToZigOptions) !void {
var arena = std.heap.ArenaAllocator.init(db.gpa);
defer arena.deinit();

Expand All @@ -29,7 +33,7 @@ pub fn to_zig(db: *Database, for_microzig: bool, out_writer: anytype) !void {
defer buffer.deinit();

const writer = buffer.writer();
if (for_microzig) {
if (opts.for_microzig) {
try writer.writeAll(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -846,7 +850,7 @@ test "gen.peripheral instantiation" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -880,7 +884,7 @@ test "gen.peripherals with a shared type" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -915,7 +919,7 @@ test "gen.peripheral with modes" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -977,7 +981,7 @@ test "gen.peripheral with enum" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1006,7 +1010,7 @@ test "gen.peripheral with enum, enum is exhausted of values" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1034,7 +1038,7 @@ test "gen.field with named enum" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1066,7 +1070,7 @@ test "gen.field with anonymous enum" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1096,7 +1100,7 @@ test "gen.namespaced register groups" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1138,7 +1142,7 @@ test "gen.peripheral with reserved register" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1171,7 +1175,7 @@ test "gen.peripheral with count" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1204,7 +1208,7 @@ test "gen.peripheral with count, padding required" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1238,7 +1242,7 @@ test "gen.register with count" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1271,7 +1275,7 @@ test "gen.register with count and fields" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1307,7 +1311,7 @@ test "gen.field with count, width of one, offset, and padding" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1343,7 +1347,7 @@ test "gen.field with count, multi-bit width, offset, and padding" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1373,7 +1377,7 @@ test "gen.interrupts.avr" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1402,7 +1406,7 @@ test "gen.peripheral type with register and field" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1431,7 +1435,7 @@ test "gen.name collisions in enum name cause them to be anonymous" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1467,7 +1471,7 @@ test "gen.pick one enum field in value collisions" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1496,7 +1500,7 @@ test "gen.pick one enum field in name collisions" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down Expand Up @@ -1525,7 +1529,7 @@ test "gen.register fields with name collision" {
var buffer = std.ArrayList(u8).init(std.testing.allocator);
defer buffer.deinit();

try db.to_zig(buffer.writer());
try db.to_zig(buffer.writer(), .{ .for_microzig = true });
try std.testing.expectEqualStrings(
\\const micro = @import("microzig");
\\const mmio = micro.mmio;
Expand Down
2 changes: 1 addition & 1 deletion tools/regz/src/main.zig
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,6 @@ fn main_impl() anyerror!void {
std.io.getStdOut().writer();

var buffered = std.io.bufferedWriter(raw_writer);
try db.to_zig(args.microzig, buffered.writer());
try db.to_zig(.{ .for_microzig = args.microzig }, buffered.writer());
try buffered.flush();
}

0 comments on commit 2657c91

Please sign in to comment.