mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Add warning when passing a value to the RCT_NEW_ARCH_ENABLED (#39782)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39782 ## Changelog [Internal] - Add warning when passing a value to the RCT_NEW_ARCH_ENABLED Reviewed By: dmytrorykun Differential Revision: D49830121 fbshipit-source-id: 02bfd52ecf832d25f539f7178326472b2620acf6
This commit is contained in:
committed by
Facebook GitHub Bot
parent
46d541f7b3
commit
983bd14d99
@@ -10,11 +10,19 @@ require_relative "./test_utils/PodMock.rb"
|
||||
require_relative "./test_utils/SpecMock.rb"
|
||||
require_relative "./test_utils/FileMock.rb"
|
||||
|
||||
## Monkey patching to reset properly static props of the Helper.
|
||||
class NewArchitectureHelper
|
||||
def self.reset
|
||||
@@NewArchWarningEmitted = false
|
||||
end
|
||||
end
|
||||
|
||||
class NewArchitectureTests < Test::Unit::TestCase
|
||||
def teardown
|
||||
Pod::UI.reset()
|
||||
FileMock.reset()
|
||||
ENV["RCT_NEW_ARCH_ENABLED"] = nil
|
||||
NewArchitectureHelper.reset()
|
||||
end
|
||||
|
||||
# ============================= #
|
||||
@@ -189,58 +197,126 @@ class NewArchitectureTests < Test::Unit::TestCase
|
||||
# Test - Compute New Arch Enabled #
|
||||
# =============================== #
|
||||
|
||||
def test_computeNewArchEnabled_whenOnMainAndFlagTrue_returnTrue
|
||||
def test_computeNewArchEnabled_whenOnMainAndFlagTrueAndEnvVarNil_returnTrueWithNoWarning
|
||||
version = '1000.0.0'
|
||||
new_arch_enabled = true
|
||||
|
||||
ENV['RCT_NEW_ARCH_ENABLED'] = nil
|
||||
isEnabled = NewArchitectureHelper.compute_new_arch_enabled(new_arch_enabled, version)
|
||||
|
||||
assert_equal("1", isEnabled)
|
||||
assert_equal([], Pod::UI.collected_warns)
|
||||
end
|
||||
|
||||
def test_computeNewArchEnabled_whenOnMainAndFlagFalse_returnFalse
|
||||
def test_computeNewArchEnabled_whenOnMainAndFlagTrueAndEnvVar1_returnTrueWithNoWarning
|
||||
version = '1000.0.0'
|
||||
new_arch_enabled = true
|
||||
ENV['RCT_NEW_ARCH_ENABLED'] = "1"
|
||||
isEnabled = NewArchitectureHelper.compute_new_arch_enabled(new_arch_enabled, version)
|
||||
|
||||
assert_equal("1", isEnabled)
|
||||
assert_equal([], Pod::UI.collected_warns)
|
||||
end
|
||||
|
||||
def test_computeNewArchEnabled_whenOnMainAndFlagFalseAndEnvVarNil_returnFalseWithNoWarning
|
||||
version = '1000.0.0'
|
||||
new_arch_enabled = false
|
||||
ENV['RCT_NEW_ARCH_ENABLED'] = nil
|
||||
|
||||
isEnabled = NewArchitectureHelper.compute_new_arch_enabled(new_arch_enabled, version)
|
||||
|
||||
assert_equal("0", isEnabled)
|
||||
assert_equal([], Pod::UI.collected_warns)
|
||||
end
|
||||
|
||||
def test_computeNewArchEnabled_whenOnStableAndFlagTrue_returnTrue
|
||||
version = '0.73.0'
|
||||
new_arch_enabled = true
|
||||
|
||||
isEnabled = NewArchitectureHelper.compute_new_arch_enabled(new_arch_enabled, version)
|
||||
|
||||
assert_equal("1", isEnabled)
|
||||
end
|
||||
|
||||
def test_computeNewArchEnabled_whenOnStableAndFlagFalse_returnFalse
|
||||
version = '0.73.0'
|
||||
def test_computeNewArchEnabled_whenOnMainAndFlagFalseAndEnvVar0_returnFalseWithNoWarning
|
||||
version = '1000.0.0'
|
||||
new_arch_enabled = false
|
||||
ENV['RCT_NEW_ARCH_ENABLED'] = "0"
|
||||
|
||||
isEnabled = NewArchitectureHelper.compute_new_arch_enabled(new_arch_enabled, version)
|
||||
|
||||
assert_equal("0", isEnabled)
|
||||
assert_equal([], Pod::UI.collected_warns)
|
||||
end
|
||||
|
||||
def test_computeNewArchEnabled_whenOn100AndFlagTrue_returnTrue
|
||||
def test_computeNewArchEnabled_whenOnStableAndFlagTrueAndEnvNil_returnTrueWithNoWarning
|
||||
version = '0.73.0'
|
||||
new_arch_enabled = true
|
||||
ENV['RCT_NEW_ARCH_ENABLED'] = nil
|
||||
|
||||
isEnabled = NewArchitectureHelper.compute_new_arch_enabled(new_arch_enabled, version)
|
||||
|
||||
assert_equal("1", isEnabled)
|
||||
assert_equal([], Pod::UI.collected_warns)
|
||||
end
|
||||
|
||||
def test_computeNewArchEnabled_whenOnStableAndFlagTrueAndEnv1_returnTrueWithNoWarning
|
||||
version = '0.73.0'
|
||||
new_arch_enabled = true
|
||||
ENV['RCT_NEW_ARCH_ENABLED'] = "1"
|
||||
|
||||
isEnabled = NewArchitectureHelper.compute_new_arch_enabled(new_arch_enabled, version)
|
||||
|
||||
assert_equal("1", isEnabled)
|
||||
assert_equal([], Pod::UI.collected_warns)
|
||||
end
|
||||
|
||||
def test_computeNewArchEnabled_whenOnStableAndFlagFalseAndEnvNil_returnFalseWithNoWarning
|
||||
version = '0.73.0'
|
||||
new_arch_enabled = false
|
||||
ENV['RCT_NEW_ARCH_ENABLED'] = nil
|
||||
|
||||
isEnabled = NewArchitectureHelper.compute_new_arch_enabled(new_arch_enabled, version)
|
||||
|
||||
assert_equal("0", isEnabled)
|
||||
assert_equal([], Pod::UI.collected_warns)
|
||||
end
|
||||
|
||||
def test_computeNewArchEnabled_whenOnStableAndFlagFalseAndEnv0_returnFalseWithNoWarning
|
||||
version = '0.73.0'
|
||||
new_arch_enabled = false
|
||||
ENV['RCT_NEW_ARCH_ENABLED'] = "0"
|
||||
|
||||
isEnabled = NewArchitectureHelper.compute_new_arch_enabled(new_arch_enabled, version)
|
||||
|
||||
assert_equal("0", isEnabled)
|
||||
assert_equal([], Pod::UI.collected_warns)
|
||||
end
|
||||
|
||||
def test_computeNewArchEnabled_whenOn100AndFlagTrueAndEnvNil_returnTrueWithNoWarning
|
||||
version = '1.0.0-prealpha.0'
|
||||
new_arch_enabled = true
|
||||
ENV['RCT_NEW_ARCH_ENABLED'] = nil
|
||||
|
||||
isEnabled = NewArchitectureHelper.compute_new_arch_enabled(new_arch_enabled, version)
|
||||
|
||||
assert_equal("1", isEnabled)
|
||||
assert_equal([], Pod::UI.collected_warns)
|
||||
end
|
||||
|
||||
def test_computeNewArchEnabled_whenOn100PrealphaWithDotsAndFlagFalse_returnTrue
|
||||
def test_computeNewArchEnabled_whenOn100AndFlagTrueAndEnv1_returnTrueWithWarning
|
||||
version = '1.0.0-prealpha.0'
|
||||
new_arch_enabled = false
|
||||
new_arch_enabled = true
|
||||
ENV['RCT_NEW_ARCH_ENABLED'] = "1"
|
||||
|
||||
isEnabled = NewArchitectureHelper.compute_new_arch_enabled(new_arch_enabled, version)
|
||||
|
||||
assert_equal("1", isEnabled)
|
||||
assert_equal(["[New Architecture] Starting from version 1.0.0-prealpha the value of the " \
|
||||
"RCT_NEW_ARCH_ENABLED flag is ignored and the New Architecture is enabled by default."], Pod::UI.collected_warns)
|
||||
end
|
||||
|
||||
|
||||
def test_computeNewArchEnabled_whenOn100PrealphaWithDotsAndFlagFalseAndEnv0_returnTrueWithWarning
|
||||
version = '1.0.0-prealpha.0'
|
||||
new_arch_enabled = false
|
||||
ENV['RCT_NEW_ARCH_ENABLED'] = "0"
|
||||
|
||||
isEnabled = NewArchitectureHelper.compute_new_arch_enabled(new_arch_enabled, version)
|
||||
|
||||
assert_equal("1", isEnabled)
|
||||
assert_equal(["[New Architecture] Starting from version 1.0.0-prealpha the value of the " \
|
||||
"RCT_NEW_ARCH_ENABLED flag is ignored and the New Architecture is enabled by default."], Pod::UI.collected_warns)
|
||||
end
|
||||
|
||||
def test_computeNewArchEnabled_whenOn100PrealphaWithDashAndFlagFalse_returnTrue
|
||||
|
||||
@@ -14,6 +14,8 @@ class NewArchitectureHelper
|
||||
|
||||
@@cplusplus_version = "c++20"
|
||||
|
||||
@@NewArchWarningEmitted = false # Used not to spam warnings to the user.
|
||||
|
||||
def self.set_clang_cxx_language_standard_if_needed(installer)
|
||||
language_standard = nil
|
||||
|
||||
@@ -189,6 +191,13 @@ class NewArchitectureHelper
|
||||
# We want to enforce the new architecture for 1.0.0 and greater,
|
||||
# but not for 1000 as version 1000 is currently main.
|
||||
if major > 0 && major < 1000
|
||||
if ENV['RCT_NEW_ARCH_ENABLED'] != nil && !@@NewArchWarningEmitted
|
||||
warning_message = "[New Architecture] Starting from version 1.0.0-prealpha the value of the " \
|
||||
"RCT_NEW_ARCH_ENABLED flag is ignored and the New Architecture is enabled by default."
|
||||
Pod::UI.warn warning_message
|
||||
@@NewArchWarningEmitted = true
|
||||
end
|
||||
|
||||
return "1"
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user