18622e55452e0b9039c051700148a18efb60efe3eGeoff Lang//
28622e55452e0b9039c051700148a18efb60efe3eGeoff Lang// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
38622e55452e0b9039c051700148a18efb60efe3eGeoff Lang// Use of this source code is governed by a BSD-style license that can be
48622e55452e0b9039c051700148a18efb60efe3eGeoff Lang// found in the LICENSE file.
58622e55452e0b9039c051700148a18efb60efe3eGeoff Lang//
68622e55452e0b9039c051700148a18efb60efe3eGeoff Lang
78622e55452e0b9039c051700148a18efb60efe3eGeoff Lang#include "gtest/gtest.h"
88622e55452e0b9039c051700148a18efb60efe3eGeoff Lang#include "GLSLANG/ShaderLang.h"
98622e55452e0b9039c051700148a18efb60efe3eGeoff Lang
10b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Langclass CompilerTestEnvironment : public testing::Environment
11b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang{
12b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang  public:
13b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang    virtual void SetUp()
14b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang    {
15b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang        if (!ShInitialize())
16b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang        {
17b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang            FAIL() << "Failed to initialize the compiler.";
18b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang        }
19b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang    }
20b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang
21b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang    virtual void TearDown()
22b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang    {
23b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang        if (!ShFinalize())
24b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang        {
25b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang            FAIL() << "Failed to finalize the compiler.";
26b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang        }
27b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang    }
28b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang};
29b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang
308622e55452e0b9039c051700148a18efb60efe3eGeoff Langint main(int argc, char** argv)
318622e55452e0b9039c051700148a18efb60efe3eGeoff Lang{
3206bcde59e8529882732119933b0bb36dd0888889Geoff Lang    testing::InitGoogleTest(&argc, argv);
33b60465025feef2c9e3ac14886c02e4c5cd22cd97Geoff Lang    testing::AddGlobalTestEnvironment(new CompilerTestEnvironment());
348622e55452e0b9039c051700148a18efb60efe3eGeoff Lang    int rt = RUN_ALL_TESTS();
358622e55452e0b9039c051700148a18efb60efe3eGeoff Lang    return rt;
368622e55452e0b9039c051700148a18efb60efe3eGeoff Lang}
37