# 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_gles3_tests<(EXECUTABLE_SUFFIX)',
          '--test-launcher-batch-limit=400',
        ],
        'files': [
          '<(PRODUCT_DIR)/angle_deqp_gles3_tests<(EXECUTABLE_SUFFIX)',
          '<(PRODUCT_DIR)/deqp_support/deqp_gles3_test_expectations.txt',
          '<(PRODUCT_DIR)/deqp_support/dEQP-GLES3-cases.txt.gz',
          '../third_party/deqp/src/data/',
        ],
      },
    }],
    ['OS=="win"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/angle_deqp_libgles3.dll',
        ],
      },
    }],
    ['OS=="linux"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/lib/libangle_deqp_libgles3.so',
        ],
      },
    }],
  ],
}
