From 3736374dfe79202923358c7edc145ffec42b6304 Mon Sep 17 00:00:00 2001 From: Cole Faust Date: Tue, 2 May 2023 10:11:02 -0700 Subject: [PATCH] Fix whitespace in soong_config_set calls In make, soong_config_set uses an $(eval) to set it's value, expanding the value of the soong config variable _before_ evaluating the value. Because of this, make will strip trailing whitespace like it does on regular assignments. Make rbcrun match this behavior. Test: ./out/rbcrun ./build/make/tests/run.rbc Change-Id: I907e85cdf50f6fac54331c0d1044f0d53bec22ed --- core/product_config.rbc | 4 ++++ tests/product.rbc | 1 + tests/run.rbc | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/product_config.rbc b/core/product_config.rbc index 97c1d00471..a5e5721270 100644 --- a/core/product_config.rbc +++ b/core/product_config.rbc @@ -394,6 +394,10 @@ def _soong_config_namespace(g, nsname): def _soong_config_set(g, nsname, var, value): """Assigns the value to the variable in the namespace.""" _soong_config_namespace(g, nsname) + if type(value) == "string": + # Trim right spaces, because in make the variable is set in an $(eval), + # which will ignore trailing spaces. + value = value.rstrip(" ") g[_soong_config_namespaces_key][nsname][var]=value def _soong_config_append(g, nsname, var, value): diff --git a/tests/product.rbc b/tests/product.rbc index 9ae6393e8e..b4c6d45ced 100644 --- a/tests/product.rbc +++ b/tests/product.rbc @@ -54,6 +54,7 @@ def init(g, handle): rblf.soong_config_append(g, "NS1", "v2", "def") rblf.soong_config_set(g, "NS2", "v3", "abc") rblf.soong_config_set(g, "NS2", "v3", "xyz") + rblf.soong_config_set(g, "NS2", "v4", "xyz ") rblf.mkdist_for_goals(g, "goal", "dir1/file1:out1 dir1/file2:out2") rblf.mkdist_for_goals(g, "goal", "dir2/file2:") diff --git a/tests/run.rbc b/tests/run.rbc index 33583eb3cd..85d6c09bc5 100644 --- a/tests/run.rbc +++ b/tests/run.rbc @@ -144,7 +144,8 @@ assert_eq( "v2": "def" }, "NS2": { - "v3": "xyz" + "v3": "xyz", + "v4": "xyz" } }, {k:v for k, v in sorted(ns.items()) }