[Darwin, testsuite] Handle Darwin's size command.
authorIain Sandoe <iains@gcc.gnu.org>
Fri, 26 Jul 2019 18:58:02 +0000 (18:58 +0000)
committerIain Sandoe <iains@gcc.gnu.org>
Fri, 26 Jul 2019 18:58:02 +0000 (18:58 +0000)
Darwin's "size" command has a different header line, reflecting the Mach-O
section naming conventions.  This causes tests using the command to fail
because scanasm.exp expects and checks specific layout of the header line.

gcc/testsuite/

2019-07-26  Iain Sandoe  <iain@sandoe.co.uk>

* lib/scanasm.exp (object-size): Handle Darwin's size command.

From-SVN: r273839

gcc/testsuite/ChangeLog
gcc/testsuite/lib/scanasm.exp

index f899b5bb0aa8f039a7f0541a7d5f8bc6cc5137f1..5bdbabb895fe40bc84ab9d3aa63b74b733739e55 100644 (file)
@@ -1,4 +1,8 @@
-2018-07-24  Tamar Christina  <tamar.christina@arm.com>
+2019-07-26  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * lib/scanasm.exp (object-size): Handle Darwin's size command.
+
+2018-07-26  Tamar Christina  <tamar.christina@arm.com>
 
        * gcc.dg/type-convert-var.c: New test.
 
index 35ccbc86fc0371401e6e6b88bc07f69e44844a79..231a4d66bad1529bfa3dd3704a297c4471d0df52 100644 (file)
@@ -460,15 +460,23 @@ proc object-size { args } {
     set text [lindex $output 1]
     set lines [split $text "\n"]
 
+    set l0match {^\s*text\s+data\s+bss\s+dec\s+hex\s+filename\s*$}
+    set l1match {^\s*\d+\s+\d+\s+\d+\s+\d+\s+[\da-fA-F]+\s+}
+
+    if { [istarget *-*-darwin*] } {
+      set l0match {^\s*__TEXT\s+__DATA\s+__OBJC\s+others\s+dec\s+hex\s*$}
+      set l1match {^\s*\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+[\da-fA-F]+\s+}
+    }
+
     set line0 [lindex $lines 0]
-    if ![regexp {^\s*text\s+data\s+bss\s+dec\s+hex\s+filename\s*$} $line0] {
+    if ![regexp $l0match $line0] {
         verbose -log "$testcase object-size: $size did not produce expected first line: $line0"
         unresolved "$testcase object-size $what $cmp $with"
         return
     }
 
     set line1 [lindex $lines 1]
-    if ![regexp {^\s*\d+\s+\d+\s+\d+\s+\d+\s+[\da-fA-F]+\s+} $line1] {
+    if ![regexp $l1match $line1] {
         verbose -log "$testcase object-size: $size did not produce expected second line: $line1"
         unresolved "$testcase object-size $what $cmp $with"
         return