summaryrefslogtreecommitdiffstats
path: root/chromium/tools/valgrind/regrind.sh
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/tools/valgrind/regrind.sh')
-rwxr-xr-xchromium/tools/valgrind/regrind.sh138
1 files changed, 0 insertions, 138 deletions
diff --git a/chromium/tools/valgrind/regrind.sh b/chromium/tools/valgrind/regrind.sh
deleted file mode 100755
index 0f90ba737f0..00000000000
--- a/chromium/tools/valgrind/regrind.sh
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/bin/sh
-# 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.
-
-# Scape errors from the valgrind bots, reproduce them locally,
-# save logs as regrind-TESTNAME.log, and display any errors found.
-# Also save files regrind-failed.txt listing failed tests,
-# and regrind-failed-map.txt showing which bot URLs have which failed tests
-# (handy when filing bugs).
-#
-# Only scrapes linux layout bot at the moment.
-# TODO: handle layout tests that don't have obvious path to test file
-# TODO: extend script to handle more kinds of errors and more tests
-
-# where the valgrind layout bot results live
-LAYOUT_URL="http://build.chromium.org/p/chromium.memory.fyi/builders/Webkit%20Linux%20(valgrind%20layout)"
-# how many builds back to check
-LAYOUT_COUNT=250
-
-# regexp to match valgrind errors
-PATTERN="are definitely|uninitialised|Unhandled exception|\
-Invalid read|Invalid write|Invalid free|Source and desti|Mismatched free|\
-unaddressable byte|vex x86|the 'impossible' happened|\
-valgrind:.*: Assertion.*failed|VALGRIND INTERNAL ERROR"
-
-usage() {
- echo "Usage: regrind.sh [--noscrape][--norepro][--keep]"
- echo "--noscrape: don't scrape bots, just use old regrind-failed.txt"
- echo "--norepro: don't reproduce locally"
- echo "--keep: keep temp files"
- exit 1
-}
-
-# Given a log on stdin, list all the tests that failed in that log.
-layout_list_failed_tests() {
- grep "Command:.*LayoutTests" |
- sed 's/<.*>//' |
- sed 's/.*LayoutTests/LayoutTests/' |
- sort -u |
- tr -d '\015'
-}
-
-# Generate a list of failed tests in regrind-failed.txt by scraping bot.
-# Scrape most recent first, so if user interrupts, he is left with fresh-ish data.
-scrape_layout() {
- rm -f regrind-*.tmp* regrind-failed.txt regrind-failed-map.txt
- touch regrind-failed.txt
-
- # First, grab the number of the latest complete build.
- wget -q -O regrind-builds.html "$LAYOUT_URL"
- latest=`grep "<li><font .*" < regrind-builds.html | head -1 | sed 's/.*#//;s/<.*//'`
-
- echo "Fetching $LAYOUT_COUNT logs from bot"
- # Scrape the desired number of runs (150 is about one cycle)
- first=`expr $latest - $LAYOUT_COUNT`
- i=$latest
- while test $i -ge $first
- do
- url="$LAYOUT_URL/builds/$i/steps/valgrind%20test:%20layout/logs/stdio"
- wget -q -O regrind-$i.tmp "$url"
- # Did any tests fail in this file?
- layout_list_failed_tests < regrind-$i.tmp > regrind-$i.tmp.failed
- if test -s regrind-$i.tmp.failed
- then
- # Yes. Log them to stdout,
- echo "$url"
- cat regrind-$i.tmp.failed
- # to the table regrind-failed-map.txt,
- cat regrind-$i.tmp.failed | sed "s,^,$url ," >> regrind-failed-map.txt
- # and, if not already there, to regrind-failed.txt.
- for test in `cat regrind-$i.tmp.failed`
- do
- fgrep "$test" regrind-failed.txt > /dev/null 2>&1 || echo "$test" >> regrind-failed.txt
- done
- else
- rm regrind-$i.tmp.failed
- fi
- # Sleep 1/3 sec per fetch
- case $i in
- *[036]) sleep 1;;
- esac
- i=`expr $i - 1`
- done
-
- # Finally, munge the logs to identify tests that probably failed.
- sh c.sh -l regrind-*.tmp > regrind-errfiles.txt
- cat `cat regrind-errfiles.txt` | layout_list_failed_tests > regrind-failed.txt
-}
-
-# Run the tests identified in regrind-failed.txt locally under valgrind.
-# Save logs in regrind-$TESTNAME.log.
-repro_layout() {
- echo Running `wc -l < regrind-failed.txt` layout tests.
- for test in `cat regrind-failed.txt`
- do
- logname="`echo $test | tr / _`"
- echo "sh tools/valgrind/valgrind_webkit_tests.sh $test"
- sh tools/valgrind/valgrind_webkit_tests.sh "$test" > regrind-"$logname".log 2>&1
- egrep "$PATTERN" < regrind-"$logname".log | sed 's/==.*==//'
- done
-}
-
-do_repro=1
-do_scrape=1
-do_cleanup=1
-while test ! -z "$1"
-do
- case "$1" in
- --noscrape) do_scrape=0;;
- --norepro) do_repro=0;;
- --keep) do_cleanup=0;;
- *) usage;;
- esac
- shift
-done
-
-echo "WARNING: This script is not supported and may be out of date"
-
-if test $do_scrape = 0 && test $do_repro = 0
-then
- usage
-fi
-
-if test $do_scrape = 1
-then
- scrape_layout
-fi
-
-if test $do_repro = 1
-then
- repro_layout
-fi
-
-if test $do_cleanup = 1
-then
- rm -f regrind-errfiles.txt regrind-*.tmp*
-fi