dusk: re-eanble gkurve test
This commit is contained in:
parent
0d45438316
commit
1841ed056d
4 changed files with 28 additions and 64 deletions
|
|
@ -19,6 +19,14 @@ pub fn module(b: *std.Build) *std.build.Module {
|
|||
}
|
||||
|
||||
pub fn testStep(b: *std.Build, optimize: std.builtin.OptimizeMode, target: std.zig.CrossTarget) *std.build.RunStep {
|
||||
const lib_tests = b.addTest(.{
|
||||
.name = "dusk-lib-tests",
|
||||
.root_source_file = .{ .path = sdkPath("/src/main.zig") },
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
});
|
||||
lib_tests.install();
|
||||
|
||||
const main_tests = b.addTest(.{
|
||||
.name = "dusk-tests",
|
||||
.root_source_file = .{ .path = sdkPath("/test/main.zig") },
|
||||
|
|
@ -27,6 +35,9 @@ pub fn testStep(b: *std.Build, optimize: std.builtin.OptimizeMode, target: std.z
|
|||
});
|
||||
main_tests.addModule("dusk", module(b));
|
||||
main_tests.install();
|
||||
|
||||
const run_step = main_tests.run();
|
||||
run_step.step.dependOn(&lib_tests.run().step);
|
||||
return main_tests.run();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ pub fn peek(self: *Tokenizer) Token {
|
|||
},
|
||||
|
||||
.number => switch (c) {
|
||||
'0'...'9', '.', 'i', 'u', 'f', 'h', 'e', '-', '+' => {},
|
||||
'0'...'9', '.', 'i', 'u', 'f', 'h', 'e' => {},
|
||||
else => {
|
||||
result.tag = .number;
|
||||
break;
|
||||
|
|
@ -288,6 +288,7 @@ pub fn peek(self: *Tokenizer) Token {
|
|||
index += 1;
|
||||
break;
|
||||
},
|
||||
'0'...'9' => state = .number,
|
||||
else => {
|
||||
result.tag = .minus;
|
||||
break;
|
||||
|
|
@ -331,6 +332,7 @@ pub fn peek(self: *Tokenizer) Token {
|
|||
index += 1;
|
||||
break;
|
||||
},
|
||||
'0'...'9' => state = .number,
|
||||
else => {
|
||||
result.tag = .plus;
|
||||
break;
|
||||
|
|
@ -384,8 +386,8 @@ pub fn next(self: *Tokenizer) Token {
|
|||
}
|
||||
|
||||
test "tokenize identifier and numbers" {
|
||||
comptime var str: [:0]const u8 =
|
||||
\\_ __ _iden iden 100.8i // cc
|
||||
const str =
|
||||
\\_ __ _iden iden -100i 100.8i // cc
|
||||
\\// commnet
|
||||
\\
|
||||
;
|
||||
|
|
@ -394,6 +396,7 @@ test "tokenize identifier and numbers" {
|
|||
try std.testing.expect(tokenizer.next().tag == .ident);
|
||||
try std.testing.expect(tokenizer.next().tag == .ident);
|
||||
try std.testing.expect(tokenizer.next().tag == .ident);
|
||||
try std.testing.expectEqualStrings("-100i", tokenizer.next().loc.slice(str));
|
||||
try std.testing.expect(tokenizer.next().tag == .number);
|
||||
try std.testing.expect(tokenizer.next().tag == .eof);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
const std = @import("std");
|
||||
|
||||
pub const Ast = @import("Ast.zig");
|
||||
pub const IR = @import("IR.zig");
|
||||
pub const printIR = @import("print_ir.zig").printIR;
|
||||
pub const Ast = @import("Ast.zig");
|
||||
pub const Parser = @import("Parser.zig");
|
||||
pub const Token = @import("Token.zig");
|
||||
pub const Tokenizer = @import("Tokenizer.zig");
|
||||
|
|
@ -13,3 +13,13 @@ pub const Extension = enum {
|
|||
|
||||
pub const Array = std.enums.EnumArray(Extension, bool);
|
||||
};
|
||||
|
||||
test {
|
||||
std.testing.refAllDecls(IR);
|
||||
std.testing.refAllDecls(@import("print_ir.zig"));
|
||||
std.testing.refAllDecls(Ast);
|
||||
std.testing.refAllDecls(Parser);
|
||||
std.testing.refAllDecls(Token);
|
||||
std.testing.refAllDecls(Tokenizer);
|
||||
std.testing.refAllDecls(ErrorList);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -105,71 +105,11 @@ test "boids" {
|
|||
}
|
||||
|
||||
test "gkurve" {
|
||||
if (true) return error.SkipZigTest;
|
||||
|
||||
const source = @embedFile("gkurve.wgsl");
|
||||
var ir = try expectIR(source);
|
||||
defer ir.deinit();
|
||||
}
|
||||
|
||||
test "variable & expressions" {
|
||||
// const source = "var expr = 1 + 5 + 2 * 3 > 6 >> 7;";
|
||||
|
||||
// var ir = try expectIR(source);
|
||||
// defer ir.deinit();
|
||||
|
||||
// const root_node = 0;
|
||||
// try expect(ir.nodeLHS(root_node) + 1 == ir.nodeRHS(root_node));
|
||||
|
||||
// const variable = ir.spanToList(root_node)[0];
|
||||
// const variable_name = ir.tokenLoc(ir.extraData(dusk.Ast.Node.GlobalVarDecl, ir.nodeLHS(variable)).name);
|
||||
// try expect(std.mem.eql(u8, "expr", variable_name.slice(source)));
|
||||
// try expect(ir.nodeTag(variable) == .global_variable);
|
||||
// try expect(ir.tokenTag(ir.nodeToken(variable)) == .k_var);
|
||||
|
||||
// const expr = ir.nodeRHS(variable);
|
||||
// try expect(ir.nodeTag(expr) == .greater);
|
||||
|
||||
// const @"1 + 5 + 2 * 3" = ir.nodeLHS(expr);
|
||||
// try expect(ir.nodeTag(@"1 + 5 + 2 * 3") == .add);
|
||||
|
||||
// const @"1 + 5" = ir.nodeLHS(@"1 + 5 + 2 * 3");
|
||||
// try expect(ir.nodeTag(@"1 + 5") == .add);
|
||||
|
||||
// const @"1" = ir.nodeLHS(@"1 + 5");
|
||||
// try expect(ir.nodeTag(@"1") == .number_literal);
|
||||
|
||||
// const @"5" = ir.nodeRHS(@"1 + 5");
|
||||
// try expect(ir.nodeTag(@"5") == .number_literal);
|
||||
|
||||
// const @"2 * 3" = ir.nodeRHS(@"1 + 5 + 2 * 3");
|
||||
// try expect(ir.nodeTag(@"2 * 3") == .mul);
|
||||
|
||||
// const @"6 >> 7" = ir.nodeRHS(expr);
|
||||
// try expect(ir.nodeTag(@"6 >> 7") == .shift_right);
|
||||
|
||||
// const @"6" = ir.nodeLHS(@"6 >> 7");
|
||||
// try expect(ir.nodeTag(@"6") == .number_literal);
|
||||
|
||||
// const @"7" = ir.nodeRHS(@"6 >> 7");
|
||||
// try expect(ir.nodeTag(@"7") == .number_literal);
|
||||
}
|
||||
|
||||
test "simple analyse's result" {
|
||||
// {
|
||||
// const source =
|
||||
// \\type T0 = f32;
|
||||
// \\type T1 = T0;
|
||||
// \\type T2 = T1;
|
||||
// \\type T3 = T2;
|
||||
// \\struct S0 { m0: T3 }
|
||||
// ;
|
||||
// var ir = try expectIR(source);
|
||||
// // try std.testing.expect(ir.root[0].@"struct".members[0].type.number == .f32);
|
||||
// ir.deinit();
|
||||
// }
|
||||
}
|
||||
|
||||
test "must error" {
|
||||
{
|
||||
const source = "^";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue