xref: /aosp_15_r20/external/angle/src/tests/angle_unittest_main.cpp (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker //
2*8975f5c5SAndroid Build Coastguard Worker // Copyright 2013 The ANGLE Project Authors. All rights reserved.
3*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
4*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file.
5*8975f5c5SAndroid Build Coastguard Worker //
6*8975f5c5SAndroid Build Coastguard Worker 
7*8975f5c5SAndroid Build Coastguard Worker #include "GLSLANG/ShaderLang.h"
8*8975f5c5SAndroid Build Coastguard Worker #include "gtest/gtest.h"
9*8975f5c5SAndroid Build Coastguard Worker #include "test_utils/runner/TestSuite.h"
10*8975f5c5SAndroid Build Coastguard Worker 
11*8975f5c5SAndroid Build Coastguard Worker class CompilerTestEnvironment : public testing::Environment
12*8975f5c5SAndroid Build Coastguard Worker {
13*8975f5c5SAndroid Build Coastguard Worker   public:
SetUp()14*8975f5c5SAndroid Build Coastguard Worker     void SetUp() override
15*8975f5c5SAndroid Build Coastguard Worker     {
16*8975f5c5SAndroid Build Coastguard Worker         if (!sh::Initialize())
17*8975f5c5SAndroid Build Coastguard Worker         {
18*8975f5c5SAndroid Build Coastguard Worker             FAIL() << "Failed to initialize the compiler.";
19*8975f5c5SAndroid Build Coastguard Worker         }
20*8975f5c5SAndroid Build Coastguard Worker     }
21*8975f5c5SAndroid Build Coastguard Worker 
TearDown()22*8975f5c5SAndroid Build Coastguard Worker     void TearDown() override
23*8975f5c5SAndroid Build Coastguard Worker     {
24*8975f5c5SAndroid Build Coastguard Worker         if (!sh::Finalize())
25*8975f5c5SAndroid Build Coastguard Worker         {
26*8975f5c5SAndroid Build Coastguard Worker             FAIL() << "Failed to finalize the compiler.";
27*8975f5c5SAndroid Build Coastguard Worker         }
28*8975f5c5SAndroid Build Coastguard Worker     }
29*8975f5c5SAndroid Build Coastguard Worker };
30*8975f5c5SAndroid Build Coastguard Worker 
31*8975f5c5SAndroid Build Coastguard Worker // This variable is also defined in test_utils_unittest_helper.
32*8975f5c5SAndroid Build Coastguard Worker bool gVerbose = false;
33*8975f5c5SAndroid Build Coastguard Worker 
main(int argc,char ** argv)34*8975f5c5SAndroid Build Coastguard Worker int main(int argc, char **argv)
35*8975f5c5SAndroid Build Coastguard Worker {
36*8975f5c5SAndroid Build Coastguard Worker     for (int argIndex = 1; argIndex < argc; ++argIndex)
37*8975f5c5SAndroid Build Coastguard Worker     {
38*8975f5c5SAndroid Build Coastguard Worker         if (strcmp(argv[argIndex], "-v") == 0 || strcmp(argv[argIndex], "--verbose") == 0)
39*8975f5c5SAndroid Build Coastguard Worker         {
40*8975f5c5SAndroid Build Coastguard Worker             gVerbose = true;
41*8975f5c5SAndroid Build Coastguard Worker         }
42*8975f5c5SAndroid Build Coastguard Worker     }
43*8975f5c5SAndroid Build Coastguard Worker 
44*8975f5c5SAndroid Build Coastguard Worker     angle::TestSuite testSuite(&argc, argv);
45*8975f5c5SAndroid Build Coastguard Worker     testing::AddGlobalTestEnvironment(new CompilerTestEnvironment());
46*8975f5c5SAndroid Build Coastguard Worker     return testSuite.run();
47*8975f5c5SAndroid Build Coastguard Worker }
48