From 321e1b059c3b33fa9d82ec239efd5f0ad3500758 Mon Sep 17 00:00:00 2001 From: Tri Vo <trong@google.com> Date: Thu, 15 Mar 2018 11:38:08 -0700 Subject: [PATCH] Test frozen sepolicy has not diverged from prebuilts. This will test that system/sepolicy/{public/, private/} are identical to prebuilts if PLATFORM_SEPOLICY_VERSION is not 10000.0. Bug: 74622750 Test: build policy Test: correctly catches divergence from prebuilts for frozen policies Change-Id: I2fa14b672544a021c2d42ad5968dfbac21b72f6a (cherry picked from commit 81198bb8bbe7dc2fbb79ba423a9b602c3bd02220) --- Android.mk | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/Android.mk b/Android.mk index bb042865c..c32b32852 100644 --- a/Android.mk +++ b/Android.mk @@ -261,6 +261,12 @@ LOCAL_REQUIRED_MODULES += \ odm_mac_permissions.xml endif +ifneq ($(PLATFORM_SEPOLICY_VERSION),$(TOT_SEPOLICY_VERSION)) +LOCAL_REQUIRED_MODULES += \ + sepolicy_freeze_test \ + +endif # ($(PLATFORM_SEPOLICY_VERSION),$(TOT_SEPOLICY_VERSION)) + include $(BUILD_PHONY_PACKAGE) ################################# @@ -1612,7 +1618,44 @@ base_plat_policy.conf := plat_sepolicy := endif # ($(PRODUCT_SEPOLICY_SPLIT),true) + ################################# +include $(CLEAR_VARS) +LOCAL_MODULE := sepolicy_freeze_test +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_TAGS := tests + +include $(BUILD_SYSTEM)/base_rules.mk + +base_plat_public := $(LOCAL_PATH)/public +base_plat_private := $(LOCAL_PATH)/private +base_plat_public_prebuilt := \ + $(LOCAL_PATH)/prebuilts/api/$(PLATFORM_SEPOLICY_VERSION)/public +base_plat_private_prebuilt := \ + $(LOCAL_PATH)/prebuilts/api/$(PLATFORM_SEPOLICY_VERSION)/private + +all_frozen_files := $(call build_policy,$(sepolicy_build_files), \ +$(base_plat_public) $(base_plat_private) $(base_plat_public_prebuilt) $(base_plat_private_prebuilt)) + +$(LOCAL_BUILT_MODULE): PRIVATE_BASE_PLAT_PUBLIC := $(base_plat_public) +$(LOCAL_BUILT_MODULE): PRIVATE_BASE_PLAT_PRIVATE := $(base_plat_private) +$(LOCAL_BUILT_MODULE): PRIVATE_BASE_PLAT_PUBLIC_PREBUILT := $(base_plat_public_prebuilt) +$(LOCAL_BUILT_MODULE): PRIVATE_BASE_PLAT_PRIVATE_PREBUILT := $(base_plat_private_prebuilt) +$(LOCAL_BUILT_MODULE): $(all_frozen_files) +ifneq ($(PLATFORM_SEPOLICY_VERSION),$(TOT_SEPOLICY_VERSION)) + @diff -rq $(PRIVATE_BASE_PLAT_PUBLIC_PREBUILT) $(PRIVATE_BASE_PLAT_PUBLIC) + @diff -rq $(PRIVATE_BASE_PLAT_PRIVATE_PREBUILT) $(PRIVATE_BASE_PLAT_PRIVATE) +endif # ($(PLATFORM_SEPOLICY_VERSION),$(TOT_SEPOLICY_VERSION)) + $(hide) touch $@ + +base_plat_public := +base_plat_private := +base_plat_public_prebuilt := +base_plat_private_prebuilt := +all_frozen_files := + +################################# + add_nl := build_vendor_policy := -- GitLab