chromium/third_party/angle/src/tests/compiler_tests/PruneEmptyCases_test.cpp

//
// Copyright 2018 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// PruneEmptyCases_test.cpp:
//   Tests for pruning empty cases and switch statements. This ensures that the translator doesn't
//   produce switch statements where the last case statement is not followed by anything.
//

#include "GLSLANG/ShaderLang.h"
#include "angle_gl.h"
#include "gtest/gtest.h"
#include "tests/test_utils/compiler_test.h"

usingnamespacesh;

namespace
{

class PruneEmptyCasesTest : public MatchOutputCodeTest
{};

// Test that a switch statement that only contains no-ops is pruned entirely.
TEST_F(PruneEmptyCasesTest, SwitchStatementWithOnlyNoOps)
{}

// Test that a init statement that has a side effect is preserved even if the switch is pruned.
TEST_F(PruneEmptyCasesTest, SwitchStatementWithOnlyNoOpsAndInitWithSideEffect)
{}

// Test a switch statement where the last case only contains no-ops.
TEST_F(PruneEmptyCasesTest, SwitchStatementLastCaseOnlyNoOps)
{}

}  // namespace