diff --git a/shell/common/shell_unittests.cc b/shell/common/shell_unittests.cc index 1d6ffb9a88c20..812abd7504941 100644 --- a/shell/common/shell_unittests.cc +++ b/shell/common/shell_unittests.cc @@ -15,6 +15,7 @@ #include "flutter/fml/message_loop.h" #include "flutter/fml/synchronization/count_down_latch.h" #include "flutter/fml/synchronization/waitable_event.h" +#include "flutter/runtime/dart_vm.h" #include "flutter/shell/common/platform_view.h" #include "flutter/shell/common/rasterizer.h" #include "flutter/shell/common/shell_test.h" @@ -198,6 +199,21 @@ TEST_F(ShellTest, SecondaryIsolateBindingsAreSetupViaShellSettings) { ASSERT_FALSE(DartVMRef::IsInstanceRunning()); } +TEST(ShellTestNoFixture, EnableMirrorsIsWhitelisted) { + if (DartVM::IsRunningPrecompiledCode()) { + // This covers profile and release modes which use AOT (where this flag does + // not make sense anyway). + GTEST_SKIP(); + return; + } + + const std::vector options = { + fml::CommandLine::Option("dart-flags", "--enable_mirrors")}; + fml::CommandLine command_line("", options, std::vector()); + flutter::Settings settings = flutter::SettingsFromCommandLine(command_line); + EXPECT_EQ(settings.dart_flags.size(), 1u); +} + TEST_F(ShellTest, BlacklistedDartVMFlag) { // Run this test in a thread-safe manner, otherwise gtest will complain. ::testing::FLAGS_gtest_death_test_style = "threadsafe"; diff --git a/shell/common/switches.cc b/shell/common/switches.cc index 83a0c19d1a31d..a048b62bc4d28 100644 --- a/shell/common/switches.cc +++ b/shell/common/switches.cc @@ -46,6 +46,7 @@ static const std::string gDartFlagsWhitelist[] = { "--max_profile_depth", "--profile_period", "--random_seed", + "--enable_mirrors", }; // clang-format on