]> git.ipfire.org Git - thirdparty/glibc.git/blob - scripts/merge-test-results.sh
1e236db4a759ea9acb14a72c853bb070c6d0e132
[thirdparty/glibc.git] / scripts / merge-test-results.sh
1 #!/bin/sh
2 # Merge test results of individual tests or subdirectories.
3 # Copyright (C) 2014-2020 Free Software Foundation, Inc.
4 # This file is part of the GNU C Library.
5
6 # The GNU C Library is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU Lesser General Public
8 # License as published by the Free Software Foundation; either
9 # version 2.1 of the License, or (at your option) any later version.
10
11 # The GNU C Library is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 # Lesser General Public License for more details.
15
16 # You should have received a copy of the GNU Lesser General Public
17 # License along with the GNU C Library; if not, see
18 # <https://www.gnu.org/licenses/>.
19
20 # usage: merge-test-results.sh -s objpfx subdir test-name...
21 # (subdirectory tests; empty subdir at top level), or
22 # merge-test-results.sh -t objpfx subdir-file-name subdir...
23 # (top-level merge)
24
25 set -e
26
27 type=$1
28 objpfx=$2
29 shift 2
30
31 case $type in
32 -s)
33 subdir=$1
34 shift
35 subdir=${subdir:+$subdir/}
36 for t in "$@"; do
37 if [ -s "$objpfx$t.test-result" ]; then
38 # This loop is called thousands of times even when there's
39 # nothing to do. Avoid using non-built-in commands (like
40 # /bin/head) where possible. We assume "echo" is typically a
41 # built-in.
42 IFS= read -r line < "$objpfx$t.test-result"
43 echo "$line"
44 else
45 echo "UNRESOLVED: $subdir$t"
46 fi
47 done
48 ;;
49
50 -t)
51 subdir_file_name=$1
52 shift
53 for d in "$@"; do
54 if [ -f "$objpfx$d/$subdir_file_name" ]; then
55 cat "$objpfx$d/$subdir_file_name"
56 else
57 echo "ERROR: test results for $d directory missing"
58 fi
59 done
60 ;;
61
62 *)
63 echo "unknown type $type" >&2
64 exit 1
65 ;;
66 esac