Allow $(filter ...) with arbitrary args if its result is compared to the empty string
Bug: 172923994
Test: internal
Change-Id: Iea36ecaa8940cf4e495ad63125f10d733c3eb2ee
diff --git a/mk2rbc/mk2rbc_test.go b/mk2rbc/mk2rbc_test.go
index 240d0b8..fa3cd83 100644
--- a/mk2rbc/mk2rbc_test.go
+++ b/mk2rbc/mk2rbc_test.go
@@ -342,6 +342,8 @@
endif
ifeq ($(TARGET_BUILD_VARIANT), $(filter $(TARGET_BUILD_VARIANT), userdebug eng))
endif
+ifneq (,$(filter true, $(v1)$(v2)))
+endif
`,
expected: `load("//build/make/core:product_config.rbc", "rblf")
@@ -349,12 +351,14 @@
cfg = rblf.cfg(handle)
if g["TARGET_BUILD_VARIANT"] not in ["userdebug", "eng"]:
pass
- if g["TARGET_BUILD_VARIANT"] in ["userdebug"]:
+ if g["TARGET_BUILD_VARIANT"] == "userdebug":
pass
if "plaf" in g.get("PLATFORM_LIST", []):
pass
if g["TARGET_BUILD_VARIANT"] in ["userdebug", "eng"]:
pass
+ if "%s%s" % (_v1, _v2) == "true":
+ pass
`,
},
{
@@ -385,11 +389,26 @@
def init(g, handle):
cfg = rblf.cfg(handle)
if g["TARGET_PRODUCT"] not in ["yukawa_gms", "yukawa_sei510_gms"]:
- if g["TARGET_PRODUCT"] in ["yukawa_gms"]:
+ if g["TARGET_PRODUCT"] == "yukawa_gms":
pass
`,
},
{
+ desc: "filter $(V1), $(V2)",
+ mkname: "product.mk",
+ in: `
+ifneq (, $(filter $(PRODUCT_LIST), $(TARGET_PRODUCT)))
+endif
+`,
+ expected: `load("//build/make/core:product_config.rbc", "rblf")
+
+def init(g, handle):
+ cfg = rblf.cfg(handle)
+ if rblf.filter(g.get("PRODUCT_LIST", ""), g["TARGET_PRODUCT"]):
+ pass
+`,
+ },
+ {
desc: "ifeq",
mkname: "product.mk",
in: `
@@ -779,7 +798,7 @@
def init(g, handle):
cfg = rblf.cfg(handle)
- if rblf.mkstrip(g.get("TARGET_VENDOR", "")) != "":
+ if rblf.mkstrip(g.get("TARGET_VENDOR", "")):
pass
`,
},