Index: tools/gn/scope_unittest.cc |
diff --git a/tools/gn/scope_unittest.cc b/tools/gn/scope_unittest.cc |
index 5585e50bd018226369d7d46ae6183965ca1197fa..da6813464cc5447ac7c8dce9bef9edadbb1ede29 100644 |
--- a/tools/gn/scope_unittest.cc |
+++ b/tools/gn/scope_unittest.cc |
@@ -36,6 +36,8 @@ TEST(Scope, NonRecursiveMergeTo) { |
Value old_value(&assignment, "hello"); |
setup.scope()->SetValue("v", old_value, &assignment); |
+ base::StringPiece private_var_name("_private"); |
+ setup.scope()->SetValue(private_var_name, old_value, &assignment); |
// Detect collisions of values' values. |
{ |
@@ -45,7 +47,8 @@ TEST(Scope, NonRecursiveMergeTo) { |
Err err; |
EXPECT_FALSE(setup.scope()->NonRecursiveMergeTo( |
- &new_scope, false, &assignment, "error", &err)); |
+ &new_scope, Scope::MergeOptions(), |
+ &assignment, "error", &err)); |
EXPECT_TRUE(err.has_error()); |
} |
@@ -56,8 +59,10 @@ TEST(Scope, NonRecursiveMergeTo) { |
new_scope.SetValue("v", new_value, &assignment); |
Err err; |
+ Scope::MergeOptions options; |
+ options.clobber_existing = true; |
EXPECT_TRUE(setup.scope()->NonRecursiveMergeTo( |
- &new_scope, true, &assignment, "error", &err)); |
+ &new_scope, options, &assignment, "error", &err)); |
EXPECT_FALSE(err.has_error()); |
const Value* found_value = new_scope.GetValue("v"); |
@@ -72,10 +77,36 @@ TEST(Scope, NonRecursiveMergeTo) { |
new_scope.SetValue("v", new_value, &assignment); |
Err err; |
+ Scope::MergeOptions options; |
+ options.clobber_existing = true; |
EXPECT_TRUE(setup.scope()->NonRecursiveMergeTo( |
- &new_scope, false, &assignment, "error", &err)); |
+ &new_scope, options, &assignment, "error", &err)); |
EXPECT_FALSE(err.has_error()); |
} |
+ |
+ // Copy private values. |
+ { |
+ Scope new_scope(setup.settings()); |
+ |
+ Err err; |
+ EXPECT_TRUE(setup.scope()->NonRecursiveMergeTo( |
+ &new_scope, Scope::MergeOptions(), &assignment, "error", &err)); |
+ EXPECT_FALSE(err.has_error()); |
+ EXPECT_TRUE(new_scope.GetValue(private_var_name)); |
+ } |
+ |
+ // Skip private values. |
+ { |
+ Scope new_scope(setup.settings()); |
+ |
+ Err err; |
+ Scope::MergeOptions options; |
+ options.copy_private_vars = false; |
+ EXPECT_TRUE(setup.scope()->NonRecursiveMergeTo( |
+ &new_scope, options, &assignment, "error", &err)); |
+ EXPECT_FALSE(err.has_error()); |
+ EXPECT_FALSE(new_scope.GetValue(private_var_name)); |
+ } |
} |
TEST(Scope, MakeClosure) { |