Hash :
e350330d
Author :
Date :
2023-05-02T09:57:42
Fix EGLContextCompatibilityTest registration Before this CL these tests are not registered at all. Avoid test name duplicates by skipping configs. Bug: angleproject:8088 Change-Id: I0d9b8260bd2ed76bda7fb46e6a131c4d2624c55f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492920 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
//
// Copyright 2013 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.
//
#include "gtest/gtest.h"
#include "test_utils/runner/TestSuite.h"
#include "util/OSWindow.h"
void ANGLEProcessTestArgs(int *argc, char *argv[]);
// Register* functions handle setting up special tests that need complex parameterization.
// GoogleTest relies heavily on static initialization to register test functions. This can
// cause all sorts of issues if the right variables aren't initialized in the right order.
// This register function needs to be called explicitly after static initialization and
// before the test launcher starts. This is a safer and generally better way to initialize
// tests. It's also more similar to how the dEQP Test harness works. In the future we should
// likely specialize more register functions more like dEQP instead of relying on static init.
void RegisterContextCompatibilityTests();
namespace
{
constexpr char kTestExpectationsPath[] = "src/tests/angle_end2end_tests_expectations.txt";
} // namespace
int main(int argc, char **argv)
{
auto registerTestsCallback = [] {
if (!IsTSan())
{
RegisterContextCompatibilityTests();
}
};
angle::TestSuite testSuite(&argc, argv, registerTestsCallback);
ANGLEProcessTestArgs(&argc, argv);
constexpr size_t kMaxPath = 512;
std::array<char, kMaxPath> foundDataPath;
if (!angle::FindTestDataPath(kTestExpectationsPath, foundDataPath.data(), foundDataPath.size()))
{
std::cerr << "Unable to find test expectations path (" << kTestExpectationsPath << ")\n";
return EXIT_FAILURE;
}
// end2end test expectations only allow SKIP at the moment.
testSuite.setTestExpectationsAllowMask(angle::GPUTestExpectationsParser::kGpuTestSkip |
angle::GPUTestExpectationsParser::kGpuTestTimeout);
if (!testSuite.loadAllTestExpectationsFromFile(std::string(foundDataPath.data())))
{
return EXIT_FAILURE;
}
return testSuite.run();
}