# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# TOOD(jmadill): disable gtest batching
{
  'includes': [
    '../base/base.isolate',
    '../third_party/angle/angle_on_all_platforms.isolate',
  ],
  'conditions': [
    ['OS=="win" or OS=="linux"', {
      'variables': {
        'command': [
          '<(PRODUCT_DIR)/angle_deqp_gles2_tests<(EXECUTABLE_SUFFIX)',
          '--test-launcher-batch-limit=400',
        ],
        'files': [
          '<(PRODUCT_DIR)/deqp_support/deqp_gles2_test_expectations.txt',
          '<(PRODUCT_DIR)/deqp_support/dEQP-GLES2-cases.txt.gz',
          '../third_party/deqp/src/data/',
        ],
      },
    }],
    ['OS=="win"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/angle_deqp_libgles2.dll',
        ],
      },
    }],
    ['OS=="linux"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/lib/libangle_deqp_libgles2.so',
        ],
      },
    }],
  ],
}
