lang: add tests
- lang: add deinit()
This commit is contained in:
parent
b8dcb84294
commit
7e6b85ef48
2 changed files with 30 additions and 2 deletions
26
src/lang.zig
26
src/lang.zig
|
@ -141,6 +141,10 @@ pub const Lang = struct {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn deinit(self: *Lang) void {
|
||||||
|
self.keywords.deinit();
|
||||||
|
}
|
||||||
|
|
||||||
fn fillKeywords(self: *Lang) !void {
|
fn fillKeywords(self: *Lang) !void {
|
||||||
_ = try self.keywords.put("noop", .Noop);
|
_ = try self.keywords.put("noop", .Noop);
|
||||||
_ = try self.keywords.put("load", .Load);
|
_ = try self.keywords.put("load", .Load);
|
||||||
|
@ -273,4 +277,24 @@ pub const Lang = struct {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO tests
|
test "noop" {
|
||||||
|
var lang = Lang.init(std.heap.direct_allocator);
|
||||||
|
var cmds = try lang.parse("noop;");
|
||||||
|
std.testing.expectEqual(cmds.len, 1);
|
||||||
|
std.testing.expectEqual(cmds.at(0).command, .Noop);
|
||||||
|
}
|
||||||
|
|
||||||
|
test "load, phaser, quicksave" {
|
||||||
|
var lang = Lang.init(std.heap.direct_allocator);
|
||||||
|
const prog =
|
||||||
|
\\load :0;
|
||||||
|
\\phaser 3 1 25 0.25 0 1;
|
||||||
|
\\quicksave;
|
||||||
|
;
|
||||||
|
var cmds = try lang.parse(prog);
|
||||||
|
|
||||||
|
std.testing.expectEqual(cmds.len, 3);
|
||||||
|
std.testing.expectEqual(cmds.at(0).command, .Load);
|
||||||
|
std.testing.expectEqual(cmds.at(1).command, .Phaser);
|
||||||
|
std.testing.expectEqual(cmds.at(2).command, .Quicksave);
|
||||||
|
}
|
||||||
|
|
|
@ -2,6 +2,10 @@ const std = @import("std");
|
||||||
const langs = @import("lang.zig");
|
const langs = @import("lang.zig");
|
||||||
const runners = @import("runner.zig");
|
const runners = @import("runner.zig");
|
||||||
|
|
||||||
|
test "scritcher" {
|
||||||
|
_ = @import("lang.zig");
|
||||||
|
}
|
||||||
|
|
||||||
pub fn main() !void {
|
pub fn main() !void {
|
||||||
var arena = std.heap.ArenaAllocator.init(std.heap.c_allocator);
|
var arena = std.heap.ArenaAllocator.init(std.heap.c_allocator);
|
||||||
defer arena.deinit();
|
defer arena.deinit();
|
||||||
|
@ -9,7 +13,7 @@ pub fn main() !void {
|
||||||
const allocator = &arena.allocator;
|
const allocator = &arena.allocator;
|
||||||
|
|
||||||
var lang = langs.Lang.init(allocator);
|
var lang = langs.Lang.init(allocator);
|
||||||
//defer lang.deinit();
|
defer lang.deinit();
|
||||||
|
|
||||||
var runner = runners.Runner.init(allocator);
|
var runner = runners.Runner.init(allocator);
|
||||||
defer runner.deinit();
|
defer runner.deinit();
|
||||||
|
|
Loading…
Reference in a new issue