page.title=Using special test groups
@jd:body

<!--
    Copyright 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.
-->

<div id="qv-wrapper">
  <div id="qv">
    <h2>In this document</h2>
    <ol id="auto-toc">
    </ol>
  </div>
</div>

<p>Some test groups may need or support special command line options, or require
special care when used on certain systems.</p>

<h2 id=memory_allocation_stress_tests>Memory allocation stress tests</h2>

<p>Memory allocation stress tests exercise out-of-memory conditions by repeatedly
allocating certain resources until the driver reports an out-of-memory error.</p>

<p>On certain platforms, such as Android and most Linux variants, the following
can occur: The operating system may kill the test process instead of allowing a
driver to handle or otherwise provide an out-of-memory error. On such
platforms, tests that are designed to cause out-of-memory errors are disabled
by default, and must be enabled using the  <code>--deqp-test-oom=enable</code> command line argument. 
It is recommended that you run such tests manually to
check if the system behaves correctly under resource pressure. However, in such
a situation, a test process crash should be interpreted as a pass.</p>

<h3 id=test_groups>Test groups</h3>

<pre>
dEQP-GLES2.stress.memory.*
dEQP-GLES3.stress.memory.*
</pre>

<h2 id=long-running_rendering_stress_tests>Long-running rendering stress tests</h2>

<p>Rendering stress tests are designed to reveal robustness issues under sustained
rendering load. By default the tests will execute only a few iterations, but
they can be configured to run indefinitely by supplying the <code>--deqp-test-iteration-count=-1</code> command line argument. The test watchdog should be disabled (<code>--deqp-watchdog=disable</code>) when running these tests for a long period of time.</p>

<h3 id=test_groups2>Test groups</h3>

<pre>
dEQP-GLES2.stress.long.*
dEQP-GLES3.stress.long.*
</pre>
