| // 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_DART_FIXTURE_H_ | |
| #define FLUTTER_TESTING_DART_FIXTURE_H_ | |
| #include <memory> | |
| #include "flutter/common/settings.h" | |
| #include "flutter/runtime/dart_vm.h" | |
| #include "flutter/testing/elf_loader.h" | |
| #include "flutter/testing/test_dart_native_resolver.h" | |
| #include "flutter/testing/testing.h" | |
| #include "flutter/testing/thread_test.h" | |
| namespace flutter::testing { | |
| class DartFixture { | |
| public: | |
| // Uses the default filenames from the fixtures generator. | |
| DartFixture(); | |
| // Allows to customize the kernel, ELF and split ELF filenames. | |
| DartFixture(std::string kernel_filename, | |
| std::string elf_filename, | |
| std::string elf_split_filename); | |
| virtual Settings CreateSettingsForFixture(); | |
| void AddNativeCallback(const std::string& name, Dart_NativeFunction callback); | |
| void AddFfiNativeCallback(const std::string& name, void* callback_ptr); | |
| protected: | |
| void SetSnapshotsAndAssets(Settings& settings); | |
| std::shared_ptr<TestDartNativeResolver> native_resolver_; | |
| ELFAOTSymbols split_aot_symbols_; | |
| std::string kernel_filename_; | |
| std::string elf_filename_; | |
| fml::UniqueFD assets_dir_; | |
| ELFAOTSymbols aot_symbols_; | |
| private: | |
| FML_DISALLOW_COPY_AND_ASSIGN(DartFixture); | |
| }; | |
| } // namespace flutter::testing | |
| #endif // FLUTTER_TESTING_DART_FIXTURE_H_ |