Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8a431d9c authored by Simran Basi's avatar Simran Basi
Browse files

Common testcase directories: Clean up duplicates

This CL addresses the problem that native tests build for multiple
architectures and also build for host.

First it restructures each testcase folder to the following layout:
<testcase>/<testcase>.config
<testcase>/<arch 1>/testcase
<testcase>/<arch 2>/testcase

Secondly it now uses the new soong-zip prefix capability to
separate out host and target testcases in the device-tests &
general-tests zip files.

Bug:36692141
Test: `make device-tests general-tests cts -j` &
      ensured all built successfully.

Change-Id: I4e8b084ee56fa8940914911649ff35507d87eb27
parent a1c1e7d0
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -431,9 +431,27 @@ endif
###########################################################
ifdef LOCAL_COMPATIBILITY_SUITE

# If we are building a native test or benchmark and its stem variants are not defined,
# separate the multiple architectures into subdirectories of the testcase folder.
arch_dir :=
is_native :=
ifeq ($(LOCAL_MODULE_CLASS),NATIVE_TESTS)
  is_native := true
endif
ifeq ($(LOCAL_MODULE_CLASS),NATIVE_BENCHMARK)
  is_native := true
endif
ifdef LOCAL_MULTILIB
  is_native := true
endif
ifdef is_native
  arch_dir := /$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
  is_native :=
endif

# The module itself.
$(foreach suite, $(LOCAL_COMPATIBILITY_SUITE), \
  $(eval my_compat_dist_$(suite) := $(foreach dir, $(call compatibility_suite_dirs,$(suite)), \
  $(eval my_compat_dist_$(suite) := $(foreach dir, $(call compatibility_suite_dirs,$(suite),$(arch_dir)), \
    $(LOCAL_BUILT_MODULE):$(dir)/$(my_installed_module_stem))))

# Make sure we only add the files once for multilib modules.
+3 −2
Original line number Diff line number Diff line
@@ -3243,11 +3243,12 @@ endef
## Compatibility suite tools
###########################################################

# Return a list of output directories for a given suite and the current LOCAL_MODULE
# Return a list of output directories for a given suite and the current LOCAL_MODULE.
# Can be passed a subdirectory to use for the common testcase directory.
define compatibility_suite_dirs
  $(strip \
    $(COMPATIBILITY_TESTCASES_OUT_$(1)) \
    $($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE))
    $($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE)$(2))
endef

# For each suite:
+1 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ $(device-tests-zip): $(COMPATIBILITY.device-tests.FILES) $(SOONG_ZIP)
	sed -i -e 's/\s\+/\n/g' $@.list
	grep $(HOST_OUT_TESTCASES) $@.list > $@-host.list || true
	grep $(TARGET_OUT_TESTCASES) $@.list > $@-target.list || true
	$(hide) $(SOONG_ZIP) -d -o $@ -C $(HOST_OUT) -l $@-host.list -C $(PRODUCT_OUT) -l $@-target.list
	$(hide) $(SOONG_ZIP) -d -o $@ -P host -C $(HOST_OUT) -l $@-host.list -P target -C $(PRODUCT_OUT) -l $@-target.list

device-tests: $(device-tests-zip)
$(call dist-for-goals, device-tests, $(device-tests-zip))
+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ $(general-tests-zip): $(COMPATIBILITY.general-tests.FILES) $(SOONG_ZIP)
	sed -i -e 's/\s\+/\n/g' $@.list
	grep $(HOST_OUT_TESTCASES) $@.list > $@-host.list || true
	grep $(TARGET_OUT_TESTCASES) $@.list > $@-target.list || true
	$(hide) $(SOONG_ZIP) -d -o $@ -C $(HOST_OUT) -l $@-host.list -C $(PRODUCT_OUT) -l $@-target.list
	$(hide) $(SOONG_ZIP) -d -o $@ -P host -C $(HOST_OUT) -l $@-host.list -P target -C $(PRODUCT_OUT) -l $@-target.list

general-tests: $(general-tests-zip)
$(call dist-for-goals, general-tests, $(general-tests-zip))