chromium/third_party/dawn/src/tint/lang/wgsl/writer/writer_test.cc

// Copyright 2024 The Dawn & Tint Authors
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this
//    list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice,
//    this list of conditions and the following disclaimer in the documentation
//    and/or other materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its
//    contributors may be used to endorse or promote products derived from
//    this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#include "src/tint/lang/wgsl/writer/writer.h"

#include <ostream>
#include <string>
#include <string_view>

#include "gtest/gtest.h"
#include "src/tint/lang/core/fluent_types.h"
#include "src/tint/lang/core/ir/disassembler.h"
#include "src/tint/lang/core/ir/ir_helper_test.h"
#include "src/tint/lang/core/number.h"
#include "src/tint/lang/wgsl/writer/ir_to_program/ir_to_program.h"
#include "src/tint/lang/wgsl/writer/ir_to_program/program_options.h"
#include "src/tint/lang/wgsl/writer/raise/raise.h"
#include "src/tint/utils/result/result.h"
#include "src/tint/utils/text/string.h"

usingnamespacetint::core::fluent_types;  // NOLINT

namespace tint::wgsl::writer {
namespace {

/// Class used for IR to Program tests
class WgslIRWriterTest : public core::ir::IRTestHelper {};

std::ostream& operator<<(std::ostream& o, const WgslIRWriterTest::Result& res) {}

#define RUN_TEST(EXPECTED)

TEST_F(WgslIRWriterTest, NameConflict_NamedBeforeUnnamed_ModuleScope) {}

TEST_F(WgslIRWriterTest, NameConflict_NamedBeforeUnnamed_FunctionScope) {}

TEST_F(WgslIRWriterTest, NameConflict_UnnamedBeforeNamed_ModuleScope) {}

TEST_F(WgslIRWriterTest, NameConflict_UnnamedBeforeNamed_FunctionScope) {}

////////////////////////////////////////////////////////////////////////////////
// Short-circuiting binary ops
////////////////////////////////////////////////////////////////////////////////
TEST_F(WgslIRWriterTest, ShortCircuit_And_Param_2) {}

TEST_F(WgslIRWriterTest, ShortCircuit_And_Param_3_ab_c) {}

TEST_F(WgslIRWriterTest, ShortCircuit_And_Param_3_a_bc) {}

TEST_F(WgslIRWriterTest, ShortCircuit_And_Let_2) {}

TEST_F(WgslIRWriterTest, ShortCircuit_And_Let_3_ab_c) {}

TEST_F(WgslIRWriterTest, ShortCircuit_And_Let_3_a_bc) {}

TEST_F(WgslIRWriterTest, ShortCircuit_And_Call_2) {}

TEST_F(WgslIRWriterTest, ShortCircuit_And_Call_3_ab_c) {}

TEST_F(WgslIRWriterTest, ShortCircuit_And_Call_3_a_bc) {}

TEST_F(WgslIRWriterTest, ShortCircuit_Or_Param_2) {}

TEST_F(WgslIRWriterTest, ShortCircuit_Or_Param_3_ab_c) {}

TEST_F(WgslIRWriterTest, ShortCircuit_Or_Param_3_a_bc) {}

TEST_F(WgslIRWriterTest, ShortCircuit_Or_Let_2) {}

TEST_F(WgslIRWriterTest, ShortCircuit_Or_Let_3_ab_c) {}

TEST_F(WgslIRWriterTest, ShortCircuit_Or_Let_3_a_bc) {}

TEST_F(WgslIRWriterTest, ShortCircuit_Or_Call_2) {}

TEST_F(WgslIRWriterTest, ShortCircuit_Or_Call_3_ab_c) {}

TEST_F(WgslIRWriterTest, ShortCircuit_Or_Call_3_a_bc) {}

TEST_F(WgslIRWriterTest, ShortCircuit_Mixed) {}

TEST_F(WgslIRWriterTest, ShortCircuit_And_ParamCallParam_a_bc_EarlyEval) {}

TEST_F(WgslIRWriterTest, ShortCircuit_And_Call_3_a_bc_EarlyEval) {}

TEST_F(WgslIRWriterTest, ShortCircuit_And_Param_3_a_bc_EarlyEval) {}

TEST_F(WgslIRWriterTest, ShortCircuit_Or_ParamCallParam_a_bc_EarlyEval) {}

TEST_F(WgslIRWriterTest, ShortCircuit_Or_Call_3_a_bc_EarlyEval) {}

TEST_F(WgslIRWriterTest, ShortCircuit_Or_Param_3_a_bc_EarlyEval) {}

}  // namespace
}  // namespace tint::wgsl::writer