Mercurial > hg > CbC > CbC_gcc
annotate contrib/test_summary @ 55:77e2b8dfacca gcc-4.4.5
update it from 4.4.3 to 4.5.0
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2010 23:39:51 +0900 |
parents | 58ad6c70ea60 |
children | f6334be47118 |
rev | line source |
---|---|
0 | 1 #! /bin/sh |
2 | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
3 # (C) 1998, 1999, 2000, 2002, 2003, 2004, 2007, 2009 |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
4 # Free Software Foundation |
0 | 5 # Originally by Alexandre Oliva <oliva@dcc.unicamp.br> |
6 | |
7 # This script is Free Software, and it can be copied, distributed and | |
8 # modified as defined in the GNU General Public License. A copy of | |
9 # its license can be downloaded from http://www.gnu.org/copyleft/gpl.html | |
10 | |
11 # This script processes *.{sum,log} files, producing a shell-script | |
12 # that sends e-mail to the appropriate lists and renames files to | |
13 # *.sent. It currently handles only gcc, but it should be quite easy | |
14 # to modify it to handle other packages and its mailing lists. | |
15 | |
16 # The scripts assumes it is run in the root directory of the build | |
17 # tree, and it will include all .sum files it finds in the mail | |
18 # report. | |
19 | |
20 # configure flags are extracted from ./config.status | |
21 | |
22 # if the BOOT_CFLAGS environment variable is set, it will be included | |
23 # in the mail report too. | |
24 | |
25 # The usage pattern of this script is as follows: | |
26 | |
27 # test_summary | more # so as to observe what should be done | |
28 | |
29 # test_summary | sh # so as to actually send e-mail and move log files | |
30 | |
31 # It accepts a few command line arguments. For example: | |
32 if test x"$1" = "x-h"; then | |
33 cat <<_EOF | |
34 -o: re-reads logs that have been mailed already (.sum.sent) | |
35 -t: prevents logs from being renamed | |
36 -p: prepend specified file (or list of files: -p "a b") to the report | |
37 -i: append specified file (or list of files: -i "a b") to the report | |
38 -m: specify the e-mail address to send notes to. An appropriate default | |
39 should be selected from the log files. | |
40 -f: force reports to be mailed; if omitted, only reports that differ | |
41 from the sent.* version are sent. | |
42 _EOF | |
43 exit 0 | |
44 fi | |
45 | |
46 # Find a good awk. | |
47 if test -z "$AWK" ; then | |
48 for AWK in gawk nawk awk ; do | |
49 if type $AWK 2>&1 | grep 'not found' > /dev/null 2>&1 ; then | |
50 : | |
51 else | |
52 break | |
53 fi | |
54 done | |
55 fi | |
56 | |
57 : ${filesuffix=}; export filesuffix | |
58 : ${move=true}; export move | |
59 : ${forcemail=false}; export forcemail | |
60 while true; do | |
61 case "$1" in | |
62 -o) filesuffix=.sent; move=false; : ${mailto=nobody}; shift;; | |
63 -t) move=false; shift;; | |
64 -p) prepend_logs=${prepend_logs+"$prepend_logs "}"$2"; shift 2;; | |
65 -i) append_logs=${append_logs+"$append_logs "}"$2"; shift 2;; | |
66 -m) mailto=$2; forcemail=true; shift 2;; | |
67 -f) unset mailto; forcemail=true; shift;; | |
68 *) break;; | |
69 esac | |
70 done | |
71 : ${mailto="\" address \""}; export mailto | |
72 files=`find . -name \*.sum$filesuffix -print | sort` | |
73 anyfile=false anychange=$forcemail && | |
74 for file in $files; do | |
75 [ -f $file ] && | |
76 anyfile=true && | |
77 { $anychange || | |
78 anychange=`diff -u $file.sent $file 2>/dev/null | | |
79 if test ! -f $file.sent || | |
80 egrep '^[-+](XPASS|FAIL)' >/dev/null; then | |
81 echo true | |
82 else | |
83 echo false | |
84 fi | |
85 ` | |
86 } | |
87 true | |
88 done && | |
89 $anyfile && | |
90 if $forcemail || $anychange; then :; else mailto=nobody; fi && | |
91 # We use cat instead of listing the files as arguments to AWK because | |
92 # GNU awk 3.0.0 would break if any of the filenames contained `=' and | |
93 # was preceded by an invalid ``variable'' name. | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
94 ( echo @TOPLEVEL_CONFIGURE_ARGUMENTS@ | ./config.status --file=-; cat $files ) | |
0 | 95 $AWK ' |
96 BEGIN { | |
97 lang=""; configflags = ""; | |
98 address="gcc-testresults@gcc.gnu.org"; | |
99 version="gcc"; | |
100 print "cat <<'"'"'EOF'"'"' |"; | |
101 '${prepend_logs+" system(\"cat $prepend_logs\"); "}' | |
102 } | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
103 NR == 1 { |
0 | 104 configflags = $0 " "; |
105 srcdir = configflags; | |
106 sub(/\/configure .*/, "", srcdir); | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
107 if ( system("test -f " srcdir "/LAST_UPDATED") == 0 ) { |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
108 printf "LAST_UPDATED: "; |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
109 system("tail -1 " srcdir "/LAST_UPDATED"); |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
110 print ""; |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
111 } |
0 | 112 |
113 sub(/^[^ ]*\/configure */, " ", configflags); | |
114 sub(/,;t t $/, " ", configflags); | |
115 sub(/ --with-gcc-version-trigger=[^ ]* /, " ", configflags); | |
116 sub(/ --norecursion /, " ", configflags); | |
117 sub(/ $/, "", configflags); | |
118 sub(/^ *$/, " none", configflags); | |
119 configflags = "configure flags:" configflags; | |
120 } | |
121 /^Running target / { print ""; print; } | |
122 /^Target / { if (host != "") next; else host = $3; } | |
123 /^Host / && host ~ /^unix\{.*\}$/ { host = $3 " " substr(host, 5); } | |
124 /^Native / { if (host != "") next; else host = $4; } | |
125 /^[ ]*=== [^ ]+ tests ===/ { | |
126 if (lang == "") lang = " "$2" "; else lang = " "; | |
127 } | |
128 $2 == "version" { save = $0; $1 = ""; $2 = ""; version = $0; gsub(/^ */, "", version); gsub(/\r$/, "", version); $0 = save; } | |
129 /\===.*Summary/ { print ""; print; blanks=1; } | |
130 /tests ===/ || /^(Target|Host|Native)/ || $2 == "version" { print; blanks=1; } | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
131 /^(XPASS|FAIL|UNRESOLVED|WARNING|ERROR|# of )/ { sub ("\r", ""); print; } |
0 | 132 /^using:/ { print ""; print; print ""; } |
133 # dumpall != 0 && /^X?(PASS|FAIL|UNTESTED)|^testcase/ { dumpall=0; } | |
134 # dumpall != 0 { print; } | |
135 # /^FAIL/ { dumpall=1; } | |
136 /^$/ && blanks>0 { print; --blanks; } | |
137 END { if (lang != "") { | |
138 print ""; | |
139 print "Compiler version: " prefix version lang; | |
140 print "Platform: " host; | |
141 print configflags; | |
142 '${BOOT_CFLAGS+'print "BOOT_CFLAGS='"${BOOT_CFLAGS}"'";'}' | |
143 if (boot_cflags != 0) print boot_cflags; | |
144 '${append_logs+" system(\"cat $append_logs\"); "}' | |
145 print "EOF"; | |
146 print "Mail -s \"Results for " prefix version lang "testsuite on " host "\" '"${mailto}"' &&"; | |
147 }} | |
148 { next; } | |
149 ' | sed "s/\([\`\$\\\\]\)/\\\\\\1/g" && | |
150 if $move; then | |
151 for file in $files `ls -1 $files | sed s/sum$/log/`; do | |
152 [ -f $file ] && echo "mv `${PWDCMD-pwd}`/$file `${PWDCMD-pwd}`/$file.sent &&" | |
153 done | |
154 fi && | |
155 echo true | |
156 exit 0 |