# 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)',
          '../tools/swarm_client/googletest/run_test_cases.py',
          '<(PRODUCT_DIR)/sync_integration_tests<(EXECUTABLE_SUFFIX)',
        ],
        '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': [
          '../tools/swarm_client/',
          '<(PRODUCT_DIR)/pyproto/',
        ],
      },
    }],
    ['OS=="mac"', {
      'variables': {
        'command': [
          '../tools/swarm_client/googletest/run_test_cases.py',
          '<(PRODUCT_DIR)/sync_integration_tests<(EXECUTABLE_SUFFIX)',
        ],
        'isolate_dependency_tracked': [
          '<(PRODUCT_DIR)/ffmpegsumo.so',
        ],
        'isolate_dependency_untracked': [
          '<(PRODUCT_DIR)/Chromium Framework.framework/',
          '<(PRODUCT_DIR)/Chromium.app/',
        ],
      },
    }],
  ],
}
