# Copyright 2012 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.
{
  'conditions': [
    ['OS=="linux"', {
      'variables': {
        'command': [
          '../testing/xvfb.py',
          '<(PRODUCT_DIR)',
          '<(PRODUCT_DIR)/sync_integration_tests<(EXECUTABLE_SUFFIX)',
          '--test-launcher-bot-mode',
        ],
        'isolate_dependency_tracked': [
          '../testing/test_env.py',
          '../testing/xvfb.py',
          '<(PRODUCT_DIR)/chrome_100_percent.pak',
          '<(PRODUCT_DIR)/libffmpegsumo.so',
          '<(PRODUCT_DIR)/libppGoogleNaClPluginChrome.so',
          '<(PRODUCT_DIR)/locales/en-US.pak',
          '<(PRODUCT_DIR)/nacl_helper<(EXECUTABLE_SUFFIX)',
          '<(PRODUCT_DIR)/nacl_helper_bootstrap<(EXECUTABLE_SUFFIX)',
          '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
          '<(PRODUCT_DIR)/xdisplaycheck<(EXECUTABLE_SUFFIX)',
        ],
        'isolate_dependency_untracked': [
          '../net/tools/testserver/',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac"', {
      'variables': {
        'isolate_dependency_tracked': [
          '<(PRODUCT_DIR)/resources.pak',
          '<(PRODUCT_DIR)/sync_integration_tests<(EXECUTABLE_SUFFIX)',
        ],
        'isolate_dependency_untracked': [
          '../third_party/pyftpdlib/',
          '../third_party/pywebsocket/',
          '../third_party/tlslite/',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'isolate_dependency_untracked': [
          '<(PRODUCT_DIR)/pyproto/',
        ],
      },
    }],
    ['OS=="mac"', {
      'variables': {
        'command': [
          '<(PRODUCT_DIR)/sync_integration_tests<(EXECUTABLE_SUFFIX)',
          '--test-launcher-bot-mode',
        ],
        'isolate_dependency_tracked': [
          '<(PRODUCT_DIR)/ffmpegsumo.so',
        ],
        'isolate_dependency_untracked': [
          '<(PRODUCT_DIR)/<(mac_product_name) Framework.framework/',
          '<(PRODUCT_DIR)/<(mac_product_name).app/',
        ],
      },
    }],
  ],
}
