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