Fill in some disabled tests
This CL completes a few of the DISABLED tests.
Change-Id: I38806fb9381240d6e3da700f1fb2dac5f899ca6d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19000
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
diff --git a/src/reader/wgsl/parser_impl_test.cc b/src/reader/wgsl/parser_impl_test.cc
index c4fa442..890be8c 100644
--- a/src/reader/wgsl/parser_impl_test.cc
+++ b/src/reader/wgsl/parser_impl_test.cc
@@ -28,12 +28,13 @@
ASSERT_TRUE(p->Parse()) << p->error();
}
-TEST_F(ParserImplTest, DISABLED_Parses) {
+TEST_F(ParserImplTest, Parses) {
auto p = parser(R"(
import "GLSL.std.430" as glsl;
[[location 0]] var<out> gl_FragColor : vec4<f32>;
+entry_point vertex = main;
fn main() -> void {
gl_FragColor = vec4<f32>(.4, .2, .3, 1);
}
@@ -42,11 +43,12 @@
auto m = p->module();
ASSERT_EQ(1, m.imports().size());
-
- // TODO(dsinclair) check rest of AST ...
+ ASSERT_EQ(1, m.entry_points().size());
+ ASSERT_EQ(1, m.functions().size());
+ ASSERT_EQ(1, m.global_variables().size());
}
-TEST_F(ParserImplTest, DISABLED_HandlesError) {
+TEST_F(ParserImplTest, HandlesError) {
auto p = parser(R"(
import "GLSL.std.430" as glsl;
@@ -56,7 +58,7 @@
ASSERT_FALSE(p->Parse());
ASSERT_TRUE(p->has_error());
- EXPECT_EQ(p->error(), "4:15: missing return type for function");
+ EXPECT_EQ(p->error(), "4:15: unable to determine function return type");
}
TEST_F(ParserImplTest, GetRegisteredType) {
diff --git a/src/reader/wgsl/parser_test.cc b/src/reader/wgsl/parser_test.cc
index fa06290..081deba 100644
--- a/src/reader/wgsl/parser_test.cc
+++ b/src/reader/wgsl/parser_test.cc
@@ -30,7 +30,7 @@
ASSERT_TRUE(p.Parse()) << p.error();
}
-TEST_F(ParserTest, DISABLED_Parses) {
+TEST_F(ParserTest, Parses) {
Context ctx;
Parser p(&ctx, R"(
@@ -38,6 +38,7 @@
[[location 0]] var<out> gl_FragColor : vec4<f32>;
+entry_point vertex = main;
fn main() -> void {
gl_FragColor = vec4<f32>(.4, .2, .3, 1);
}
@@ -46,11 +47,12 @@
auto m = p.module();
ASSERT_EQ(1, m.imports().size());
-
- // TODO(dsinclair) check rest of AST ...
+ ASSERT_EQ(1, m.entry_points().size());
+ ASSERT_EQ(1, m.functions().size());
+ ASSERT_EQ(1, m.global_variables().size());
}
-TEST_F(ParserTest, DISABLED_HandlesError) {
+TEST_F(ParserTest, HandlesError) {
Context ctx;
Parser p(&ctx, R"(
import "GLSL.std.430" as glsl;
@@ -61,7 +63,7 @@
ASSERT_FALSE(p.Parse());
ASSERT_TRUE(p.has_error());
- EXPECT_EQ(p.error(), "4:15: missing return type for function");
+ EXPECT_EQ(p.error(), "4:15: unable to determine function return type");
}
} // namespace
diff --git a/src/writer/wgsl/generator.h b/src/writer/wgsl/generator.h
index cc0cffa..827a060 100644
--- a/src/writer/wgsl/generator.h
+++ b/src/writer/wgsl/generator.h
@@ -39,6 +39,9 @@
/// @returns the result data
std::string result() const { return impl_.result(); }
+ /// @returns the error
+ std::string error() const { return impl_.error(); }
+
private:
GeneratorImpl impl_;
};
diff --git a/src/writer/wgsl/generator_impl_test.cc b/src/writer/wgsl/generator_impl_test.cc
index 1b0e10a..814f214 100644
--- a/src/writer/wgsl/generator_impl_test.cc
+++ b/src/writer/wgsl/generator_impl_test.cc
@@ -23,7 +23,17 @@
using GeneratorImplTest = testing::Test;
-TEST_F(GeneratorImplTest, DISABLED_Generate) {}
+TEST_F(GeneratorImplTest, Generate) {
+ ast::Module m;
+ m.AddImport(std::make_unique<ast::Import>("GLSL.std.430", "a"));
+
+ GeneratorImpl g;
+
+ ASSERT_TRUE(g.Generate(m)) << g.error();
+ EXPECT_EQ(g.result(), R"(import "GLSL.std.430" as a;
+
+)");
+}
} // namespace
} // namespace wgsl