mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
[macOS] Wrap external texture tests in autorelease pool (flutter/engine#47492)
Wraps all FlutterExternalTexture tests in an autorelease pool to ensure resources are cleaned up between tests.
Prior to this change, running these tests via:
../out/host_debug_unopt_arm64/flutter_desktop_darwin_unittests \
--gtest_filter='FlutterEmbedderExternalTextureUnittests.*'
Resuling in a segfault:
[ERROR:flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.mm(35)]
Could not create Metal command queue.
zsh: segmentation fault
../out/host_debug_unopt_arm64/flutter_desktop_darwin_unittests
Issue: https://github.com/flutter/flutter/issues/104789
Issue: https://github.com/flutter/flutter/issues/127441
Issue: https://github.com/flutter/flutter/issues/124840
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
This commit is contained in:
parent
1210f88ff3
commit
6fbf2e7123
@ -14,7 +14,8 @@
|
||||
#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterExternalTexture.h"
|
||||
#include "flutter/shell/platform/embedder/embedder.h"
|
||||
#include "flutter/shell/platform/embedder/embedder_external_texture_metal.h"
|
||||
#import "flutter/testing/testing.h"
|
||||
#include "flutter/testing/autoreleasepool_test.h"
|
||||
#include "flutter/testing/testing.h"
|
||||
#include "third_party/googletest/googletest/include/gtest/gtest.h"
|
||||
#include "third_party/skia/include/core/SkImage.h"
|
||||
#include "third_party/skia/include/core/SkSamplingOptions.h"
|
||||
@ -66,7 +67,17 @@
|
||||
|
||||
namespace flutter::testing {
|
||||
|
||||
TEST(FlutterEmbedderExternalTextureUnittests, TestTextureResolution) {
|
||||
// AutoreleasePoolTest subclass that exists simply to provide more specific naming.
|
||||
class FlutterEmbedderExternalTextureTest : public AutoreleasePoolTest {
|
||||
public:
|
||||
FlutterEmbedderExternalTextureTest() = default;
|
||||
~FlutterEmbedderExternalTextureTest() = default;
|
||||
|
||||
private:
|
||||
FML_DISALLOW_COPY_AND_ASSIGN(FlutterEmbedderExternalTextureTest);
|
||||
};
|
||||
|
||||
TEST_F(FlutterEmbedderExternalTextureTest, TestTextureResolution) {
|
||||
// Constants.
|
||||
const size_t width = 100;
|
||||
const size_t height = 100;
|
||||
@ -125,7 +136,7 @@ TEST(FlutterEmbedderExternalTextureUnittests, TestTextureResolution) {
|
||||
gpuSurface->makeImageSnapshot();
|
||||
}
|
||||
|
||||
TEST(FlutterEmbedderExternalTextureUnittests, TestPopulateExternalTexture) {
|
||||
TEST_F(FlutterEmbedderExternalTextureTest, TestPopulateExternalTexture) {
|
||||
// Constants.
|
||||
const size_t width = 100;
|
||||
const size_t height = 100;
|
||||
@ -178,7 +189,7 @@ TEST(FlutterEmbedderExternalTextureUnittests, TestPopulateExternalTexture) {
|
||||
gpuSurface->makeImageSnapshot();
|
||||
}
|
||||
|
||||
TEST(FlutterEmbedderExternalTextureUnittests, TestPopulateExternalTextureYUVA) {
|
||||
TEST_F(FlutterEmbedderExternalTextureTest, TestPopulateExternalTextureYUVA) {
|
||||
// Constants.
|
||||
const size_t width = 100;
|
||||
const size_t height = 100;
|
||||
@ -233,7 +244,7 @@ TEST(FlutterEmbedderExternalTextureUnittests, TestPopulateExternalTextureYUVA) {
|
||||
gpuSurface->makeImageSnapshot();
|
||||
}
|
||||
|
||||
TEST(FlutterEmbedderExternalTextureUnittests, TestPopulateExternalTextureYUVA2) {
|
||||
TEST_F(FlutterEmbedderExternalTextureTest, TestPopulateExternalTextureYUVA2) {
|
||||
// Constants.
|
||||
const size_t width = 100;
|
||||
const size_t height = 100;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user