File: buildbot_valgrind.sh

package info (click to toggle)
chromium-browser 41.0.2272.118-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 2,189,132 kB
  • sloc: cpp: 9,691,462; ansic: 3,341,451; python: 712,689; asm: 518,779; xml: 208,926; java: 169,820; sh: 119,353; perl: 68,907; makefile: 28,311; yacc: 13,305; objc: 11,385; tcl: 3,186; cs: 2,225; sql: 2,217; lex: 2,215; lisp: 1,349; pascal: 1,256; awk: 407; ruby: 155; sed: 53; php: 14; exp: 11
file content (91 lines) | stat: -rwxr-xr-x 2,851 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/bash
# Copyright (c) 2012 The Native Client Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# To run with a custom build of valgrind, e.g., a new release from
# valgrind.org, run this script as
#
#  buildbot/buildbot_valgrind.sh newlib \
#   memcheck_command=/usr/local/google/valgrind/bin/valgrind,--tool=memcheck
#
# NB: memcheck_test is disabled if an alternate memcheck_command is
# used, so remember to temporarily change
# tests/memcheck_test/nacl.scons if you are testing a new valgrind
# that has NaCl patches applied (or when the NaCl patches have been
# upstreamed).

# Script assumed to be run in native_client/
if [[ $(pwd) != */native_client ]]; then
  echo "ERROR: must be run in native_client!"
  exit 1
fi

if [ $# -lt 1 ]; then
  echo "USAGE: $0 newlib/glibc"
  exit 2
fi

set -x
set -e
set -u

TOOLCHAIN="$1"
shift

if [[ "$TOOLCHAIN" = glibc ]]; then
  GLIBCOPTS="--nacl_glibc"
  SDKHDRINSTALL=""
else
  GLIBCOPTS=""
  SDKHDRINSTALL="install_libpthread"
fi

echo @@@BUILD_STEP clobber@@@
rm -rf scons-out ../xcodebuild ../out \
    src/third_party/nacl_sdk/arm-newlib

echo @@@BUILD_STEP gclient_runhooks@@@
export GYP_DEFINES=target_arch=x64
gclient runhooks --force

echo @@@BUILD_STEP gyp_compile@@@
make -C .. -k -j12 V=1 BUILDTYPE=Debug

echo @@@BUILD_STEP scons_compile@@@
./scons -j 8 -k --verbose ${GLIBCOPTS} --mode=dbg-host,nacl platform=x86-64 "$@"

echo @@@BUILD_STEP memcheck@@@
./scons -k --verbose ${GLIBCOPTS} --mode=dbg-host,nacl platform=x86-64 \
    buildbot=memcheck "$@" memcheck_bot_tests

echo @@@BUILD_STEP leakcheck@@@
./scons -k --verbose ${GLIBCOPTS} --mode=dbg-host,nacl platform=x86-64 \
    buildbot=memcheck run_under_extra_args=--leak-check=full \
    "$@" run_leak_test

# Both the untrusted and trusted tsan tests started failing:
# https://code.google.com/p/nativeclient/issues/detail?id=3396
if [[ "$TOOLCHAIN" != glibc ]]; then

  echo "@@@BUILD_STEP tsan(untrusted)@@@"
  ./scons -k --verbose ${GLIBCOPTS} --mode=dbg-host,nacl platform=x86-64 \
      buildbot=tsan run_under_extra_args= "$@" tsan_bot_tests

  echo "@@@BUILD_STEP tsan(trusted)@@@"
  ./scons -k --verbose ${GLIBCOPTS} --mode=dbg-host,nacl platform=x86-64 \
      buildbot=tsan-trusted run_under_extra_args= "$@" tsan_bot_tests

  echo "@@@BUILD_STEP tsan(trusted, hybrid, RV)@@@"
  # The first RaceVerifier invocation may fail.
  ./scons -k --verbose ${GLIBCOPTS} --mode=dbg-host,nacl platform=x86-64 \
      buildbot=tsan-trusted run_under_extra_args=--hybrid,--log-file=race.log \
      "$@" tsan_bot_tests || true

  echo "== RaceVerifier 2nd run =="

  ./scons -k --verbose ${GLIBCOPTS} --mode=dbg-host,nacl platform=x86-64 \
      buildbot=tsan-trusted run_under_extra_args=--race-verifier=race.log \
      "$@" tsan_bot_tests

fi