1c08360ca8
When an intermediate product is evaluated, it needs to act as if it's the only product being evaulated. However, currently, if it inherited a makefile that was also being inherited by the overall top level product via a different path, it would not get the values from that makefile. Copy the configs dictionary before evaluating each product that needs artifact path requirements, and create seperate postfix orders for all of them that don't contain any products that they don't inherit from. Bug: 221312707 Test: ./out/rbcrun ./build/make/tests/run.rbc Change-Id: I235ad78d587a2e315ba446b5e126d8f6d0fbbea7
28 lines
1.2 KiB
Text
28 lines
1.2 KiB
Text
# Copyright 2022 Google LLC
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# https://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
load("//build/make/core:product_config.rbc", "rblf")
|
|
load("//build/make/tests/input_variables.rbc", input_variables_init = "init")
|
|
load(":product.rbc", "init")
|
|
|
|
|
|
def assert_eq(expected, actual):
|
|
if expected != actual:
|
|
fail("Expected '%s', got '%s'" % (expected, actual))
|
|
|
|
def test():
|
|
(globals, globals_base) = rblf.product_configuration("test/device", init, input_variables_init)
|
|
assert_eq("tablet", globals["PRODUCTS.test/device.mk.PRODUCT_CHARACTERISTICS"])
|
|
assert_eq("vendor/myvendor/certs/devkeys/devkey", globals["PRODUCTS.test/device.mk.PRODUCT_DEFAULT_DEV_CERTIFICATE"])
|
|
assert_eq(["foo", "bar"], globals["PRODUCTS.test/device.mk.PRODUCT_PACKAGES"])
|