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/android-ndk
/continuous_build/build_internal/masters/master.webrtc/chromeos /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-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-1
/continuous_build/build_internal/masters/master.webrtc/linux-slave-2 /continuous_build/build_internal/masters/master.webrtc/linux-slave-2
/continuous_build/build_internal/masters/master.webrtc/linux-slave-4 /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/linux-valgrind
/continuous_build/build_internal/masters/master.webrtc/LinuxChrome /continuous_build/build_internal/masters/master.webrtc/LinuxChrome
/continuous_build/build_internal/masters/master.webrtc/LinuxChromeBloat /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-2
/continuous_build/build_internal/masters/master.webrtc/mac-slave-3 /continuous_build/build_internal/masters/master.webrtc/mac-slave-3
/continuous_build/build_internal/masters/master.webrtc/MacChrome /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-dbg
/continuous_build/build_internal/masters/master.webrtc/win-32-release /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/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-trybot
/continuous_build/build_internal/masters/master.tryserver.webrtc/android-ndk-trybot /continuous_build/build_internal/masters/master.tryserver.webrtc/android-ndk-trybot
/continuous_build/build_internal/masters/master.tryserver.webrtc/linux-trybot-1 /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/public_html
/continuous_build/build_internal/masters/master.tryserver.webrtc/win-trybot-1 /continuous_build/build_internal/masters/master.tryserver.webrtc/win-trybot-1
/continuous_build/build_internal/masters/master.tryserver.webrtc/win-trybot-2 /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', 'LinuxClang',
'LinuxValgrind', 'LinuxValgrind',
'Linux64DBG-GCC4.6', 'Linux64DBG-GCC4.6',
'LinuxVideoTest', 'LinuxLargeTests',
'MacLargeTests',
'WinLargeTests',
'Android', 'Android',
'AndroidNDK', 'AndroidNDK',
'ChromeOS', 'ChromeOS',
@ -106,9 +108,9 @@ NORMAL_TESTS = {
# Physical machine tests run on hardware with audio device and webcam present. # Physical machine tests run on hardware with audio device and webcam present.
PHYSICAL_MACHINE_TESTS = { PHYSICAL_MACHINE_TESTS = {
# Test name Linux Mac Windows # 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), '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), '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 # 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. # under tooling. Not all tests will though since that would be too slow.
linux_factory_video = utils.WebRTCLinuxFactory( linux_factory_large_tests = utils.WebRTCLinuxFactory(
utils.BuildStatusOracle('linux_factory_video'), utils.BuildStatusOracle('linux_factory_large_tests'),
custom_deps_list=VALGRIND_DEPS_LIST) custom_deps_list=VALGRIND_DEPS_LIST)
linux_factory_video.EnableCoverage( linux_factory_large_tests.EnableCoverage(
coverage_url='http://webrtc-build-bot-se.lul/coverage/') coverage_url='http://webrtc-build-bot-se.lul/coverage/')
linux_factory_video.EnableBuild(compile_for_memory_tooling=True) linux_factory_large_tests.EnableBuild(compile_for_memory_tooling=True)
linux_factory_video.EnableTests(linux_physical_machine_tests) linux_factory_large_tests.EnableTests(linux_physical_machine_tests)
chromeos_factory = utils.WebRTCLinuxFactory( chromeos_factory = utils.WebRTCLinuxFactory(
utils.BuildStatusOracle('chromeos_factory')) 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.EnableBuild(build_type='both', release=True)
mac_factory_32_release.EnableTests(mac_normal_tests) 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 # Windows
win_factory_32_Debug = utils.WebRTCWinFactory( win_factory_32_Debug = utils.WebRTCWinFactory(
utils.BuildStatusOracle('win_factory_32_debug')) 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.EnableBuild(configuration='Release')
win_factory_32_Release.EnableTests(windows_normal_tests) 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 ####### BUILDERS
linux_builder_64_debug = { linux_builder_64_debug = {
'name': 'Linux64DBG', 'name': 'Linux64DBG',
@ -262,6 +274,12 @@ mac_builder_32_release = {
'builddir': 'mac-slave-2', 'builddir': 'mac-slave-2',
'factory': mac_factory_32_release, '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 = { chromeos_builder = {
'name': 'ChromeOS', 'name': 'ChromeOS',
'slavename': 'webrtc-cb-linux-slave-3', 'slavename': 'webrtc-cb-linux-slave-3',
@ -280,11 +298,17 @@ win_builder_32_release = {
'builddir': 'win-32-release', 'builddir': 'win-32-release',
'factory': win_factory_32_Release, 'factory': win_factory_32_Release,
} }
linux_builder_video = { win_builder_large_tests = {
'name': 'LinuxVideoTest', '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', 'slavename': 'webrtc-build-bot-se',
'builddir': 'video', 'builddir': 'linux-large-tests',
'factory': linux_factory_video, 'factory': linux_factory_large_tests,
} }
linux_builder_clang = { linux_builder_clang = {
'name': 'LinuxClang', 'name': 'LinuxClang',
@ -328,7 +352,9 @@ c['builders'] = [
linux_builder_clang, linux_builder_clang,
linux_builder_valgrind, linux_builder_valgrind,
linux_builder_gcc_4_6, 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_1,
android_builder_ndk, android_builder_ndk,
chromeos_builder, chromeos_builder,

View File

@ -1,10 +1,11 @@
# -*- python -*- #!/usr/bin/env python
# ex: set syntax=python: # Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
# Copyright (c) 2012 The Chromium Authors. All rights reserved. #
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license
# found in the LICENSE file. # that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# See master.experimental/slaves.cfg for documentation. # in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
def linux(): def linux():
@ -94,7 +95,7 @@ def linux():
'os': 'linux', 'os': 'linux',
'version': 'lucid', 'version': 'lucid',
'bits': '64', 'bits': '64',
'builder': 'LinuxVideoTest', 'builder': 'LinuxLargeTests',
'hostname': 'webrtc-build-bot-se', 'hostname': 'webrtc-build-bot-se',
}, },
{ {
@ -125,6 +126,14 @@ def mac():
'builder': 'MacOS32Release', 'builder': 'MacOS32Release',
'hostname': 'dhcp-172-28-249-167', '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', 'master': 'WebRTC',
'os': 'mac', 'os': 'mac',
@ -153,6 +162,14 @@ def windows():
'builder': 'Win32Release', 'builder': 'Win32Release',
'hostname': 'webrtc-win2k8-2', 'hostname': 'webrtc-win2k8-2',
}, },
{
'master': 'WebRTC',
'os': 'win',
'version': 'win7',
'bits': '64',
'builder': 'WinLargeTests',
'hostname': 'webrtc-test-w',
},
{ {
'master': 'WebRTC', 'master': 'WebRTC',
'os': 'win', 'os': 'win',

View File

@ -7,7 +7,7 @@
# in the file PATENTS. All contributing project authors may # in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree. # 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 ntpath
import os import os
@ -750,6 +750,41 @@ class WebRTCMacFactory(WebRTCFactory):
descriptor='EnableMake') descriptor='EnableMake')
self.AddCommonMakeStep('all') 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): def AddCommonTestRunStep(self, test, extra_text=None, cmd=None):
descriptor = [test, extra_text] if extra_text else [test] descriptor = [test, extra_text] if extra_text else [test]
if cmd is None: 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 # Must provide full path to the command since we cannot add custom paths to
# the PATH environment variable when using Chromium buildbot startup scripts. # the PATH environment variable when using Chromium buildbot startup scripts.
BUILD_CMD = r'C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe' 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): def __init__(self, build_status_oracle, is_try_slave=False):
WebRTCFactory.__init__(self, build_status_oracle, is_try_slave) WebRTCFactory.__init__(self, build_status_oracle, is_try_slave)
@ -861,6 +898,38 @@ class WebRTCWinFactory(WebRTCFactory):
'/p:Configuration=Release;Platform=%s' % (self.platform)] '/p:Configuration=Release;Platform=%s' % (self.platform)]
self.AddCommonStep(cmd, descriptor='Build(Release)') 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): def AddCommonTestRunStep(self, test, cmd=None):
descriptor = [test] descriptor = [test]
if self.configuration == 'Debug' or self.configuration == 'both': if self.configuration == 'Debug' or self.configuration == 'both':