summaryrefslogtreecommitdiff
path: root/scripts/merge-test-results.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/merge-test-results.sh')
-rwxr-xr-xscripts/merge-test-results.sh61
1 files changed, 61 insertions, 0 deletions
diff --git a/scripts/merge-test-results.sh b/scripts/merge-test-results.sh
new file mode 100755
index 0000000000..6255e242b1
--- /dev/null
+++ b/scripts/merge-test-results.sh
@@ -0,0 +1,61 @@
+#! /bin/sh
+# Merge test results of individual tests or subdirectories.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <http://www.gnu.org/licenses/>.
+
+# usage: merge-test-results.sh -s objpfx subdir test-name...
+# (subdirectory tests; empty subdir at top level), or
+# merge-test-results.sh -t objpfx subdir-file-name subdir...
+# (top-level merge)
+
+set -e
+
+type=$1
+objpfx=$2
+shift 2
+
+case $type in
+ -s)
+ subdir=$1
+ shift
+ subdir=${subdir:+$subdir/}
+ for t in "$@"; do
+ if [ -s "$objpfx$t.test-result" ]; then
+ head -n1 "$objpfx$t.test-result"
+ else
+ echo "UNRESOLVED: $subdir$t"
+ fi
+ done
+ ;;
+
+ -t)
+ subdir_file_name=$1
+ shift
+ for d in "$@"; do
+ if [ -f "$objpfx$d/$subdir_file_name" ]; then
+ cat "$objpfx$d/$subdir_file_name"
+ else
+ echo "ERROR: test results for $d directory missing"
+ fi
+ done
+ ;;
+
+ *)
+ echo "unknown type $type" >&2
+ exit 1
+ ;;
+esac