Remove EGLThreadTest to fix angle_end2end_tests failures on Android.

EGLThreadTest doesn't clean up well and the test framework can't handle
it well. It caused test failures related to eglMakeCurrent (ELG_BAD_ACCESS)
on Android that were masked by retries.

Calling eglGetDisplay within a test can cause it to return a cached
display from the test runner.  The test is unable to know if it should
terminate this display.

bug: angleproject:3321
Change-Id: I14a539a00acaed4ee71622e7416a6c7a75596606
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1541717
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This commit is contained in:
Jonah Ryan-Davis 2019-03-27 14:26:51 -04:00 коммит произвёл Commit Bot
Родитель 208af3ebda
Коммит 198de6129a
2 изменённых файлов: 0 добавлений и 48 удалений

Просмотреть файл

@ -138,7 +138,6 @@ angle_end2end_tests_sources = [
"egl_tests/EGLSurfacelessContextTest.cpp", "egl_tests/EGLSurfacelessContextTest.cpp",
"egl_tests/EGLSurfaceTest.cpp", "egl_tests/EGLSurfaceTest.cpp",
"egl_tests/EGLSyncTest.cpp", "egl_tests/EGLSyncTest.cpp",
"egl_tests/EGLThreadTest.cpp",
"test_utils/ANGLETest.cpp", "test_utils/ANGLETest.cpp",
"test_utils/ANGLETest.h", "test_utils/ANGLETest.h",
"test_utils/MultiviewTest.cpp", "test_utils/MultiviewTest.cpp",

Просмотреть файл

@ -1,47 +0,0 @@
//
// Copyright 2018 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.
//
// EGLThreadTest.h: Tests multi-threaded uses of EGL.
#include <gtest/gtest.h>
#include "test_utils/ANGLETest.h"
#include "util/system_utils.h"
#include <thread>
class EGLThreadTest : public EGLTest
{
public:
void threadingTest();
protected:
EGLDisplay mDisplay = EGL_NO_DISPLAY;
};
void EGLThreadTest::threadingTest()
{
mDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
EXPECT_TRUE(mDisplay != EGL_NO_DISPLAY);
eglInitialize(mDisplay, nullptr, nullptr);
eglGetCurrentContext();
}
// Test a bug in our EGL TLS implementation.
TEST_F(EGLThreadTest, ThreadInitCrash)
{
std::thread runner(&EGLThreadTest::threadingTest, this);
// wait for signal from thread
runner.join();
// crash, because the TLS value is NULL on main thread
eglGetCurrentSurface(EGL_DRAW);
eglGetCurrentContext();
eglTerminate(mDisplay);
}