from gas/testscripts -- may be useful someday
authorKen Raeburn <raeburn@cygnus>
Mon, 5 Apr 1993 17:25:37 +0000 (17:25 +0000)
committerKen Raeburn <raeburn@cygnus>
Mon, 5 Apr 1993 17:25:37 +0000 (17:25 +0000)
gas/testsuite/lib/doboth [new file with mode: 0755]
gas/testsuite/lib/doobjcmp [new file with mode: 0755]
gas/testsuite/lib/dostriptest [new file with mode: 0755]
gas/testsuite/lib/dotest [new file with mode: 0755]
gas/testsuite/lib/dounsreloc [new file with mode: 0755]
gas/testsuite/lib/dounssym [new file with mode: 0755]

diff --git a/gas/testsuite/lib/doboth b/gas/testsuite/lib/doboth
new file mode 100755 (executable)
index 0000000..a8c3358
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+# $Id$
+
+x=$1 ; shift
+y=$1 ; shift
+
+rm tmp.0 > /dev/null 2>&1
+ln -s $x tmp.0
+$* tmp.0 > tmp.1
+
+rm tmp.0
+ln -s $y tmp.0
+$* tmp.0 > tmp.2
+
+rm tmp.0
+
+diff -c tmp.1 tmp.2
+exit
+
+#eof
diff --git a/gas/testsuite/lib/doobjcmp b/gas/testsuite/lib/doobjcmp
new file mode 100755 (executable)
index 0000000..9fbe46b
--- /dev/null
@@ -0,0 +1,89 @@
+#!/bin/sh
+# $Id$
+# compare two object files, in depth.
+
+x=$1
+y=$2
+BOTH="$1 $2"
+
+
+# if they cmp, we're fine.
+if (cmp $BOTH > /dev/null)
+then
+       exit 0
+fi
+
+# otherwise, we must look closer.
+if (doboth $BOTH size)
+then
+       echo Sizes ok.
+else
+       echo Sizes differ:
+       size $BOTH
+#      exit 1
+fi
+
+if (doboth $BOTH objdump +header)
+then
+       echo Headers ok.
+else
+       echo Header differences.
+#      exit 1
+fi
+
+if (doboth $BOTH objdump +text > /dev/null)
+then
+       echo Text ok.
+else
+       echo Text differences.
+#      doboth $BOTH objdump +text
+#      exit 1
+fi
+
+if (doboth $BOTH objdump +data > /dev/null)
+then
+       echo Data ok.
+else
+       echo Data differences.
+#      doboth $BOTH objdump +data
+#      exit 1
+fi
+
+if (doboth $BOTH objdump +symbols > /dev/null)
+then
+       echo Symbols ok.
+else
+       echo -n Symbol differences...
+
+       if (doboth $BOTH dounsortsymbols)
+       then
+               echo but symbols are simply ordered differently.
+#              echo Now what to do about relocs'?'
+#              exit 1
+       else
+               echo and symbols differ in content.
+               exit 1
+       fi
+fi
+
+# of course, if there were symbol diffs, then the reloc symbol indexes
+# will be off.
+
+if (doboth $BOTH objdump -r > /dev/null)
+then
+       echo Reloc ok.
+else
+       echo -n Reloc differences...
+
+       if (doboth $BOTH dounsortreloc)
+       then
+               echo but relocs are simply ordered differently.
+       else
+               echo and relocs differ in content.
+               exit 1
+       fi
+fi
+
+exit
+
+# eof
diff --git a/gas/testsuite/lib/dostriptest b/gas/testsuite/lib/dostriptest
new file mode 100755 (executable)
index 0000000..4b89df8
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+# $Id$
+
+x=striptest.xx.$$
+y=striptest.yy.$$
+
+cp $1 $x
+strip $x
+cp $2 $y
+strip $y
+
+doobjcmp $x $y
+exit
+
+#eof
diff --git a/gas/testsuite/lib/dotest b/gas/testsuite/lib/dotest
new file mode 100755 (executable)
index 0000000..8c7a28c
--- /dev/null
@@ -0,0 +1,44 @@
+#!/bin/sh
+# ad hoc debug tool
+# $Id$
+
+x=$1
+y=$2
+
+xout=`basename $x`.xxx.$$
+yout=`basename $x`.yyy.$$
+
+mkdir $xout
+mkdir $yout
+
+for i in *.s
+do
+       echo Testing $i...
+       object=`basename $i .s`.o
+       $x $i -o $xout/$object
+       $y $i -o $yout/$object
+
+# if they cmp, we're ok.  Otherwise we have to look closer.
+
+       if (cmp $xout/$object $yout/$object)
+       then
+               echo $i is ok.
+       else
+               if (doobjcmp $xout/$object $yout/$object)
+               then
+                       echo Not the same but objcmp ok.
+               else
+                       exit 1
+               fi
+       fi
+
+       echo
+done
+
+rm -rf $xout $yout
+
+exit 0
+
+# EOF
+
+
diff --git a/gas/testsuite/lib/dounsreloc b/gas/testsuite/lib/dounsreloc
new file mode 100755 (executable)
index 0000000..d8da0a9
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+# $Id$
+# objdump the reloc table, but strip off the headings and reloc
+# numbers and sort the result.  Intended for use in comparing reloc
+# tables that may not be in the same order.
+
+objdump +reloc +omit-relocation-numbers +omit-symbol-numbers $1 \
+       | sort
+#eof
diff --git a/gas/testsuite/lib/dounssym b/gas/testsuite/lib/dounssym
new file mode 100755 (executable)
index 0000000..8fb6db3
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+# $Id$
+# objdump the symbol table, but strip off the headings and symbol
+# numbers and sort the result.  Intended for use in comparing symbol
+# tables that may not be in the same order.
+
+objdump +symbols +omit-symbol-numbers $1 \
+       | sort
+#eof