aboutsummaryrefslogtreecommitdiffstats
path: root/test/Feature/TestAsmDisasm.sh
blob: 56a97002958a1e59bc22d696f5d2cd0e026a9dc7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/sh
# test that every step outputs something that is consumable by 
# another step

rm -f test.bc.temp[12]

LD_LIBRARY_PATH=../../lib/Debug
export LD_LIBRARY_PATH

AS=../../tools/Debug/as
DIS=../../tools/Debug/dis

echo "======== Running assembler/disassembler test on $1"

# Two full cycles are needed for bitwise stability
(
  $AS  < $1      > $1.bc.1 || exit 1
  $DIS < $1.bc.1 > $1.ll.1 || exit 2
  $AS  < $1.ll.1 > $1.bc.2 || exit 3
  $DIS < $1.bc.2 > $1.ll.2 || exit 4

  diff $1.ll.[12] || exit 7

  # FIXME: When we sort things correctly and deterministically, we can
  # reenable this
  #diff $1.bc.[12] || exit 8

  rm $1.[bl][cl].[12]
  touch Output/$1.asmdis
) || ./Failure.sh "$1 ASM/DIS"