OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "testing/gmock/include/gmock/gmock.h" | 5 #include "testing/gmock/include/gmock/gmock.h" |
6 #include "testing/gtest/include/gtest/gtest.h" | 6 #include "testing/gtest/include/gtest/gtest.h" |
7 | 7 |
8 #include <EGL/egl.h> | 8 #include <EGL/egl.h> |
9 #include <GLES2/gl2.h> | 9 #include <GLES2/gl2.h> |
10 | 10 |
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
504 }; | 504 }; |
505 | 505 |
506 EGLThreadTest::EGLThreadTest() | 506 EGLThreadTest::EGLThreadTest() |
507 : EGLSurfaceTest(), other_thread_("EGLThreadTest thread") {} | 507 : EGLSurfaceTest(), other_thread_("EGLThreadTest thread") {} |
508 void EGLThreadTest::SetUp() { | 508 void EGLThreadTest::SetUp() { |
509 EGLSurfaceTest::SetUp(); | 509 EGLSurfaceTest::SetUp(); |
510 other_thread_.Start(); | 510 other_thread_.Start(); |
511 } | 511 } |
512 | 512 |
513 void EGLThreadTest::TearDown() { | 513 void EGLThreadTest::TearDown() { |
514 base::WaitableEvent completion(true, false); | 514 base::WaitableEvent completion( |
| 515 base::WaitableEvent::ResetPolicy::MANUAL, |
| 516 base::WaitableEvent::InitialState::NOT_SIGNALED); |
515 other_thread_.task_runner()->PostTask( | 517 other_thread_.task_runner()->PostTask( |
516 FROM_HERE, base::Bind(&EGLThreadTest::OtherThreadTearDown, | 518 FROM_HERE, base::Bind(&EGLThreadTest::OtherThreadTearDown, |
517 base::Unretained(this), &completion)); | 519 base::Unretained(this), &completion)); |
518 completion.Wait(); | 520 completion.Wait(); |
519 other_thread_.Stop(); | 521 other_thread_.Stop(); |
520 EGLSurfaceTest::TearDown(); | 522 EGLSurfaceTest::TearDown(); |
521 } | 523 } |
522 | 524 |
523 void EGLThreadTest::OtherThreadTearDown(base::WaitableEvent* completion) { | 525 void EGLThreadTest::OtherThreadTearDown(base::WaitableEvent* completion) { |
524 EXPECT_TRUE(eglReleaseThread()); | 526 EXPECT_TRUE(eglReleaseThread()); |
(...skipping 18 matching lines...) Expand all Loading... |
543 | 545 |
544 TEST_F(EGLThreadTest, Basic) { | 546 TEST_F(EGLThreadTest, Basic) { |
545 EGLSurface surface; | 547 EGLSurface surface; |
546 EGLContext context; | 548 EGLContext context; |
547 CreateSurfaceAndContext(&surface, &context); | 549 CreateSurfaceAndContext(&surface, &context); |
548 EXPECT_NE(EGL_NO_SURFACE, surface); | 550 EXPECT_NE(EGL_NO_SURFACE, surface); |
549 EXPECT_NE(EGL_NO_CONTEXT, context); | 551 EXPECT_NE(EGL_NO_CONTEXT, context); |
550 | 552 |
551 EXPECT_TRUE(eglMakeCurrent(display_, surface, surface, context)); | 553 EXPECT_TRUE(eglMakeCurrent(display_, surface, surface, context)); |
552 | 554 |
553 base::WaitableEvent completion(false, false); | 555 base::WaitableEvent completion( |
| 556 base::WaitableEvent::ResetPolicy::AUTOMATIC, |
| 557 base::WaitableEvent::InitialState::NOT_SIGNALED); |
554 | 558 |
555 EGLBoolean result = EGL_FALSE; | 559 EGLBoolean result = EGL_FALSE; |
556 other_thread_.task_runner()->PostTask( | 560 other_thread_.task_runner()->PostTask( |
557 FROM_HERE, | 561 FROM_HERE, |
558 base::Bind(&EGLThreadTest::OtherThreadMakeCurrent, base::Unretained(this), | 562 base::Bind(&EGLThreadTest::OtherThreadMakeCurrent, base::Unretained(this), |
559 surface, context, &result, &completion)); | 563 surface, context, &result, &completion)); |
560 completion.Wait(); | 564 completion.Wait(); |
561 EXPECT_FALSE(result); | 565 EXPECT_FALSE(result); |
562 EXPECT_EQ(EGL_SUCCESS, eglGetError()); | 566 EXPECT_EQ(EGL_SUCCESS, eglGetError()); |
563 | 567 |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
617 EGLContext context = | 621 EGLContext context = |
618 eglCreateContext(display, config, nullptr, context_attribs); | 622 eglCreateContext(display, config, nullptr, context_attribs); |
619 EXPECT_TRUE(eglMakeCurrent(display, surface, surface, context)); | 623 EXPECT_TRUE(eglMakeCurrent(display, surface, surface, context)); |
620 EXPECT_TRUE(eglSwapBuffers(display, surface)); | 624 EXPECT_TRUE(eglSwapBuffers(display, surface)); |
621 | 625 |
622 EXPECT_TRUE(eglDestroySurface(display, surface)); | 626 EXPECT_TRUE(eglDestroySurface(display, surface)); |
623 EXPECT_TRUE(eglDestroyContext(display, context)); | 627 EXPECT_TRUE(eglDestroyContext(display, context)); |
624 } | 628 } |
625 | 629 |
626 } // namespace gpu | 630 } // namespace gpu |
OLD | NEW |