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 Workerint 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