Fix cts api coverage
Change-Id: I9bdbebce3d96dfa96a65fc498d424623e1cb7f78
diff --git a/CtsCoverage.mk b/CtsCoverage.mk
index 11f60b9..1fb98dc 100644
--- a/CtsCoverage.mk
+++ b/CtsCoverage.mk
@@ -17,12 +17,6 @@
# Makefile for producing CTS coverage reports.
# Run "make cts-test-coverage" in the $ANDROID_BUILD_TOP directory.
-include cts/CtsTestCaseList.mk
-
-cts_testcases_out_apk := $(wildcard $(CTS_TESTCASES_OUT)/*.apk)
-cts_testcases_out_jar := $(wildcard $(CTS_TESTCASES_OUT)/*.jar)
-cts_verifier_apk := $(call intermediates-dir-for,APPS,CtsVerifier)/package.apk
-
cts_api_coverage_exe := $(HOST_OUT_EXECUTABLES)/cts-api-coverage
dexdeps_exe := $(HOST_OUT_EXECUTABLES)/dexdeps
@@ -42,41 +36,40 @@
cts_api_coverage_dependencies := $(cts_api_coverage_exe) $(dexdeps_exe) $(api_xml_description)
-cts_coverage_test_cases_dependencies := $(cts_testcases_out_apk) $(cts_testcases_out_jar)
-$(cts-test-coverage-report): PRIVATE_TEST_CASES_APKS := $(cts_coverage_test_cases_dependencies)
+android_cts_zip := $(HOST_OUT)/cts/android-cts.zip
+cts_verifier_apk := $(call intermediates-dir-for,APPS,CtsVerifier)/package.apk
+
+$(cts-test-coverage-report): PRIVATE_TEST_CASES := $(CTS_TESTCASES_OUT)
$(cts-test-coverage-report): PRIVATE_CTS_API_COVERAGE_EXE := $(cts_api_coverage_exe)
$(cts-test-coverage-report): PRIVATE_DEXDEPS_EXE := $(dexdeps_exe)
$(cts-test-coverage-report): PRIVATE_API_XML_DESC := $(api_xml_description)
-$(cts-test-coverage-report) : $(cts_coverage_test_cases_dependencies) $(cts_api_coverage_dependencies) | $(ACP)
+$(cts-test-coverage-report) : $(android_cts_zip) $(cts_api_coverage_dependencies) | $(ACP)
$(call generate-coverage-report,"CTS Tests API Coverage Report",\
- $(PRIVATE_TEST_CASES_APKS),html)
+ $(PRIVATE_TEST_CASES),html)
-cts_coverage_test_cases_dependencies := $(cts_verifier_apk)
-$(cts-verifier-coverage-report): PRIVATE_TEST_CASES_APKS := $(cts_coverage_test_cases_dependencies)
+$(cts-verifier-coverage-report): PRIVATE_TEST_CASES := $(cts_verifier_apk)
$(cts-verifier-coverage-report): PRIVATE_CTS_API_COVERAGE_EXE := $(cts_api_coverage_exe)
$(cts-verifier-coverage-report): PRIVATE_DEXDEPS_EXE := $(dexdeps_exe)
$(cts-verifier-coverage-report): PRIVATE_API_XML_DESC := $(api_xml_description)
-$(cts-verifier-coverage-report) : $(cts_coverage_test_cases_dependencies) $(cts_api_coverage_dependencies) | $(ACP)
+$(cts-verifier-coverage-report) : $(cts_verifier_apk) $(cts_api_coverage_dependencies) | $(ACP)
$(call generate-coverage-report,"CTS Verifier API Coverage Report",\
- $(PRIVATE_TEST_CASES_APKS),html)
+ $(PRIVATE_TEST_CASES),html)
-cts_coverage_test_cases_dependencies := $(cts_testcases_out_apk) $(cts_testcases_out_jar) $(cts_verifier)
-$(cts-combined-coverage-report): PRIVATE_TEST_CASES_APKS := $(cts_coverage_test_cases_dependencies)
+$(cts-combined-coverage-report): PRIVATE_TEST_CASES := $(foreach c, $(cts_verifier_apk) $(CTS_TESTCASES_OUT), $(c))
$(cts-combined-coverage-report): PRIVATE_CTS_API_COVERAGE_EXE := $(cts_api_coverage_exe)
$(cts-combined-coverage-report): PRIVATE_DEXDEPS_EXE := $(dexdeps_exe)
$(cts-combined-coverage-report): PRIVATE_API_XML_DESC := $(api_xml_description)
-$(cts-combined-coverage-report) : $(cts_coverage_test_cases_dependencies) $(cts_api_coverage_dependencies) | $(ACP)
+$(cts-combined-coverage-report) : $(android_cts_zip) $(cts_verifier_apk) $(cts_api_coverage_dependencies) | $(ACP)
$(call generate-coverage-report,"CTS Combined API Coverage Report",\
- $(PRIVATE_TEST_CASES_APKS),html)
+ $(PRIVATE_TEST_CASES),html)
-cts_coverage_test_cases_dependencies := $(cts_testcases_out_apk) $(cts_testcases_out_jar) $(cts_verifier)
-$(cts-combined-xml-coverage-report): PRIVATE_TEST_CASES_APKS := $(cts_coverage_test_cases_dependencies)
+$(cts-combined-xml-coverage-report): PRIVATE_TEST_CASES := $(foreach c, $(cts_verifier_apk) $(CTS_TESTCASES_OUT), $(c))
$(cts-combined-xml-coverage-report): PRIVATE_CTS_API_COVERAGE_EXE := $(cts_api_coverage_exe)
$(cts-combined-xml-coverage-report): PRIVATE_DEXDEPS_EXE := $(dexdeps_exe)
$(cts-combined-xml-coverage-report): PRIVATE_API_XML_DESC := $(api_xml_description)
-$(cts-combined-xml-coverage-report) : $(cts_coverage_test_cases_dependencies) $(cts_api_coverage_dependencies) | $(ACP)
+$(cts-combined-xml-coverage-report) : $(android_cts_zip) $(cts_verifier_apk) $(cts_api_coverage_dependencies) | $(ACP)
$(call generate-coverage-report,"CTS Combined API Coverage Report - XML",\
- $(PRIVATE_TEST_CASES_APKS),xml)
+ $(PRIVATE_TEST_CASES),xml)
.PHONY: cts-test-coverage
cts-test-coverage : $(cts-test-coverage-report)
@@ -110,7 +103,6 @@
# Reset temp vars
cts_api_coverage_dependencies :=
-cts_coverage_test_cases_dependencies :=
cts-combined-coverage-report :=
cts-combined-xml-coverage-report :=
cts-verifier-coverage-report :=
@@ -120,6 +112,5 @@
coverage_out :=
dexdeps_exe :=
cts_api_coverage_exe :=
-cts_testcases_out_apk :=
-cts_testcases_out_jar :=
cts_verifier_apk :=
+android_cts_zip :=
diff --git a/tools/cts-api-coverage/src/com/android/cts/apicoverage/CtsApiCoverage.java b/tools/cts-api-coverage/src/com/android/cts/apicoverage/CtsApiCoverage.java
index 3f2f353..caea3d6 100644
--- a/tools/cts-api-coverage/src/com/android/cts/apicoverage/CtsApiCoverage.java
+++ b/tools/cts-api-coverage/src/com/android/cts/apicoverage/CtsApiCoverage.java
@@ -22,10 +22,12 @@
import org.xml.sax.helpers.XMLReaderFactory;
import java.io.File;
+import java.io.FilenameFilter;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStream;
+import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
@@ -37,6 +39,13 @@
*/
public class CtsApiCoverage {
+ private static final FilenameFilter SUPPORTED_FILE_NAME_FILTER = new FilenameFilter() {
+ public boolean accept(File dir, String name) {
+ String fileName = name.toLowerCase();
+ return fileName.endsWith(".apk") || fileName.endsWith(".jar");
+ }
+ };
+
private static final int FORMAT_TXT = 0;
private static final int FORMAT_XML = 1;
@@ -101,7 +110,12 @@
printUsage();
}
} else {
- testApks.add(new File(args[i]));
+ File file = new File(args[i]);
+ if (file.isDirectory()) {
+ testApks.addAll(Arrays.asList(file.listFiles(SUPPORTED_FILE_NAME_FILTER)));
+ } else {
+ testApks.add(file);
+ }
}
}