writer: Fix CaseStatment tests
Case statements cannot be used as regular statements. They must exist inside a switch.
Change-Id: Ica2e0573ad926c3e257f02c95397a8666dfcd547
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/57705
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
diff --git a/src/writer/hlsl/generator_impl_case_test.cc b/src/writer/hlsl/generator_impl_case_test.cc
index 93e80a6..6ecd755 100644
--- a/src/writer/hlsl/generator_impl_case_test.cc
+++ b/src/writer/hlsl/generator_impl_case_test.cc
@@ -23,17 +23,15 @@
using HlslGeneratorImplTest_Case = TestHelper;
TEST_F(HlslGeneratorImplTest_Case, Emit_Case) {
- auto* body = Block(create<ast::BreakStatement>());
- ast::CaseSelectorList lit;
- lit.push_back(Literal(5));
- auto* c = create<ast::CaseStatement>(lit, body);
- WrapInFunction(c);
+ auto* s = Switch(1, Case(Literal(5), Block(create<ast::BreakStatement>())),
+ DefaultCase());
+ WrapInFunction(s);
GeneratorImpl& gen = Build();
gen.increment_indent();
- ASSERT_TRUE(gen.EmitCase(c)) << gen.error();
+ ASSERT_TRUE(gen.EmitCase(s->body()[0])) << gen.error();
EXPECT_EQ(gen.result(), R"( case 5: {
break;
}
@@ -41,16 +39,14 @@
}
TEST_F(HlslGeneratorImplTest_Case, Emit_Case_BreaksByDefault) {
- ast::CaseSelectorList lit;
- lit.push_back(Literal(5));
- auto* c = create<ast::CaseStatement>(lit, Block());
- WrapInFunction(c);
+ auto* s = Switch(1, Case(Literal(5), Block()), DefaultCase());
+ WrapInFunction(s);
GeneratorImpl& gen = Build();
gen.increment_indent();
- ASSERT_TRUE(gen.EmitCase(c)) << gen.error();
+ ASSERT_TRUE(gen.EmitCase(s->body()[0])) << gen.error();
EXPECT_EQ(gen.result(), R"( case 5: {
break;
}
@@ -58,17 +54,16 @@
}
TEST_F(HlslGeneratorImplTest_Case, Emit_Case_WithFallthrough) {
- auto* body = Block(create<ast::FallthroughStatement>());
- ast::CaseSelectorList lit;
- lit.push_back(Literal(5));
- auto* c = create<ast::CaseStatement>(lit, body);
- WrapInFunction(c);
+ auto* s =
+ Switch(1, Case(Literal(5), Block(create<ast::FallthroughStatement>())),
+ DefaultCase());
+ WrapInFunction(s);
GeneratorImpl& gen = Build();
gen.increment_indent();
- ASSERT_TRUE(gen.EmitCase(c)) << gen.error();
+ ASSERT_TRUE(gen.EmitCase(s->body()[0])) << gen.error();
EXPECT_EQ(gen.result(), R"( case 5: {
/* fallthrough */
}
@@ -76,18 +71,16 @@
}
TEST_F(HlslGeneratorImplTest_Case, Emit_Case_MultipleSelectors) {
- auto* body = Block(create<ast::BreakStatement>());
- ast::CaseSelectorList lit;
- lit.push_back(Literal(5));
- lit.push_back(Literal(6));
- auto* c = create<ast::CaseStatement>(lit, body);
- WrapInFunction(c);
+ auto* s = Switch(
+ 1, Case({Literal(5), Literal(6)}, Block(create<ast::BreakStatement>())),
+ DefaultCase());
+ WrapInFunction(s);
GeneratorImpl& gen = Build();
gen.increment_indent();
- ASSERT_TRUE(gen.EmitCase(c)) << gen.error();
+ ASSERT_TRUE(gen.EmitCase(s->body()[0])) << gen.error();
EXPECT_EQ(gen.result(), R"( case 5:
case 6: {
break;
@@ -96,15 +89,14 @@
}
TEST_F(HlslGeneratorImplTest_Case, Emit_Case_Default) {
- auto* body = Block(create<ast::BreakStatement>());
- auto* c = create<ast::CaseStatement>(ast::CaseSelectorList{}, body);
- WrapInFunction(c);
+ auto* s = Switch(1, DefaultCase(Block(create<ast::BreakStatement>())));
+ WrapInFunction(s);
GeneratorImpl& gen = Build();
gen.increment_indent();
- ASSERT_TRUE(gen.EmitCase(c)) << gen.error();
+ ASSERT_TRUE(gen.EmitCase(s->body()[0])) << gen.error();
EXPECT_EQ(gen.result(), R"( default: {
break;
}
diff --git a/src/writer/msl/generator_impl_case_test.cc b/src/writer/msl/generator_impl_case_test.cc
index 4b8cd34..42b9482 100644
--- a/src/writer/msl/generator_impl_case_test.cc
+++ b/src/writer/msl/generator_impl_case_test.cc
@@ -23,17 +23,15 @@
using MslGeneratorImplTest = TestHelper;
TEST_F(MslGeneratorImplTest, Emit_Case) {
- auto* body = Block(create<ast::BreakStatement>());
- ast::CaseSelectorList lit;
- lit.push_back(Literal(5));
- auto* c = create<ast::CaseStatement>(lit, body);
- WrapInFunction(c);
+ auto* s = Switch(1, Case(Literal(5), Block(create<ast::BreakStatement>())),
+ DefaultCase());
+ WrapInFunction(s);
GeneratorImpl& gen = Build();
gen.increment_indent();
- ASSERT_TRUE(gen.EmitCase(c)) << gen.error();
+ ASSERT_TRUE(gen.EmitCase(s->body()[0])) << gen.error();
EXPECT_EQ(gen.result(), R"( case 5: {
break;
}
@@ -41,16 +39,14 @@
}
TEST_F(MslGeneratorImplTest, Emit_Case_BreaksByDefault) {
- ast::CaseSelectorList lit;
- lit.push_back(Literal(5));
- auto* c = create<ast::CaseStatement>(lit, Block());
- WrapInFunction(c);
+ auto* s = Switch(1, Case(Literal(5), Block()), DefaultCase());
+ WrapInFunction(s);
GeneratorImpl& gen = Build();
gen.increment_indent();
- ASSERT_TRUE(gen.EmitCase(c)) << gen.error();
+ ASSERT_TRUE(gen.EmitCase(s->body()[0])) << gen.error();
EXPECT_EQ(gen.result(), R"( case 5: {
break;
}
@@ -58,17 +54,16 @@
}
TEST_F(MslGeneratorImplTest, Emit_Case_WithFallthrough) {
- auto* body = Block(create<ast::FallthroughStatement>());
- ast::CaseSelectorList lit;
- lit.push_back(Literal(5));
- auto* c = create<ast::CaseStatement>(lit, body);
- WrapInFunction(c);
+ auto* s =
+ Switch(1, Case(Literal(5), Block(create<ast::FallthroughStatement>())),
+ DefaultCase());
+ WrapInFunction(s);
GeneratorImpl& gen = Build();
gen.increment_indent();
- ASSERT_TRUE(gen.EmitCase(c)) << gen.error();
+ ASSERT_TRUE(gen.EmitCase(s->body()[0])) << gen.error();
EXPECT_EQ(gen.result(), R"( case 5: {
/* fallthrough */
}
@@ -76,18 +71,16 @@
}
TEST_F(MslGeneratorImplTest, Emit_Case_MultipleSelectors) {
- auto* body = Block(create<ast::BreakStatement>());
- ast::CaseSelectorList lit;
- lit.push_back(Literal(5));
- lit.push_back(Literal(6));
- auto* c = create<ast::CaseStatement>(lit, body);
- WrapInFunction(c);
+ auto* s = Switch(
+ 1, Case({Literal(5), Literal(6)}, Block(create<ast::BreakStatement>())),
+ DefaultCase());
+ WrapInFunction(s);
GeneratorImpl& gen = Build();
gen.increment_indent();
- ASSERT_TRUE(gen.EmitCase(c)) << gen.error();
+ ASSERT_TRUE(gen.EmitCase(s->body()[0])) << gen.error();
EXPECT_EQ(gen.result(), R"( case 5:
case 6: {
break;
@@ -96,15 +89,14 @@
}
TEST_F(MslGeneratorImplTest, Emit_Case_Default) {
- auto* body = Block(create<ast::BreakStatement>());
- auto* c = create<ast::CaseStatement>(ast::CaseSelectorList{}, body);
- WrapInFunction(c);
+ auto* s = Switch(1, DefaultCase(Block(create<ast::BreakStatement>())));
+ WrapInFunction(s);
GeneratorImpl& gen = Build();
gen.increment_indent();
- ASSERT_TRUE(gen.EmitCase(c)) << gen.error();
+ ASSERT_TRUE(gen.EmitCase(s->body()[0])) << gen.error();
EXPECT_EQ(gen.result(), R"( default: {
break;
}
diff --git a/src/writer/wgsl/generator_impl_case_test.cc b/src/writer/wgsl/generator_impl_case_test.cc
index 04538cc..e03ee56 100644
--- a/src/writer/wgsl/generator_impl_case_test.cc
+++ b/src/writer/wgsl/generator_impl_case_test.cc
@@ -22,17 +22,15 @@
using WgslGeneratorImplTest = TestHelper;
TEST_F(WgslGeneratorImplTest, Emit_Case) {
- auto* body = Block(create<ast::BreakStatement>());
- ast::CaseSelectorList lit;
- lit.push_back(Literal(5));
- auto* c = create<ast::CaseStatement>(lit, body);
- WrapInFunction(c);
+ auto* s = Switch(1, Case(Literal(5), Block(create<ast::BreakStatement>())),
+ DefaultCase());
+ WrapInFunction(s);
GeneratorImpl& gen = Build();
gen.increment_indent();
- ASSERT_TRUE(gen.EmitCase(c)) << gen.error();
+ ASSERT_TRUE(gen.EmitCase(s->body()[0])) << gen.error();
EXPECT_EQ(gen.result(), R"( case 5: {
break;
}
@@ -40,18 +38,16 @@
}
TEST_F(WgslGeneratorImplTest, Emit_Case_MultipleSelectors) {
- auto* body = Block(create<ast::BreakStatement>());
- ast::CaseSelectorList lit;
- lit.push_back(Literal(5));
- lit.push_back(Literal(6));
- auto* c = create<ast::CaseStatement>(lit, body);
- WrapInFunction(c);
+ auto* s = Switch(
+ 1, Case({Literal(5), Literal(6)}, Block(create<ast::BreakStatement>())),
+ DefaultCase());
+ WrapInFunction(s);
GeneratorImpl& gen = Build();
gen.increment_indent();
- ASSERT_TRUE(gen.EmitCase(c)) << gen.error();
+ ASSERT_TRUE(gen.EmitCase(s->body()[0])) << gen.error();
EXPECT_EQ(gen.result(), R"( case 5, 6: {
break;
}
@@ -59,15 +55,14 @@
}
TEST_F(WgslGeneratorImplTest, Emit_Case_Default) {
- auto* body = Block(create<ast::BreakStatement>());
- auto* c = create<ast::CaseStatement>(ast::CaseSelectorList{}, body);
- WrapInFunction(c);
+ auto* s = Switch(1, DefaultCase(Block(create<ast::BreakStatement>())));
+ WrapInFunction(s);
GeneratorImpl& gen = Build();
gen.increment_indent();
- ASSERT_TRUE(gen.EmitCase(c)) << gen.error();
+ ASSERT_TRUE(gen.EmitCase(s->body()[0])) << gen.error();
EXPECT_EQ(gen.result(), R"( default: {
break;
}