# Copyright (c) 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': [
    ['use_x11==0', {
      'variables': {
        'command': [
          '../testing/test_env.py',
          '<(PRODUCT_DIR)/unit_tests<(EXECUTABLE_SUFFIX)',
          '--brave-new-test-launcher',
          '--test-launcher-bot-mode',
          '--asan=<(asan)',
          '--msan=<(msan)',
          '--tsan=<(tsan)',
        ],
      },
    }],
    ['use_x11==1', {
      'variables': {
        'command': [
          '../testing/xvfb.py',
          '<(PRODUCT_DIR)',
          '<(PRODUCT_DIR)/unit_tests<(EXECUTABLE_SUFFIX)',
          '--brave-new-test-launcher',
          '--test-launcher-bot-mode',
          '--asan=<(asan)',
          '--msan=<(msan)',
          '--tsan=<(tsan)',
        ],
        'files': [
          '../testing/xvfb.py',
          '<(PRODUCT_DIR)/xdisplaycheck<(EXECUTABLE_SUFFIX)',
        ],
      },
    }],
    ['OS=="android" or OS=="linux" or OS=="win" or OS=="mac"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/test_data/chrome/browser/resources/google_now/',
          '<(PRODUCT_DIR)/test_data/chrome/browser/resources/print_preview/',
          '<(PRODUCT_DIR)/test_data/chrome/renderer/resources/extensions/',
          '<(PRODUCT_DIR)/test_data/chrome/test/data/unit/',
          '<(PRODUCT_DIR)/test_data/ui/webui/',
        ],
      },
    }],
    ['OS=="android" or OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'files': [
          '../base/test/data/',
          '../components/test/data/',
          '../extensions/test/data/',
          '../net/data/',
          '../third_party/accessibility-audit/axs_testing.js',
          '../third_party/hunspell_dictionaries/',
          '../third_party/zlib/google/test/data/',
          '../tools/metrics/histograms/histograms.xml',
          '<(PRODUCT_DIR)/resources.pak',
          'test/data/',
          'third_party/mock4js/',
        ],
      },
    }],
    ['OS=="android" or OS=="linux" or OS=="win"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/chrome_100_percent.pak',
          '<(PRODUCT_DIR)/locales/en-US.pak',
        ],
      },
    }],
    ['OS=="linux"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/libosmesa.so',
          '<(PRODUCT_DIR)/locales/fr.pak',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'files': [
          '../net/tools/testserver/',
          '../testing/test_env.py',
          '../third_party/pyftpdlib/',
          '../third_party/pywebsocket/',
          '../third_party/tlslite/',
          '<(PRODUCT_DIR)/pyproto/google/',
          '<(PRODUCT_DIR)/unit_tests<(EXECUTABLE_SUFFIX)',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac"', {
      'variables': {
        'read_only': 1,
      },
    }],
    ['OS=="mac"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/<(mac_product_name) Framework.framework/',
          '<(PRODUCT_DIR)/exif.so',
          '<(PRODUCT_DIR)/osmesa.so',
        ],
      },
    }],
    ['OS=="mac" and asan==1 and fastbuild==0', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/<(mac_product_name) Framework.framework.dSYM/',
          '<(PRODUCT_DIR)/exif.so.dSYM/',
          '<(PRODUCT_DIR)/osmesa.so.dSYM/',
          '<(PRODUCT_DIR)/unit_tests.dSYM/',
        ],
      },
    }],
    ['OS=="win"', {
      'variables': {
        'files': [
          '../ppapi/lib/gl/include/KHR/',
          '../skia/ext/data/',
          '../ui/base/glib/',
          '<(PRODUCT_DIR)/blacklist_test_dll_1.dll',
          '<(PRODUCT_DIR)/chrome_elf.dll',
          '<(PRODUCT_DIR)/libexif.dll',
          '<(PRODUCT_DIR)/osmesa.dll',
          '<(PRODUCT_DIR)/verifier_test_dll_1.dll',
          '<(PRODUCT_DIR)/verifier_test_dll_2.dll',
          'test/data/safe_browsing/signed_binary.dll',
        ],
        # Can't be enabled on Windows due to http://crbug.com/342913
        'read_only': 0,
      },
    }],
    ['OS=="win" and (fastbuild==0 or fastbuild==1)', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/unit_tests.exe.pdb',
        ],
      },
    }],
    ['OS=="win" and kasko==1', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/kasko.dll',
        ],
      },
    }],
    ['chromeos==1', {
      'variables': {
        'files': [
          '../chromeos/test/data/network/',
          '<(PRODUCT_DIR)/libexif.so',
          '<(PRODUCT_DIR)/test_data/chrome/browser/resources/chromeos/',
        ],
      },
    }],
  ],
  'includes': [
    '../base/base.isolate',
    '../gin/v8.isolate',
    '../third_party/angle/angle.isolate',
  ],
}
