From f4ebb544899fdd8148082a2f9b505c862654ebd2 Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 27 Apr 2009 19:11:23 +0000
Subject: [PATCH] 	PR testsuite/39807 	* dg-extract-results.sh: Close
 open files and use >> instead of > 	to decrease number of concurrently
 open files from awk.  Avoid 	= at the beginning of a regexp and redirect to
 a file determined 	by curfile variable rather than concatenated strings
 to workaround 	Solaris nawk bug.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146850 138bc75d-0d04-0410-961f-82ee72b054a4
---
 contrib/ChangeLog             |  9 +++++++++
 contrib/dg-extract-results.sh | 29 ++++++++++++++++++-----------
 2 files changed, 27 insertions(+), 11 deletions(-)

diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index b4c315bc5df..6ab29eb71d9 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,12 @@
+2009-04-27  Jakub Jelinek  <jakub@redhat.com>
+
+	PR testsuite/39807
+	* dg-extract-results.sh: Close open files and use >> instead of >
+	to decrease number of concurrently open files from awk.  Avoid
+	= at the beginning of a regexp and redirect to a file determined
+	by curfile variable rather than concatenated strings to workaround
+	Solaris nawk bug.
+
 2009-04-25  Gerald Pfeifer  <gerald@pfeifer.com>
 
 	* test_summary: Only include LAST_UPDATED if it exists.
diff --git a/contrib/dg-extract-results.sh b/contrib/dg-extract-results.sh
index 75ae38f70e8..518c19f6bee 100755
--- a/contrib/dg-extract-results.sh
+++ b/contrib/dg-extract-results.sh
@@ -6,7 +6,7 @@
 # The resulting file can be used with test result comparison scripts for
 # results from tests that were run in parallel.  See usage() below.
 
-# Copyright (C) 2008 Free Software Foundation
+# Copyright (C) 2008, 2009 Free Software Foundation
 # Contributed by Janis Johnson <janis187@us.ibm.com>
 #
 # This file is part of GCC.
@@ -148,26 +148,28 @@ if [ "$TOOL" = acats ]; then
   ACATS_AWK=${TMP}/acats.awk
   cat <<EOF > $ACATS_AWK
 BEGIN {
-  print_prologue=1; chapter=""; insummary=0
+  print_prologue=1; curfile=""; insummary=0
   passcnt=0; failcnt=0; unsupcnt=0; failures=""
 }
-/=== acats configuration ===/ {
+/^[ \t]*=== acats configuration ===/ {
   insummary=0
   if (print_prologue) print
   next
 }
-/=== acats tests ===/ {
+/^[ \t]*=== acats tests ===/ {
   if (print_prologue) print
   print_prologue=0
   next
 }
 /^Running chapter / {
-  chapter=\$3
-  print > "${TMP}/chapter-"chapter
+  if (curfile) close (curfile)
+  curfile="${TMP}/chapter-"\$3
+  print >> curfile
   next
 }
-/=== acats Summary ===/ {
-  chapter=""
+/^[ \t]*=== acats Summary ===/ {
+  if (curfile) close (curfile)
+  curfile=""
   insummary=1
   next
 }
@@ -182,7 +184,7 @@ BEGIN {
 }
 {
   if (print_prologue) { print; next }
-  if (chapter) print > "${TMP}/chapter-"chapter
+  if (curfile) print >> curfile
 }
 END {
   system ("cat ${TMP}/chapter-*")
@@ -194,6 +196,7 @@ END {
 }
 EOF
 
+  rm -f ${TMP}/chapter-*
   $AWK -f $ACATS_AWK $SUM_FILES
   exit 0
 fi
@@ -270,6 +273,7 @@ BEGIN {
   expfileno=1
   cnt=0
   print_using=0
+  need_close=0
 }
 /^EXPFILE: / {
   expfiles[expfileno] = \$2
@@ -287,8 +291,10 @@ BEGIN {
 /^Running / {
   print_using=0
   if (variant == curvar) {
+    if (need_close) close(curfile)
     curfile="${TMP}/list"expfilesr[\$2]
     expfileseen[\$2]=expfileseen[\$2] + 1
+    need_close=0
     testname="00"
     next
   }
@@ -303,11 +309,12 @@ BEGIN {
 /^$/ { if ("$MODE" == "sum") next }
 { if (variant == curvar && curfile) {
     if ("$MODE" == "sum") {
-      printf "%s %08d|", testname, cnt > curfile
+      printf "%s %08d|", testname, cnt >> curfile
       cnt = cnt + 1
     }
     filewritten[curfile]=1
-    print > curfile
+    need_close=1
+    print >> curfile
   } else
     next
 }
-- 
GitLab