# Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

{
  'conditions': [
    ['OS=="android"', {
      'variables': {
        'isolate_dependency_untracked': [
          '<(DEPTH)/data/',
          '<(DEPTH)/resources/',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'command': [
          '<(DEPTH)/testing/test_env.py',
          '<(PRODUCT_DIR)/system_wrappers_unittests<(EXECUTABLE_SUFFIX)',
        ],
        'isolate_dependency_tracked': [
          '<(DEPTH)/testing/test_env.py',
          '<(PRODUCT_DIR)/system_wrappers_unittests<(EXECUTABLE_SUFFIX)',
        ],
        'isolate_dependency_untracked': [
          '<(DEPTH)/tools/swarming_client/',
        ],
      },
    }],
  ],
}
