Isolate GYP target and .isolate files for tests

Implemented according to the instructions at
http://www.chromium.org/developers/testing/isolated-testing

Workflow has been like this:
1. create _run GYP target
2. create a stripped down .isolate file
3. export GYP_DEFINES="$GYP_DEFINES test_isolation_mode=check"
4. runhooks
5. compile
6. test if the test would run (i.e. find it's dependencies) without
   actually executing it:
   tools/swarm_client/isolate.py run --isolated out/Release/testname.isolated
7. If failing, run the fix_test_cases.py script like this:
   tools/swarm_client/fix_test_cases.py --isolated out/Release/testname.isolated

All tests that run on the bots for WebRTC has got _run target
and .isolate file created.

"Normal tests" that run fine on any machine:
* audio_decoder_unittests
* common_audio_unittests
* common_video_unittests
* metrics_unittests
* modules_integrationtests
* modules_unittests
* neteq_unittests
* system_wrappers_unittests
* test_support_unittests
* tools_unittests
* video_engine_core_unittests
* voice_engine_unittests

Tests that requires bare-metal and audio/video devices:
* audio_device_integrationtests
* video_capture_integrationtests

I also added the isolate boilerplate code for the following
tests that are not yet pure gtest binaries (which means they
cannot run isolated yet):
* video_render_integrationtests
* vie_auto_test
* voe_auto_test

TEST=running isolate.py as described above.
BUG=1916
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1673004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4547 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
kjellander@webrtc.org
2013-08-15 10:02:06 +00:00
parent d690eab54f
commit d7a4d235d2
38 changed files with 894 additions and 5 deletions

View File

@@ -231,6 +231,24 @@
},
],
}],
['test_isolation_mode != "noop"', {
'targets': [
{
'target_name': 'neteq_unittests_run',
'type': 'none',
'dependencies': [
'neteq_unittests',
],
'includes': [
'../../../../build/isolate.gypi',
'neteq_unittests.isolate',
],
'sources': [
'neteq_unittests.isolate',
],
},
],
}],
],
}], # include_tests
], # conditions

View File

@@ -0,0 +1,35 @@
# 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=="linux" or OS=="mac" or OS=="win"', {
'variables': {
'command': [
'../../../../testing/test_env.py',
'../../../../tools/swarm_client/googletest/run_test_cases.py',
'<(PRODUCT_DIR)/neteq_unittests<(EXECUTABLE_SUFFIX)',
],
'isolate_dependency_touched': [
'../../../../DEPS',
],
'isolate_dependency_tracked': [
'../../../../resources/audio_coding/neteq_network_stats.dat',
'../../../../resources/audio_coding/neteq_rtcp_stats.dat',
'../../../../resources/audio_coding/neteq_universal.rtp',
'../../../../resources/audio_coding/neteq_universal_ref.pcm',
'../../../../resources/audio_coding/testfile32kHz.pcm',
'../../../../testing/test_env.py',
'../../../../tools/swarm_client/run_isolated.py',
'../../../../tools/swarm_client/googletest/run_test_cases.py',
'../../../../tools/swarm_client/third_party/upload.py',
'<(PRODUCT_DIR)/neteq_unittests<(EXECUTABLE_SUFFIX)',
],
},
}],
],
}

View File

@@ -0,0 +1,31 @@
# 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=="linux" or OS=="mac" or OS=="win"', {
'variables': {
'command': [
'../../../../testing/test_env.py',
'../../../../tools/swarm_client/googletest/run_test_cases.py',
'<(PRODUCT_DIR)/audio_decoder_unittests<(EXECUTABLE_SUFFIX)',
],
'isolate_dependency_touched': [
'../../../../DEPS',
],
'isolate_dependency_tracked': [
'../../../../resources/audio_coding/testfile32kHz.pcm',
'../../../../testing/test_env.py',
'../../../../tools/swarm_client/run_isolated.py',
'../../../../tools/swarm_client/googletest/run_test_cases.py',
'../../../../tools/swarm_client/third_party/upload.py',
'<(PRODUCT_DIR)/audio_decoder_unittests<(EXECUTABLE_SUFFIX)',
],
},
}],
],
}

View File

@@ -204,6 +204,24 @@
},
],
}],
['test_isolation_mode != "noop"', {
'targets': [
{
'target_name': 'audio_decoder_unittests_run',
'type': 'none',
'dependencies': [
'audio_decoder_unittests',
],
'includes': [
'../../../../build/isolate.gypi',
'audio_decoder_unittests.isolate',
],
'sources': [
'audio_decoder_unittests.isolate',
],
},
],
}],
],
}], # include_tests
], # conditions