Gracefully fail end2end tests if no window support

EGL_WINDOW_BIT is now specifically requested for tests that open a
window (those that aren't WithNoFixture).  This makes sure pbuffer-only
configs are not selected for the window.

Additionally, a few WithNoFixture tests are made more robust in the
presence of no-window configs.

In the context of crbug.com/1034840, this means that a subset of end2end
tests would be able to run in a remote desktop environment.  Tested on
Linux/X11 by turning a subset of configs PBUFFER-only.

Bug: chromium:1034840
Change-Id: I09fd149d43d3b865856fe6b9491c5f333f4a2efc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2378922
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
This commit is contained in:
Shahbaz Youssefi
2020-08-26 22:04:19 -04:00
committed by Commit Bot
parent e3db3d20d4
commit fdb7874db4
19 changed files with 201 additions and 63 deletions

View File

@@ -60,7 +60,7 @@ AndroidWindow::AndroidWindow() {}
AndroidWindow::~AndroidWindow() {}
bool AndroidWindow::initialize(const std::string &name, int width, int height)
bool AndroidWindow::initializeImpl(const std::string &name, int width, int height)
{
return resize(width, height);
}
@@ -73,7 +73,7 @@ void AndroidWindow::resetNativeWindow() {}
EGLNativeWindowType AndroidWindow::getNativeWindow() const
{
// Return the entire Activity Surface for now
// sApp->window is valid only after sInitWindowDone, which is true after initialize()
// sApp->window is valid only after sInitWindowDone, which is true after initializeImpl()
return sApp->window;
}
@@ -180,7 +180,7 @@ void android_main(struct android_app *app)
// Message loop, polling for events indefinitely (due to -1 timeout)
// Must be here in order to handle APP_CMD_INIT_WINDOW event,
// which occurs after AndroidWindow::initialize(), but before AndroidWindow::messageLoop
// which occurs after AndroidWindow::initializeImpl(), but before AndroidWindow::messageLoop
while (ALooper_pollAll(-1, nullptr, &events, reinterpret_cast<void **>(&source)) >= 0)
{
if (source != nullptr)