aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/contrib/dg-cmp-results.sh
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.3/contrib/dg-cmp-results.sh')
-rwxr-xr-xgcc-4.4.3/contrib/dg-cmp-results.sh211
1 files changed, 0 insertions, 211 deletions
diff --git a/gcc-4.4.3/contrib/dg-cmp-results.sh b/gcc-4.4.3/contrib/dg-cmp-results.sh
deleted file mode 100755
index d29176954..000000000
--- a/gcc-4.4.3/contrib/dg-cmp-results.sh
+++ /dev/null
@@ -1,211 +0,0 @@
-#!/bin/bash
-# Copyright (C) 2006, 2008 Free Software Foundation
-#
-# Analyze changes in GCC DejaGNU test logs for binutils, gcc, gdb, etc.
-# Original version written in 2005 by James Lemke <jwlemke@wasabisystems.com>.
-#
-# See usage() below.
-
-usage () {
- cat <<EOF >&2
-Usage:
- dg-cmp-results.sh [-v] [-v] [-v] <variant-name> <old-file> <new-file>
- <variant-name> names the desired variant, "/" must be written as "\/".
- Use the empty string ("") for the first variant in each file.
- Output is to stdout.
- Non-verbose output is degradation info like PASS->FAIL.
- -v adds improvement info like FAIL->PASS.
- -v -v adds info like tests that are no longer run.
- -v -v -v adds info for tests that have not changed status.
- -v -v -v -v is used for debugging.
-EOF
-}
-
-verbose=0
-while test "$1" = "-v"; do
- verbose=`expr $verbose + 1`
- shift
-done
-
-if test $# -ne 3 ; then
- usage
- exit 1
-fi
-
-if test ! -f "$2"; then
- echo "unable to open $2" >&2
- exit 1
-fi
-
-if test ! -f "$3"; then
- echo "unable to open $3" >&2
- exit 1
-fi
-
-# Command differences for various platforms.
-case `uname -s` in
-Darwin|NetBSD)
- E=-E # sed
- ;;
-*)
- E=-r # sed
- ;;
-esac
-
-# sections are identified by separator lines beginning with '\t\t==='.
-# section 0 identifies run date, target, and host.
-# section 1 and subsequent contain test data for a target variant.
-# -skip to /^Running target/ and use that line to identify the variant.
-# -subsequent lines contain the result data. They begin with:
-# '(PASS|FAIL|XFAIL|XPASS|UNTESTED|UNSUPPORTED|UNRESOLVED):'
-VARIANT="$1"
-OFILE="$2"
-OBASE=`basename "$2"`
-NFILE="$3"
-NBASE=`basename "$3"`
-
-echo "dg-cmp-results.sh: Verbosity is ${verbose}, Variant is \"${VARIANT}\""
-echo
-
-header="^Running target $VARIANT"
-
-temp=`grep "$header" $OFILE`
-if test -z "$temp"; then
- echo "Error: variant \"$VARIANT\" not found in $OFILE."
- exit 1
-fi
-temp=`grep "$header" $NFILE`
-if test -z "$temp"; then
- echo "Error: variant \"$VARIANT\" not found in $NFILE."
- exit 1
-fi
-unset temp
-
-# Copy out the old file's section 0.
-echo "Older log file: $OFILE"
-sed $E -e '/^[[:space:]]+===/,$d' $OFILE
-
-# Copy out the new file's section 0.
-echo "Newer log file: $NFILE"
-sed $E -e '/^[[:space:]]+===/,$d' $NFILE
-
-# Create a temporary file from the old file's interesting section.
-sed $E -e "1,/$header/d" \
- -e '/^[[:space:]]+===/,$d' \
- -e '/^[A-Z]+:/!d' \
- -e '/^(WARNING|ERROR):/d' \
- -e 's/\r$//' \
- -e 's/^/O:/' \
- $OFILE |
- sort -s -t : -k 3b - \
- >/tmp/o$$-$OBASE
-
-# Create a temporary file from the new file's interesting section.
-sed $E -e "1,/$header/d" \
- -e '/^[[:space:]]+===/,$d' \
- -e '/^[A-Z]+:/!d' \
- -e '/^(WARNING|ERROR):/d' \
- -e 's/\r$//' \
- -e 's/^/N:/' \
- $NFILE |
- sort -s -t : -k 3b - \
- >/tmp/n$$-$NBASE
-
-# Merge the two files, then compare adjacent lines.
-# Comparison is complicated by tests that may be run multiple times.
-# If that case, we assume that the order is the same in both files.
-cat <<EOF >compare-$$.awk
-BEGIN {
- FS = ":"
- queue1 = 1; queueN = 0; status[queue1] = ""; name[queue1] = ""
- verbose = verbose + 0 # Make sure it's defined.
-}
-
-# FIFO circular queue
-function push(st, nm) {
- queueN += 1; status[queueN] = st; name[queueN] = nm
-}
-function peek() {
- result = 0
- if (queueN >= queue1) result = queue1
- return result
-}
-function drop() {
- queue1 += 1
- if (queue1 > queueN) { queue1 = 1; queueN = 0; }
-}
-
-function compare(st, nm) {
- old = peek()
- if (old == 0) {
- # This new test wasn't run last time.
- if (verbose >= 2) printf("NA->%s:%s\n", st, nm)
- }
- else {
- # Compare this new test to the first queued old one.
- if (verbose >= 4) {
- printf("Comparing two lines:\n O:%s:%s\n N:%s:%s\n",
- status[old], name[old], st, nm)
- }
- if (name[old] != nm) {
- # The old test wasn't run this time and
- # the new test wasn't run last time.
- if (verbose >= 2) {
- printf("%s->NA:%s\n", status[old], name[old])
- if (nm != "") printf("NA->%s:%s\n", st, nm)
- }
- drop()
- }
- else {
- notable = 0
- if (status[old] == st) {
- # Status of this test has not changed.
- if (verbose >= 3) printf("%s:%s\n", st, nm)
- }
- else if(status[old] == "PASS" && st == "XFAIL") {
- if (verbose >= 1) notable = 1
- }
- else if(status[old] == "PASS" || st == "FAIL") {
- # Test did pass but doesn't now
- # or didn't fail but does now.
- notable = 1
- }
- else if(st == "PASS") {
- # Test didn't pass but does now.
- if (verbose >= 1) notable = 1
- }
- else if(verbose >= 2) {
- # Miscellaneous status change.
- notable = 1
- }
- if (notable > 0) printf("%s->%s:%s\n", status[old], st, nm)
- drop()
- }
- }
-}
-
-/^O:/ {
- while (old = peek()) {
- if (name[old] == \$3) break;
- # The queued test is no longer run.
- compare("", "");
- }
- # Save this test for later comparison.
- push(\$2, \$3)
-}
-
-/^N:/ {
- compare(\$2, \$3)
-}
-
-END {
- while (old = peek()) compare("", "")
-}
-EOF
-sort -m -s -t : -k 3b /tmp/o$$-$OBASE /tmp/n$$-$NBASE |
- awk -v verbose=$verbose -f compare-$$.awk /dev/stdin
-
-# Delete the temporary files.
-rm -f compare-$$.awk /tmp/o$$-$OBASE /tmp/n$$-$NBASE
-
-exit 0