<?xml version="1.0" encoding="utf-8"?>
<configuration>
	<!--
	 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.
	 -->
	<!--
     This file has been automatically generated. Edit with caution.
     -->
	<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
		<option name="cleanup-apks" value="true"/>
		<option name="test-file-name" value="com.drawelements.deqp.apk"/>
	</target_preparer>
	<option name="test-suite-tag" value="cts"/>
	<option key="component" name="config-descriptor:metadata" value="deqp"/>
	<option key="parameter" name="config-descriptor:metadata" value="not_instant_app"/>
	<option key="parameter" name="config-descriptor:metadata" value="multi_abi"/>
	<option key="parameter" name="config-descriptor:metadata" value="secondary_user"/>
	<object class="com.android.tradefed.testtype.suite.module.TestFailureModuleController" type="module_controller">
		<option name="screenshot-on-failure" value="false"/>
	</object>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-VK"/>
		<option name="deqp-caselist-file" value="vk-default.txt"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-VK"/>
		<option name="deqp-caselist-file" value="vk-fraction-mandatory-tests.txt"/>
	</test>
</configuration>
