# Copyright 2014 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=="android" or OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'files': [
          'data/',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'command': [
          '../testing/test_env.py',
          '<(PRODUCT_DIR)/net_unittests<(EXECUTABLE_SUFFIX)',
          '--brave-new-test-launcher',
          '--test-launcher-bot-mode',
          '--asan=<(asan)',
          '--lsan=<(lsan)',
          '--msan=<(msan)',
          '--tsan=<(tsan)',
        ],
        'files': [
          '../testing/test_env.py',
          '../third_party/pyftpdlib/',
          '../third_party/pywebsocket/',
          '../third_party/tlslite/',
          '<(PRODUCT_DIR)/net_unittests<(EXECUTABLE_SUFFIX)',
          '<(PRODUCT_DIR)/pyproto/google/',
          'tools/testserver/',
        ],
        'read_only': 1,
      },
    }],
    ['OS=="mac" and asan==1', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/net_unittests.dSYM/',
        ],
      },
    }],
    ['OS=="win" and (fastbuild==0 or fastbuild==1)', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/net_unittests.exe.pdb',
        ],
      },
    }],
  ],
  'includes': [
    '../base/base.isolate',
    '../gin/v8.isolate',
  ],
}
