Adding Mac and Windows Large Tests bots.

This also means the old LinuxVideo bot is renamed to LinuxLargeTests.

BUG=None
TEST=Tested successfully with local buildbot master and remote slaves.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2251 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
kjellander@webrtc.org 2012-05-16 12:02:13 +00:00
parent fbfbdbe9ea
commit e96b54f442
4 changed files with 137 additions and 27 deletions

8
tools/.gitignore vendored
View File

@ -39,6 +39,7 @@ twistd.pid
/continuous_build/build_internal/masters/master.webrtc/android-ndk
/continuous_build/build_internal/masters/master.webrtc/chromeos
/continuous_build/build_internal/masters/master.webrtc/linux-clang
/continuous_build/build_internal/masters/master.webrtc/linux-large-tests
/continuous_build/build_internal/masters/master.webrtc/linux-slave-1
/continuous_build/build_internal/masters/master.webrtc/linux-slave-2
/continuous_build/build_internal/masters/master.webrtc/linux-slave-4
@ -47,6 +48,7 @@ twistd.pid
/continuous_build/build_internal/masters/master.webrtc/linux-valgrind
/continuous_build/build_internal/masters/master.webrtc/LinuxChrome
/continuous_build/build_internal/masters/master.webrtc/LinuxChromeBloat
/continuous_build/build_internal/masters/master.webrtc/mac-large-tests/
/continuous_build/build_internal/masters/master.webrtc/mac-slave-2
/continuous_build/build_internal/masters/master.webrtc/mac-slave-3
/continuous_build/build_internal/masters/master.webrtc/MacChrome
@ -54,7 +56,7 @@ twistd.pid
/continuous_build/build_internal/masters/master.webrtc/win-32-dbg
/continuous_build/build_internal/masters/master.webrtc/win-32-release
/continuous_build/build_internal/masters/master.webrtc/WinChrome
/continuous_build/build_internal/masters/master.webrtc/video
/continuous_build/build_internal/masters/master.webrtc/win-large-tests
/continuous_build/build_internal/masters/master.tryserver.webrtc/android-trybot
/continuous_build/build_internal/masters/master.tryserver.webrtc/android-ndk-trybot
/continuous_build/build_internal/masters/master.tryserver.webrtc/linux-trybot-1
@ -64,7 +66,3 @@ twistd.pid
/continuous_build/build_internal/masters/master.tryserver.webrtc/public_html
/continuous_build/build_internal/masters/master.tryserver.webrtc/win-trybot-1
/continuous_build/build_internal/masters/master.tryserver.webrtc/win-trybot-2

View File

@ -49,7 +49,9 @@ webrtc_scheduler = Scheduler(name='all', branch='trunk',
'LinuxClang',
'LinuxValgrind',
'Linux64DBG-GCC4.6',
'LinuxVideoTest',
'LinuxLargeTests',
'MacLargeTests',
'WinLargeTests',
'Android',
'AndroidNDK',
'ChromeOS',
@ -106,9 +108,9 @@ NORMAL_TESTS = {
# Physical machine tests run on hardware with audio device and webcam present.
PHYSICAL_MACHINE_TESTS = {
# Test name Linux Mac Windows
'audio_device_test_api': (False, True, True), # Issue 339
'audio_device_test_api': (False, False, False), # Issue 257+339
'video_render_module_test': (True, True, True),
'vie_auto_test': (True, False, False),
'vie_auto_test': (True, True, True),
'voe_auto_test': (True, True, True),
}
@ -168,13 +170,13 @@ linux_factory_32_dbg.EnableTests(linux_normal_tests)
# The video factory needs to prepare for valgrind since some tests will run
# under tooling. Not all tests will though since that would be too slow.
linux_factory_video = utils.WebRTCLinuxFactory(
utils.BuildStatusOracle('linux_factory_video'),
linux_factory_large_tests = utils.WebRTCLinuxFactory(
utils.BuildStatusOracle('linux_factory_large_tests'),
custom_deps_list=VALGRIND_DEPS_LIST)
linux_factory_video.EnableCoverage(
linux_factory_large_tests.EnableCoverage(
coverage_url='http://webrtc-build-bot-se.lul/coverage/')
linux_factory_video.EnableBuild(compile_for_memory_tooling=True)
linux_factory_video.EnableTests(linux_physical_machine_tests)
linux_factory_large_tests.EnableBuild(compile_for_memory_tooling=True)
linux_factory_large_tests.EnableTests(linux_physical_machine_tests)
chromeos_factory = utils.WebRTCLinuxFactory(
utils.BuildStatusOracle('chromeos_factory'))
@ -214,6 +216,11 @@ mac_factory_32_release = utils.WebRTCMacFactory(
mac_factory_32_release.EnableBuild(build_type='both', release=True)
mac_factory_32_release.EnableTests(mac_normal_tests)
mac_factory_large_tests = utils.WebRTCMacFactory(
utils.BuildStatusOracle('mac_factory_large_tests'))
mac_factory_large_tests.EnableBuild(build_type='make')
mac_factory_large_tests.EnableTests(mac_physical_machine_tests)
# Windows
win_factory_32_Debug = utils.WebRTCWinFactory(
utils.BuildStatusOracle('win_factory_32_debug'))
@ -225,6 +232,11 @@ win_factory_32_Release = utils.WebRTCWinFactory(
win_factory_32_Release.EnableBuild(configuration='Release')
win_factory_32_Release.EnableTests(windows_normal_tests)
win_factory_large_tests = utils.WebRTCWinFactory(
utils.BuildStatusOracle('win_factory_large_tests'))
win_factory_large_tests.EnableBuild()
win_factory_large_tests.EnableTests(windows_physical_machine_tests)
####### BUILDERS
linux_builder_64_debug = {
'name': 'Linux64DBG',
@ -262,6 +274,12 @@ mac_builder_32_release = {
'builddir': 'mac-slave-2',
'factory': mac_factory_32_release,
}
mac_builder_large_tests = {
'name': 'MacLargeTests',
'slavename': 'dhcp-172-28-249-168',
'builddir': 'mac-large-tests',
'factory': mac_factory_large_tests,
}
chromeos_builder = {
'name': 'ChromeOS',
'slavename': 'webrtc-cb-linux-slave-3',
@ -280,11 +298,17 @@ win_builder_32_release = {
'builddir': 'win-32-release',
'factory': win_factory_32_Release,
}
linux_builder_video = {
'name': 'LinuxVideoTest',
win_builder_large_tests = {
'name': 'WinLargeTests',
'slavename': 'webrtc-test-w',
'builddir': 'win-large-tests',
'factory': win_factory_large_tests,
}
linux_builder_large_tests = {
'name': 'LinuxLargeTests',
'slavename': 'webrtc-build-bot-se',
'builddir': 'video',
'factory': linux_factory_video,
'builddir': 'linux-large-tests',
'factory': linux_factory_large_tests,
}
linux_builder_clang = {
'name': 'LinuxClang',
@ -328,7 +352,9 @@ c['builders'] = [
linux_builder_clang,
linux_builder_valgrind,
linux_builder_gcc_4_6,
linux_builder_video,
win_builder_large_tests,
mac_builder_large_tests,
linux_builder_large_tests,
android_builder_1,
android_builder_ndk,
chromeos_builder,

View File

@ -1,10 +1,11 @@
# -*- python -*-
# ex: set syntax=python:
# 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.
# See master.experimental/slaves.cfg for documentation.
#!/usr/bin/env python
# Copyright (c) 2012 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.
def linux():
@ -94,7 +95,7 @@ def linux():
'os': 'linux',
'version': 'lucid',
'bits': '64',
'builder': 'LinuxVideoTest',
'builder': 'LinuxLargeTests',
'hostname': 'webrtc-build-bot-se',
},
{
@ -125,6 +126,14 @@ def mac():
'builder': 'MacOS32Release',
'hostname': 'dhcp-172-28-249-167',
},
{
'master': 'WebRTC',
'os': 'mac',
'version': '10.7',
'bits': '64',
'builder': 'MacLargeTests',
'hostname': 'dhcp-172-28-249-168',
},
{
'master': 'WebRTC',
'os': 'mac',
@ -153,6 +162,14 @@ def windows():
'builder': 'Win32Release',
'hostname': 'webrtc-win2k8-2',
},
{
'master': 'WebRTC',
'os': 'win',
'version': 'win7',
'bits': '64',
'builder': 'WinLargeTests',
'hostname': 'webrtc-test-w',
},
{
'master': 'WebRTC',
'os': 'win',

View File

@ -7,7 +7,7 @@
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
__author__ = 'ivinnichenko@webrtc.org (Illya Vinnichenko)'
__author__ = 'kjellander@webrtc.org (Henrik Kjellander)'
import ntpath
import os
@ -750,6 +750,41 @@ class WebRTCMacFactory(WebRTCFactory):
descriptor='EnableMake')
self.AddCommonMakeStep('all')
def EnableTest(self, test):
"""Adds a step for running a test on Mac.
In general, this method will interpret the name as the name of a binary
in the default build output directory, except for a few special cases
which require custom command lines.
Args:
test: the test name as a string.
"""
if test == 'vie_auto_test':
# Start ManyCam before the test starts:
self.AddCommonStep(cmd=['open', '/Applications/ManyCam/ManyCam.app'],
descriptor=['Starting ManyCam'])
# TODO(phoglund): Enable the full stack test once it is completed and
# nonflaky.
cmd = (
'out/Debug/vie_auto_test --automated --gtest_filter="'
'ViEStandardIntegrationTest.*:'
'ViEVideoVerificationTest.*:'
'-ViEVideoVerificationTest.RunsFullStackWithoutErrors:'
'ViEVideoVerificationTest.RunsFileTestWithoutErrors:' # bug 524
'ViEStandardIntegrationTest.RunsRtpRtcpTestWithoutErrors" ' # bug 477
'--capture_test_ensure_resolution_alignment_in_capture_device=false')
self.AddCommonTestRunStep(test=test, cmd=cmd)
self.AddCommonStep(cmd=['killall', 'ManyCam'],
descriptor=['Stopping ManyCam'])
elif test == 'voe_auto_test':
cmd = ('out/Debug/voe_auto_test --automated '
# Disabled test until bug 527 is resolved.
'--gtest_filter=-VolumeTest.SetVolumeBeforePlayoutWorks')
self.AddCommonTestRunStep(test=test, cmd=cmd)
else:
self.AddCommonTestRunStep(test)
def AddCommonTestRunStep(self, test, extra_text=None, cmd=None):
descriptor = [test, extra_text] if extra_text else [test]
if cmd is None:
@ -790,6 +825,8 @@ class WebRTCWinFactory(WebRTCFactory):
# Must provide full path to the command since we cannot add custom paths to
# the PATH environment variable when using Chromium buildbot startup scripts.
BUILD_CMD = r'C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe'
VCAM_PROCESS_NAME = 'VCamManager'
VCAM_PATH = r'C:\Program Files (x86)\e2eSoft\VCam\VCamManager.exe'
def __init__(self, build_status_oracle, is_try_slave=False):
WebRTCFactory.__init__(self, build_status_oracle, is_try_slave)
@ -861,6 +898,38 @@ class WebRTCWinFactory(WebRTCFactory):
'/p:Configuration=Release;Platform=%s' % (self.platform)]
self.AddCommonStep(cmd, descriptor='Build(Release)')
def EnableTest(self, test):
"""Adds a step for running a test on Windows.
In general, this method will interpret the name as the name of a binary
in the default build output directory, except for a few special cases
which require custom command lines.
Args:
test: the test name as a string.
"""
if test == 'vie_auto_test':
# Start VCam before the test starts:
self.AddCommonStep(cmd=['cmd', '-c', WebRTCWinFactory.VCAM_PATH],
descriptor=['Starting VCam'])
# TODO(phoglund): Enable the full stack test once it is completed and
# nonflaky.
cmd = (
'build\\Debug\\vie_auto_test.exe --automated --gtest_filter="'
'ViEStandardIntegrationTest.*:'
'ViEVideoVerificationTest.*:'
'-ViEVideoVerificationTest.RunsFullStackWithoutErrors:'
'ViEStandardIntegrationTest.RunsRtpRtcpTestWithoutErrors" ' # bug 477
'--capture_test_ensure_resolution_alignment_in_capture_device=false')
self.AddCommonTestRunStep(test=test, cmd=cmd)
self.AddCommonStep(cmd=['tskill', WebRTCWinFactory.VCAM_PROCESS_NAME],
descriptor=['Stopping VCam'])
elif test == 'voe_auto_test':
cmd = 'build\\Debug\\voe_auto_test.exe --automated'
self.AddCommonTestRunStep(test=test, cmd=cmd)
else:
self.AddCommonTestRunStep(test)
def AddCommonTestRunStep(self, test, cmd=None):
descriptor = [test]
if self.configuration == 'Debug' or self.configuration == 'both':