<?xml version="1.0" encoding="utf-8"?>
<configuration>
	<!--
     Copyright (C) 2015 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.
     -->
	<!--
     This file has been automatically generated. Edit with caution.
     -->
	<target_preparer class="com.android.compatibility.common.tradefed.targetprep.ApkInstaller">
		<option name="cleanup-apks" value="true"/>
		<option name="test-file-name" value="com.drawelements.deqp.apk"/>
	</target_preparer>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-EGL"/>
		<option name="deqp-caselist-file" value="egl-master.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="unspecified"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES2"/>
		<option name="deqp-caselist-file" value="gles2-master.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="unspecified"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES3"/>
		<option name="deqp-caselist-file" value="gles3-master.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="unspecified"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES3"/>
		<option name="deqp-caselist-file" value="gles3-rotate-portrait.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="0"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES3"/>
		<option name="deqp-caselist-file" value="gles3-rotate-landscape.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="90"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES3"/>
		<option name="deqp-caselist-file" value="gles3-rotate-reverse-portrait.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="180"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES3"/>
		<option name="deqp-caselist-file" value="gles3-rotate-reverse-landscape.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="270"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES3"/>
		<option name="deqp-caselist-file" value="gles3-multisample.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms4"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="unspecified"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES3"/>
		<option name="deqp-caselist-file" value="gles3-565-no-depth-no-stencil.txt"/>
		<option name="deqp-gl-config-name" value="rgb565d0s0ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="unspecified"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES31"/>
		<option name="deqp-caselist-file" value="gles31-master.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="unspecified"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES31"/>
		<option name="deqp-caselist-file" value="gles31-rotate-portrait.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="0"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES31"/>
		<option name="deqp-caselist-file" value="gles31-rotate-landscape.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="90"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES31"/>
		<option name="deqp-caselist-file" value="gles31-rotate-reverse-portrait.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="180"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES31"/>
		<option name="deqp-caselist-file" value="gles31-rotate-reverse-landscape.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="270"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES31"/>
		<option name="deqp-caselist-file" value="gles31-multisample.txt"/>
		<option name="deqp-gl-config-name" value="rgba8888d24s8ms4"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="unspecified"/>
	</test>
	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
		<option name="deqp-package" value="dEQP-GLES31"/>
		<option name="deqp-caselist-file" value="gles31-565-no-depth-no-stencil.txt"/>
		<option name="deqp-gl-config-name" value="rgb565d0s0ms0"/>
		<option name="deqp-surface-type" value="window"/>
		<option name="deqp-screen-rotation" value="unspecified"/>
	</test>
</configuration>
