From e2c5a36ec78744617ba506cd1045f69cad87cf37 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Tue, 12 Mar 2024 08:19:49 -0700 Subject: [PATCH] Add enableHermesCDPAgent case to ReactInstanceIntegrationTest (#43436) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43436 ## Context We are migrating to the new Hermes `CDPAgent` and `CDPDebugAPI` APIs in the modern CDP server (previously `HermesCDPHandler`). ## This diff Expands test coverage for the Hermes `CDPAgent` implementation by enabling in `ReactInstanceIntegrationTest`. Changelog: [Internal] bypass-github-export-checks Reviewed By: motiz88 Differential Revision: D54801168 fbshipit-source-id: 9b71f8e697c7ab24c1383100938b3f648774a106 --- .../tests/ReactInstanceIntegrationTest.cpp | 21 ++++++++++++++----- .../utils/InspectorFlagOverridesGuard.cpp | 10 ++++++--- .../tests/utils/InspectorFlagOverridesGuard.h | 8 ++++--- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp b/packages/react-native/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp index a945d692b9f..2e0f5c209b1 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp @@ -17,9 +17,11 @@ #include #include +using namespace ::testing; + namespace facebook::react::jsinspector_modern { -using namespace ::testing; +#pragma region ReactInstanceIntegrationTest ReactInstanceIntegrationTest::ReactInstanceIntegrationTest() : runtime(nullptr), @@ -179,6 +181,8 @@ bool ReactInstanceIntegrationTest::verbose(bool isVerbose) { return previous; } +#pragma endregion + TEST_F(ReactInstanceIntegrationTest, RuntimeEvalTest) { auto val = run("1 + 2"); EXPECT_EQ(val.asNumber(), 3); @@ -217,14 +221,21 @@ INSTANTIATE_TEST_SUITE_P( ReactInstanceVaryingInspectorFlags, ReactInstanceIntegrationTestWithFlags, ::testing::Values( - InspectorFlagOverrides{ - .enableCxxInspectorPackagerConnection = true, - .enableModernCDPRegistry = true}, InspectorFlagOverrides{ .enableCxxInspectorPackagerConnection = false, + .enableHermesCDPAgent = false, .enableModernCDPRegistry = false}, InspectorFlagOverrides{ .enableCxxInspectorPackagerConnection = true, - .enableModernCDPRegistry = false})); + .enableHermesCDPAgent = false, + .enableModernCDPRegistry = false}, + InspectorFlagOverrides{ + .enableCxxInspectorPackagerConnection = true, + .enableHermesCDPAgent = false, + .enableModernCDPRegistry = true}, + InspectorFlagOverrides{ + .enableCxxInspectorPackagerConnection = false, + .enableHermesCDPAgent = true, + .enableModernCDPRegistry = true})); } // namespace facebook::react::jsinspector_modern diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp b/packages/react-native/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp index ea6e640a59d..816ec4a1b98 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp @@ -27,15 +27,19 @@ class ReactNativeFeatureFlagsOverrides : overrides_(overrides) {} bool inspectorEnableCxxInspectorPackagerConnection() override { - return overrides_.enableCxxInspectorPackagerConnection; + return overrides_.enableCxxInspectorPackagerConnection.value_or( + ReactNativeFeatureFlagsDefaults:: + inspectorEnableCxxInspectorPackagerConnection()); } bool inspectorEnableHermesCDPAgent() override { - return overrides_.enableHermesCDPAgent; + return overrides_.enableHermesCDPAgent.value_or( + ReactNativeFeatureFlagsDefaults::inspectorEnableHermesCDPAgent()); } bool inspectorEnableModernCDPRegistry() override { - return overrides_.enableModernCDPRegistry; + return overrides_.enableModernCDPRegistry.value_or( + ReactNativeFeatureFlagsDefaults::inspectorEnableModernCDPRegistry()); } private: diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h b/packages/react-native/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h index 5e91bb4cb8a..c998cbb2391 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h @@ -9,6 +9,8 @@ #include +#include + namespace facebook::react::jsinspector_modern { /** @@ -17,9 +19,9 @@ namespace facebook::react::jsinspector_modern { struct InspectorFlagOverrides { // NOTE: Keep these entries in sync with ReactNativeFeatureFlagsOverrides in // the implementation file. - bool enableCxxInspectorPackagerConnection = false; - bool enableHermesCDPAgent = false; - bool enableModernCDPRegistry = false; + std::optional enableCxxInspectorPackagerConnection; + std::optional enableHermesCDPAgent; + std::optional enableModernCDPRegistry; }; /**