<?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"/>
	<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-default-no-waivers.txt"/>
	</test>
</configuration>
