[spirv-writer] Add function with body test.
This CL implements the disabled function with body test.
Bug: tint:5
Change-Id: Ia5b2270373fdf734536b77d9dbac41bd35e3218f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20625
Reviewed-by: David Neto <dneto@google.com>
diff --git a/src/writer/spirv/builder_function_test.cc b/src/writer/spirv/builder_function_test.cc
index cc34a96..4ee1863 100644
--- a/src/writer/spirv/builder_function_test.cc
+++ b/src/writer/spirv/builder_function_test.cc
@@ -18,6 +18,7 @@
#include "spirv/unified1/spirv.h"
#include "spirv/unified1/spirv.hpp11"
#include "src/ast/function.h"
+#include "src/ast/return_statement.h"
#include "src/ast/type/void_type.h"
#include "src/writer/spirv/builder.h"
#include "src/writer/spirv/spv_dump.h"
@@ -51,7 +52,27 @@
TEST_F(BuilderTest, DISABLED_Function_WithParams) {}
-TEST_F(BuilderTest, DISABLED_Function_WithBody) {}
+TEST_F(BuilderTest, Function_WithBody) {
+ ast::type::VoidType void_type;
+
+ ast::StatementList body;
+ body.push_back(std::make_unique<ast::ReturnStatement>());
+
+ ast::Function func("a_func", {}, &void_type);
+ func.set_body(std::move(body));
+
+ ast::Module mod;
+ Builder b(&mod);
+ ASSERT_TRUE(b.GenerateFunction(&func));
+ EXPECT_EQ(DumpBuilder(b), R"(OpName %3 "a_func"
+%2 = OpTypeVoid
+%1 = OpTypeFunction %2
+%3 = OpFunction %2 None %1
+%4 = OpLabel
+OpReturn
+OpFunctionEnd
+)");
+}
TEST_F(BuilderTest, FunctionType) {
ast::type::VoidType void_type;