diff options
author | Jarkko Pöyry <jpoyry@google.com> | 2014-10-13 22:01:15 -0700 |
---|---|---|
committer | Jarkko Pöyry <jpoyry@google.com> | 2014-10-13 22:01:15 -0700 |
commit | 59a8dbbb5010a89c053a8f1c51f40a4663de6eeb (patch) | |
tree | 7c3f983bde75278a8ee9c4926499eed1224f71c9 | |
parent | 32bdf0fbae4f0e5d8d3c22be6ca8cdffe74b01e8 (diff) | |
download | cts-59a8dbbb5010a89c053a8f1c51f40a4663de6eeb.tar.gz |
Declare supported ABIs in dEQP test descriptors.
Add "abis" attribute to dEQP test case descriptor XMLs during the
CTS build by creating a dummy dEQP project under cts from which
the test descriptors depend on. Declaring supported ABIs prevents
dEQP tests from being run on an unsupported ABI.
Supported ABIs are queried by generating a test descriptor xml for
a dummy test list using the cts-xml-generator and then parsing the
result. The dEQP test descriptor XML templates are then patched
with the current ABIs.
Bug: 17956011
Change-Id: I3761c61d197523e0e9033dbe57e49e21ca2ad435
-rw-r--r-- | CtsBuild.mk | 4 | ||||
-rw-r--r-- | CtsTestCaseList.mk | 7 | ||||
-rw-r--r-- | build/config.mk | 1 | ||||
-rw-r--r-- | build/deqp_dummy_test_list | 3 | ||||
-rw-r--r-- | build/test_deqp_package.mk | 44 | ||||
-rw-r--r-- | tests/tests/deqp/Android.mk | 26 | ||||
-rw-r--r-- | tests/tests/deqp/deqp_gles2.mk | 21 | ||||
-rw-r--r-- | tests/tests/deqp/deqp_gles3.mk | 21 | ||||
-rw-r--r-- | tests/tests/deqp/deqp_gles31.mk | 21 |
9 files changed, 146 insertions, 2 deletions
diff --git a/CtsBuild.mk b/CtsBuild.mk index 86ecde8b167..12a90473cce 100644 --- a/CtsBuild.mk +++ b/CtsBuild.mk @@ -61,3 +61,7 @@ endef define cts-get-executable-paths $(foreach executable,$(1),$(CTS_TESTCASES_OUT)/$(executable)) endef + +define cts-get-deqp-test-xmls + $(foreach api,$(1),$(CTS_TESTCASES_OUT)/com.drawelements.deqp.$(api).xml) +endef diff --git a/CtsTestCaseList.mk b/CtsTestCaseList.mk index ce67d37165b..518de4b7633 100644 --- a/CtsTestCaseList.mk +++ b/CtsTestCaseList.mk @@ -199,6 +199,10 @@ cts_device_executables := \ cts_target_junit_tests := \ CtsJdwp +cts_deqp_test_apis := \ + gles3 \ + gles31 + # All the files that will end up under the repository/testcases # directory of the final CTS distribution. CTS_TEST_CASES := $(call cts-get-lib-paths,$(cts_host_libraries)) \ @@ -216,8 +220,7 @@ CTS_TEST_XMLS := $(call cts-get-test-xmls,$(cts_host_libraries)) \ $(call cts-get-test-xmls,$(cts_native_exes)) \ $(call cts-get-test-xmls,$(cts_target_junit_tests)) \ $(call cts-get-test-xmls,$(cts_ui_tests)) \ - external/deqp/android/cts/com.drawelements.deqp.gles3.xml \ - external/deqp/android/cts/com.drawelements.deqp.gles31.xml + $(call cts-get-deqp-test-xmls,$(cts_deqp_test_apis)) # The following files will be placed in the tools directory of the CTS distribution CTS_TOOLS_LIST := diff --git a/build/config.mk b/build/config.mk index e127e90ce77..931220b0133 100644 --- a/build/config.mk +++ b/build/config.mk @@ -18,3 +18,4 @@ BUILD_CTS_GTEST_PACKAGE := cts/build/test_gtest_package.mk BUILD_CTS_HOST_JAVA_LIBRARY := cts/build/test_host_java_library.mk BUILD_CTS_TARGET_JAVA_LIBRARY := cts/build/test_target_java_library.mk BUILD_CTS_UI_JAVA_LIBRARY := cts/build/test_uiautomator.mk +BUILD_CTS_DEQP_PACKAGE := cts/build/test_deqp_package.mk diff --git a/build/deqp_dummy_test_list b/build/deqp_dummy_test_list new file mode 100644 index 00000000000..6bf22aa1a77 --- /dev/null +++ b/build/deqp_dummy_test_list @@ -0,0 +1,3 @@ +suite:TestSuite +case:TEST_CASE_NAME +test:TEST_NAME diff --git a/build/test_deqp_package.mk b/build/test_deqp_package.mk new file mode 100644 index 00000000000..b07876d5eb6 --- /dev/null +++ b/build/test_deqp_package.mk @@ -0,0 +1,44 @@ +# Copyright (C) 2012 The Android Open Source Project +# +# 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 +# +# http://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. + +# +# Builds dEQP test description XMLs needed by CTS. +# + +CTS_DEQP_CONFIG_PATH := $(call my-dir) + +cts_library_xml := $(CTS_TESTCASES_OUT)/com.drawelements.deqp.$(DEQP_API).xml + +$(cts_library_xml): MUSTPASS_XML_FILE := external/deqp/android/cts/com.drawelements.deqp.$(DEQP_API).xml +$(cts_library_xml): PRIVATE_TEST_NAME := $(DEQP_TEST_NAME) +$(cts_library_xml): PRIVATE_TEST_PACKAGE := com.drawelements.deqp.$(DEQP_API) +$(cts_library_xml): PRIVATE_DUMMY_CASELIST := $(CTS_DEQP_CONFIG_PATH)/deqp_dummy_test_list +$(cts_library_xml): $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME))/package.apk external/deqp/android/cts/com.drawelements.deqp.$(DEQP_API).xml $(CTS_EXPECTATIONS) $(CTS_UNSUPPORTED_ABIS) $(CTS_XML_GENERATOR) + $(hide) echo Generating test description for $(PRIVATE_TEST_NAME) + $(hide) mkdir -p $(CTS_TESTCASES_OUT) + +# Query build ABIs by routing a dummy test list through xml generator and parse result + $(hide) $(eval supported_abi_attr := $(shell $(CTS_XML_GENERATOR) -t dummyTest \ + -n dummyName \ + -p invalid.dummy \ + -e $(CTS_EXPECTATIONS) \ + -b $(CTS_UNSUPPORTED_ABIS) \ + -a $(CTS_TARGET_ARCH) \ + < $(PRIVATE_DUMMY_CASELIST) \ + | grep --only-matching -e " abis=\"[^\"]*\"")) + +# Patch xml caselist with supported abi + $(hide) $(SED_EXTENDED) -e 's:^<Test (.*)/>$$:<Test \1 $(supported_abi_attr) />:' \ + < $(MUSTPASS_XML_FILE) \ + > $@ diff --git a/tests/tests/deqp/Android.mk b/tests/tests/deqp/Android.mk new file mode 100644 index 00000000000..d8a4dda25a4 --- /dev/null +++ b/tests/tests/deqp/Android.mk @@ -0,0 +1,26 @@ +# Copyright (C) 2014 The Android Open Source Project +# +# 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 +# +# http://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. + +# Dummy target to make dEQP test list generation consistent with other tests. + +LOCAL_PATH:= $(call my-dir) + +include $(CLEAR_VARS) + +# All APIs share the same package +LOCAL_PACKAGE_NAME := com.drawelements.deqp + +include $(LOCAL_PATH)/deqp_gles2.mk +include $(LOCAL_PATH)/deqp_gles3.mk +include $(LOCAL_PATH)/deqp_gles31.mk diff --git a/tests/tests/deqp/deqp_gles2.mk b/tests/tests/deqp/deqp_gles2.mk new file mode 100644 index 00000000000..3cd60da2084 --- /dev/null +++ b/tests/tests/deqp/deqp_gles2.mk @@ -0,0 +1,21 @@ +# Copyright (C) 2014 The Android Open Source Project +# +# 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 +# +# http://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. + +# Dummy target to make dEQP GLES2 test list generation consistent with other +# tests. + +DEQP_API := gles2 +DEQP_TEST_NAME := dEQP-GLES2 + +include $(BUILD_CTS_DEQP_PACKAGE) diff --git a/tests/tests/deqp/deqp_gles3.mk b/tests/tests/deqp/deqp_gles3.mk new file mode 100644 index 00000000000..07dfdae2e91 --- /dev/null +++ b/tests/tests/deqp/deqp_gles3.mk @@ -0,0 +1,21 @@ +# Copyright (C) 2014 The Android Open Source Project +# +# 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 +# +# http://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. + +# Dummy target to make dEQP GLES3 test list generation consistent with other +# tests. + +DEQP_API := gles3 +DEQP_TEST_NAME := dEQP-GLES3 + +include $(BUILD_CTS_DEQP_PACKAGE) diff --git a/tests/tests/deqp/deqp_gles31.mk b/tests/tests/deqp/deqp_gles31.mk new file mode 100644 index 00000000000..7e454137a89 --- /dev/null +++ b/tests/tests/deqp/deqp_gles31.mk @@ -0,0 +1,21 @@ +# Copyright (C) 2014 The Android Open Source Project +# +# 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 +# +# http://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. + +# Dummy target to make dEQP GLES31 test list generation consistent with other +# tests. + +DEQP_API := gles31 +DEQP_TEST_NAME := dEQP-GLES31 + +include $(BUILD_CTS_DEQP_PACKAGE) |