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
This commit is contained in:
Alex Hunt 2024-03-12 08:19:49 -07:00 коммит произвёл Facebook GitHub Bot
Родитель 7a00623947
Коммит e2c5a36ec7
3 изменённых файлов: 28 добавлений и 11 удалений

Просмотреть файл

@ -17,9 +17,11 @@
#include <react/featureflags/ReactNativeFeatureFlagsDefaults.h>
#include <react/runtime/hermes/HermesInstance.h>
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

Просмотреть файл

@ -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:

Просмотреть файл

@ -9,6 +9,8 @@
#include <react/featureflags/ReactNativeFeatureFlagsDefaults.h>
#include <optional>
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<bool> enableCxxInspectorPackagerConnection;
std::optional<bool> enableHermesCDPAgent;
std::optional<bool> enableModernCDPRegistry;
};
/**