| 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) {
|
|
|