Fix inheritance order
The children to inherit from were not sorted. This
wasn't a problem for list variables, because all those
inheritances get merged together based on the @inherit/
values in the list variables. But for single value variables
it made a difference.
Bug: 226206409
Test: ./out/rbcrun ./build/make/tests/run.rbc
Change-Id: Ib56bbb91a79fe8c7cb780c253f5bd8d6c0e87765
diff --git a/core/product_config.rbc b/core/product_config.rbc
index 0e7dbf1..192e409 100644
--- a/core/product_config.rbc
+++ b/core/product_config.rbc
@@ -167,8 +167,8 @@
# Now we know everything about this PCM, record it in 'configs'.
children = handle.inherited_modules
if _options.trace_modules:
- print("# ", " ".join(children.keys()))
- configs[name] = (pcm, handle.cfg, children.keys(), False)
+ print("# ", " ".join(sorted(children.keys())))
+ configs[name] = (pcm, handle.cfg, sorted(children.keys()), False)
pcm_count = pcm_count + 1
if len(children) == 0:
diff --git a/tests/single_value_inheritance/product.rbc b/tests/single_value_inheritance/product.rbc
index 3327043..d090af6 100644
--- a/tests/single_value_inheritance/product.rbc
+++ b/tests/single_value_inheritance/product.rbc
@@ -18,7 +18,7 @@
def init(g, handle):
cfg = rblf.cfg(handle)
- rblf.inherit(handle, "test/inherit1", _inherit1_init)
rblf.inherit(handle, "test/inherit2", _inherit2_init)
+ rblf.inherit(handle, "test/inherit1", _inherit1_init)
cfg["PRODUCT_DEFAULT_DEV_CERTIFICATE"] = ""