// Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef FLUTTER_TESTING_AUTORELEASEPOOL_TEST_H_ #define FLUTTER_TESTING_AUTORELEASEPOOL_TEST_H_ #include "flutter/fml/platform/darwin/scoped_nsautorelease_pool.h" #include "gtest/gtest.h" namespace flutter::testing { // GoogleTest mixin that runs the test within the scope of an NSAutoReleasePool. // // This can be mixed into test fixture classes that also inherit from gtest's // ::testing::Test base class. class AutoreleasePoolTestMixin { public: AutoreleasePoolTestMixin() = default; ~AutoreleasePoolTestMixin() = default; private: fml::ScopedNSAutoreleasePool autorelease_pool_; FML_DISALLOW_COPY_AND_ASSIGN(AutoreleasePoolTestMixin); }; // GoogleTest fixture that runs the test within the scope of an // NSAutoReleasePool. class AutoreleasePoolTest : public ::testing::Test, public AutoreleasePoolTestMixin { public: AutoreleasePoolTest() = default; ~AutoreleasePoolTest() = default; private: fml::ScopedNSAutoreleasePool autorelease_pool_; FML_DISALLOW_COPY_AND_ASSIGN(AutoreleasePoolTest); }; } // namespace flutter::testing #endif // FLUTTER_TESTING_AUTORELEASEPOOL_TEST_H_