Added Valgrind buildbot slave.
Renamed and reordered some of the bots in the configuration. BUG= TEST=Tested on personal build master. Review URL: http://webrtc-codereview.appspot.com/389001 git-svn-id: http://webrtc.googlecode.com/svn/trunk@1625 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
78088c2f36
commit
646fa2c5f2
@ -37,6 +37,7 @@ c['slaves'] = [BuildSlave("android", "pass", max_builds=1),
|
|||||||
BuildSlave("linux-slave-4", "pass", max_builds=1),
|
BuildSlave("linux-slave-4", "pass", max_builds=1),
|
||||||
BuildSlave("linux-slave-5", "pass", max_builds=1),
|
BuildSlave("linux-slave-5", "pass", max_builds=1),
|
||||||
BuildSlave("linux-slave-gcc-4.6", "pass", max_builds=1),
|
BuildSlave("linux-slave-gcc-4.6", "pass", max_builds=1),
|
||||||
|
BuildSlave("linux-valgrind", "pass", max_builds=1),
|
||||||
BuildSlave("linux_video", "pass", max_builds=1),
|
BuildSlave("linux_video", "pass", max_builds=1),
|
||||||
BuildSlave("mac-slave-1", "pass", max_builds=1),
|
BuildSlave("mac-slave-1", "pass", max_builds=1),
|
||||||
BuildSlave("win-slave", "pass", max_builds=1),
|
BuildSlave("win-slave", "pass", max_builds=1),
|
||||||
@ -70,15 +71,17 @@ webrtc_scheduler = Scheduler(name="all", branch=None, treeStableTimer=5*60,
|
|||||||
builderNames=["Win32Debug",
|
builderNames=["Win32Debug",
|
||||||
"Win32Release",
|
"Win32Release",
|
||||||
"MacOS",
|
"MacOS",
|
||||||
"ChromeOS",
|
"Linux32DBG",
|
||||||
"LinuxCLANG",
|
"Linux32Release",
|
||||||
"Linux64bitDBG",
|
"Linux64DBG",
|
||||||
"Linux32bitRelease",
|
"Linux64Release",
|
||||||
"Linux64bitRelease",
|
"LinuxClang",
|
||||||
"Linux32bitDBG",
|
"LinuxValgrind",
|
||||||
"Linux64bitDBG-GCC4.6",
|
"Linux64DBG-GCC4.6",
|
||||||
|
"LinuxVideoTest",
|
||||||
"Android",
|
"Android",
|
||||||
"LinuxVideoTest"])
|
"ChromeOS"
|
||||||
|
])
|
||||||
c['schedulers'] = [webrtc_scheduler]
|
c['schedulers'] = [webrtc_scheduler]
|
||||||
|
|
||||||
|
|
||||||
@ -132,8 +135,9 @@ NORMAL_TESTS = {
|
|||||||
"test_support_unittests": (True, True, True),
|
"test_support_unittests": (True, True, True),
|
||||||
"udp_transport_unittests": (True, True, True),
|
"udp_transport_unittests": (True, True, True),
|
||||||
"vad_unittests": (True, True, True),
|
"vad_unittests": (True, True, True),
|
||||||
"video_codecs_test_framework_integrationtests": (True, True, True),
|
# Below: Issue 262 and 260
|
||||||
"video_codecs_test_framework_unittests": (False, False, False), # Issue 260
|
"video_codecs_test_framework_integrationtests": (False, False, False),
|
||||||
|
"video_codecs_test_framework_unittests": (False, False, False),
|
||||||
"video_coding_unittests": (True, True, False), # Issue 259
|
"video_coding_unittests": (True, True, False), # Issue 259
|
||||||
"video_engine_core_unittests": (True, True, True),
|
"video_engine_core_unittests": (True, True, True),
|
||||||
"video_processing_unittests": (True, True, True),
|
"video_processing_unittests": (True, True, True),
|
||||||
@ -148,6 +152,13 @@ PHYSICAL_MACHINE_TESTS = {
|
|||||||
"voe_auto_test": (True, False, False),
|
"voe_auto_test": (True, False, False),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VALGRIND_DISABLED_TESTS = [
|
||||||
|
"audio_coding_module_test", # Issue 270
|
||||||
|
"audioproc_unittest", # Fixed point mode fails; issue 272
|
||||||
|
"rtp_rtcp_unittests", # Issue 268
|
||||||
|
"test_fec", # Too slow at the moment; issue 269
|
||||||
|
]
|
||||||
|
|
||||||
linux_normal_tests = utils.GetEnabledTests(NORMAL_TESTS, "Linux")
|
linux_normal_tests = utils.GetEnabledTests(NORMAL_TESTS, "Linux")
|
||||||
mac_normal_tests = utils.GetEnabledTests(NORMAL_TESTS, "Mac")
|
mac_normal_tests = utils.GetEnabledTests(NORMAL_TESTS, "Mac")
|
||||||
windows_normal_tests = utils.GetEnabledTests(NORMAL_TESTS, "Windows")
|
windows_normal_tests = utils.GetEnabledTests(NORMAL_TESTS, "Windows")
|
||||||
@ -192,7 +203,14 @@ linux_clang = utils.WebRTCLinuxFactory()
|
|||||||
linux_clang.EnableBuild(clang=True)
|
linux_clang.EnableBuild(clang=True)
|
||||||
linux_clang.EnableTests(linux_normal_tests)
|
linux_clang.EnableTests(linux_normal_tests)
|
||||||
|
|
||||||
############# Mac Builders #######################################
|
linux_valgrind = utils.WebRTCLinuxFactory(enable_valgrind=True)
|
||||||
|
linux_valgrind.EnableBuild(release=True)
|
||||||
|
# Filter out disabled Valgrind tests:
|
||||||
|
valgrind_tests = filter(lambda test: test not in VALGRIND_DISABLED_TESTS,
|
||||||
|
linux_normal_tests)
|
||||||
|
linux_valgrind.EnableTests(valgrind_tests)
|
||||||
|
|
||||||
|
############## Mac Builders #######################################
|
||||||
mac_factory = utils.WebRTCMacFactory()
|
mac_factory = utils.WebRTCMacFactory()
|
||||||
mac_factory.EnableBuild(build_type="both")
|
mac_factory.EnableBuild(build_type="both")
|
||||||
mac_factory.EnableTests(mac_normal_tests)
|
mac_factory.EnableTests(mac_normal_tests)
|
||||||
@ -209,31 +227,31 @@ win_factory_32_Release.EnableTests(windows_normal_tests)
|
|||||||
android_factory = utils.WebRTCAndroidFactory()
|
android_factory = utils.WebRTCAndroidFactory()
|
||||||
android_factory.EnableBuild(product="toro")
|
android_factory.EnableBuild(product="toro")
|
||||||
|
|
||||||
linux_builder_1 = {
|
linux_builder_64_debug = {
|
||||||
'name': "Linux64bitDBG",
|
'name': "Linux64DBG",
|
||||||
'slavename': "linux-slave-1",
|
'slavename': "linux-slave-1",
|
||||||
'builddir': "linux-slave-1",
|
'builddir': "linux-slave-1",
|
||||||
'factory': linux_factory_64_dbg,
|
'factory': linux_factory_64_dbg,
|
||||||
}
|
}
|
||||||
linux_builder_2 = {
|
linux_builder_32_release = {
|
||||||
'name': "Linux32bitRelease",
|
'name': "Linux32Release",
|
||||||
'slavename': "linux-slave-2",
|
'slavename': "linux-slave-2",
|
||||||
'builddir': "linux-slave-2",
|
'builddir': "linux-slave-2",
|
||||||
'factory': linux_factory_32_release,
|
'factory': linux_factory_32_release,
|
||||||
}
|
}
|
||||||
linux_builder_3 = {
|
linux_builder_64_release = {
|
||||||
'name': "Linux64bitRelease",
|
'name': "Linux64Release",
|
||||||
'slavename': "linux-slave-5",
|
'slavename': "linux-slave-5",
|
||||||
'builddir': "linux-slave-5",
|
'builddir': "linux-slave-5",
|
||||||
'factory': linux_factory_64_release,
|
'factory': linux_factory_64_release,
|
||||||
}
|
}
|
||||||
linux_builder_4 = {
|
linux_builder_32_debug = {
|
||||||
'name': "Linux32bitDBG",
|
'name': "Linux32DBG",
|
||||||
'slavename': "linux-slave-4",
|
'slavename': "linux-slave-4",
|
||||||
'builddir': "linux-slave-4",
|
'builddir': "linux-slave-4",
|
||||||
'factory': linux_factory_32_dbg,
|
'factory': linux_factory_32_dbg,
|
||||||
}
|
}
|
||||||
mac_builder_1 = {
|
mac_builder_32_debug = {
|
||||||
'name': "MacOS",
|
'name': "MacOS",
|
||||||
'slavename': "mac-slave-1",
|
'slavename': "mac-slave-1",
|
||||||
'builddir': "mac-slave-1",
|
'builddir': "mac-slave-1",
|
||||||
@ -245,30 +263,36 @@ chromeos_builder = {
|
|||||||
'builddir': "chromeos",
|
'builddir': "chromeos",
|
||||||
'factory': chromeos_factory,
|
'factory': chromeos_factory,
|
||||||
}
|
}
|
||||||
win_builder_1 = {
|
win_builder_32_debug = {
|
||||||
'name': "Win32Debug",
|
'name': "Win32Debug",
|
||||||
'slavename': "win-slave",
|
'slavename': "win-slave",
|
||||||
'builddir': "win-32-dbg",
|
'builddir': "win-32-dbg",
|
||||||
'factory': win_factory_32_Debug,
|
'factory': win_factory_32_Debug,
|
||||||
}
|
}
|
||||||
win_builder_2 = {
|
win_builder_32_release = {
|
||||||
'name': "Win32Release",
|
'name': "Win32Release",
|
||||||
'slavename': "win-slave32",
|
'slavename': "win-slave32",
|
||||||
'builddir': "win-32-release",
|
'builddir': "win-32-release",
|
||||||
'factory': win_factory_32_Release,
|
'factory': win_factory_32_Release,
|
||||||
}
|
}
|
||||||
linux_video_builder = {
|
linux_builder_video = {
|
||||||
'name': "LinuxVideoTest",
|
'name': "LinuxVideoTest",
|
||||||
'slavename': "linux_video",
|
'slavename': "linux_video",
|
||||||
'builddir': "video",
|
'builddir': "video",
|
||||||
'factory': linux_factory_video,
|
'factory': linux_factory_video,
|
||||||
}
|
}
|
||||||
linux_clang_builder = {
|
linux_builder_clang = {
|
||||||
'name': "LinuxCLANG",
|
'name': "LinuxClang",
|
||||||
'slavename': "linux-clang",
|
'slavename': "linux-clang",
|
||||||
'builddir': "linux-clang",
|
'builddir': "linux-clang",
|
||||||
'factory': linux_clang,
|
'factory': linux_clang,
|
||||||
}
|
}
|
||||||
|
linux_builder_valgrind = {
|
||||||
|
'name': "LinuxValgrind",
|
||||||
|
'slavename': "linux-valgrind",
|
||||||
|
'builddir': "linux-valgrind",
|
||||||
|
'factory': linux_valgrind,
|
||||||
|
}
|
||||||
android_builder_1 = {
|
android_builder_1 = {
|
||||||
'name': "Android",
|
'name': "Android",
|
||||||
'slavename': "android",
|
'slavename': "android",
|
||||||
@ -276,16 +300,26 @@ android_builder_1 = {
|
|||||||
'factory': android_factory,
|
'factory': android_factory,
|
||||||
}
|
}
|
||||||
linux_builder_gcc_4_6 = {
|
linux_builder_gcc_4_6 = {
|
||||||
'name': "Linux64bitDBG-GCC4.6",
|
'name': "Linux64DBG-GCC4.6",
|
||||||
'slavename': "linux-slave-gcc-4.6",
|
'slavename': "linux-slave-gcc-4.6",
|
||||||
'builddir': "linux-slave-gcc-4.6",
|
'builddir': "linux-slave-gcc-4.6",
|
||||||
'factory': linux_factory_64_dbg_no_coverage,
|
'factory': linux_factory_64_dbg_no_coverage,
|
||||||
}
|
}
|
||||||
c['builders'] = [win_builder_1, win_builder_2, mac_builder_1, chromeos_builder,
|
c['builders'] = [
|
||||||
linux_builder_1, linux_clang_builder, linux_builder_2,
|
win_builder_32_debug,
|
||||||
linux_builder_3, linux_builder_4, android_builder_1,
|
win_builder_32_release,
|
||||||
linux_video_builder, linux_builder_gcc_4_6]
|
mac_builder_32_debug,
|
||||||
|
linux_builder_32_debug,
|
||||||
|
linux_builder_32_release,
|
||||||
|
linux_builder_64_release,
|
||||||
|
linux_builder_64_debug,
|
||||||
|
linux_builder_clang,
|
||||||
|
linux_builder_valgrind,
|
||||||
|
linux_builder_gcc_4_6,
|
||||||
|
linux_builder_video,
|
||||||
|
android_builder_1,
|
||||||
|
chromeos_builder,
|
||||||
|
]
|
||||||
|
|
||||||
####### STATUS TARGETS
|
####### STATUS TARGETS
|
||||||
|
|
||||||
|
@ -22,17 +22,50 @@ import sys
|
|||||||
SUPPORTED_PLATFORMS = ("Linux", "Mac", "Windows")
|
SUPPORTED_PLATFORMS = ("Linux", "Mac", "Windows")
|
||||||
|
|
||||||
SVN_LOCATION = "http://webrtc.googlecode.com/svn/trunk"
|
SVN_LOCATION = "http://webrtc.googlecode.com/svn/trunk"
|
||||||
|
VALGRIND_CMD = ["tools/valgrind-webrtc/webrtc_tests.sh", "-t", "cmdline"]
|
||||||
|
|
||||||
|
# Copied from Chromium's
|
||||||
|
# trunk/tools/build/scripts/master/factory/chromium_factory.py
|
||||||
|
# but converted to a list since we set defines instead of using an environment
|
||||||
|
# variable.
|
||||||
|
#
|
||||||
|
# On valgrind bots, override the optimizer settings so we don't inline too
|
||||||
|
# much and make the stacks harder to figure out. Use the same settings
|
||||||
|
# on all buildbot masters to make it easier to move bots.
|
||||||
|
MEMORY_TOOLS_GYP_DEFINES = [
|
||||||
|
# GCC flags
|
||||||
|
'mac_debug_optimization=1 ',
|
||||||
|
'mac_release_optimization=1 ',
|
||||||
|
'release_optimize=1 ',
|
||||||
|
'no_gc_sections=1 ',
|
||||||
|
'debug_extra_cflags="-g -fno-inline -fno-omit-frame-pointer '
|
||||||
|
'-fno-builtin -fno-optimize-sibling-calls" ',
|
||||||
|
'release_extra_cflags="-g -fno-inline -fno-omit-frame-pointer '
|
||||||
|
'-fno-builtin -fno-optimize-sibling-calls" ',
|
||||||
|
# MSVS flags
|
||||||
|
'win_debug_RuntimeChecks=0 ',
|
||||||
|
'win_debug_disable_iterator_debugging=1 ',
|
||||||
|
'win_debug_Optimization=1 ',
|
||||||
|
'win_debug_InlineFunctionExpansion=0 ',
|
||||||
|
'win_release_InlineFunctionExpansion=0 ',
|
||||||
|
'win_release_OmitFramePointers=0 ',
|
||||||
|
|
||||||
|
'linux_use_tcmalloc=1 ',
|
||||||
|
'release_valgrind_build=1 ',
|
||||||
|
'werror= ',
|
||||||
|
]
|
||||||
|
|
||||||
class WebRTCFactory(factory.BuildFactory):
|
class WebRTCFactory(factory.BuildFactory):
|
||||||
"""A Build Factory affected by properties."""
|
"""A Build Factory affected by properties."""
|
||||||
|
|
||||||
def __init__(self, build_factory_properties=None, steps=None,
|
def __init__(self, build_factory_properties=None, steps=None,
|
||||||
enable_coverage=False, account=None):
|
enable_coverage=False, enable_valgrind=False, account=None):
|
||||||
factory.BuildFactory.__init__(self, steps)
|
factory.BuildFactory.__init__(self, steps)
|
||||||
self.properties = properties.Properties()
|
self.properties = properties.Properties()
|
||||||
self.enable_build = False
|
self.enable_build = False
|
||||||
self.force_sync = False
|
self.force_sync = False
|
||||||
self.enable_coverage = enable_coverage
|
self.enable_coverage = enable_coverage
|
||||||
|
self.enable_valgrind = enable_valgrind
|
||||||
self.gyp_params = []
|
self.gyp_params = []
|
||||||
self.account = account
|
self.account = account
|
||||||
self.coverage_dir = ""
|
self.coverage_dir = ""
|
||||||
@ -217,9 +250,9 @@ class WebRTCLinuxFactory(WebRTCFactory):
|
|||||||
"""A Build Factory affected by properties."""
|
"""A Build Factory affected by properties."""
|
||||||
|
|
||||||
def __init__(self, build_factory_properties=None, steps=None,
|
def __init__(self, build_factory_properties=None, steps=None,
|
||||||
enable_coverage=False, account=None):
|
enable_coverage=False, enable_valgrind=False, account=None):
|
||||||
WebRTCFactory.__init__(self, build_factory_properties, steps,
|
WebRTCFactory.__init__(self, build_factory_properties, steps,
|
||||||
enable_coverage, account)
|
enable_coverage, enable_valgrind, account)
|
||||||
|
|
||||||
def EnableBuild(self, force_sync=False, release=False, build32=False,
|
def EnableBuild(self, force_sync=False, release=False, build32=False,
|
||||||
chrome_os=False, clang=False):
|
chrome_os=False, clang=False):
|
||||||
@ -231,6 +264,14 @@ class WebRTCLinuxFactory(WebRTCFactory):
|
|||||||
"""Linux specific Build"""
|
"""Linux specific Build"""
|
||||||
self.release = release
|
self.release = release
|
||||||
self.AddCommonStep(["rm", "-rf", "trunk"], descriptor="Cleanup")
|
self.AddCommonStep(["rm", "-rf", "trunk"], descriptor="Cleanup")
|
||||||
|
# Valgrind bots need special GYP defines to enable memory profiling
|
||||||
|
# friendly compilation. They already has a custom .gclient
|
||||||
|
# configuration file created so they don't need one being
|
||||||
|
# generated like the other bots.
|
||||||
|
if self.enable_valgrind:
|
||||||
|
for gyp_define in MEMORY_TOOLS_GYP_DEFINES:
|
||||||
|
self.gyp_params.append("-D" + gyp_define)
|
||||||
|
else:
|
||||||
self.AddCommonStep(["gclient", "config", SVN_LOCATION],
|
self.AddCommonStep(["gclient", "config", SVN_LOCATION],
|
||||||
descriptor="gclient_config")
|
descriptor="gclient_config")
|
||||||
|
|
||||||
@ -263,6 +304,8 @@ class WebRTCLinuxFactory(WebRTCFactory):
|
|||||||
test_descriptor = [test, descriptor]
|
test_descriptor = [test, descriptor]
|
||||||
if cmd is None:
|
if cmd is None:
|
||||||
cmd = ["out/%s/%s" % (test_folder, test)]
|
cmd = ["out/%s/%s" % (test_folder, test)]
|
||||||
|
if self.enable_valgrind:
|
||||||
|
cmd = VALGRIND_CMD + cmd
|
||||||
self.addStep(shell.ShellCommand(command=cmd,
|
self.addStep(shell.ShellCommand(command=cmd,
|
||||||
workdir=workdir, description=["Running"]+test_descriptor,
|
workdir=workdir, description=["Running"]+test_descriptor,
|
||||||
descriptionDone=test_descriptor+["finished"],
|
descriptionDone=test_descriptor+["finished"],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user