summaryrefslogtreecommitdiff
path: root/tests/tst-verbose-runner.sh
blob: e1362e4a2a78fb45506fbfca575d975a7d806ece (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/sh
set -eu

: "${CPU_AS:?}" "${CPU_LD:?}" "${TEST_SRCDIR:?}"

TMP=${TMPDIR:-/tmp}/libmcpu-verbose-$$
mkdir -p "$TMP"
trap 'rm -rf "$TMP"' EXIT HUP INT TERM

src="$TEST_SRCDIR/fixtures/radd-pi.s"

# Production default is quiet: successful assembly and linking write no
# developer summary unless -v/--verbose is requested.
out=`"$CPU_AS" -o "$TMP/main.o" "$src"`
[ -z "$out" ]

out=`"$CPU_LD" --stack-size=512 --no-heap -o "$TMP/main" "$TMP/main.o"`
[ -z "$out" ]

# Both spellings enable the existing developer summaries without changing
# their content or the generated object/executable semantics.
out=`"$CPU_AS" -v -o "$TMP/main-v.o" "$src"`
case "$out" in
  "MELF ET_REL: "*" -> $TMP/main-v.o") ;;
  *) echo "unexpected mcpu-as -v output: $out" >&2; exit 1 ;;
esac

out=`"$CPU_AS" --verbose -o "$TMP/main-long.o" "$src"`
case "$out" in
  "MELF ET_REL: "*" -> $TMP/main-long.o") ;;
  *) echo "unexpected mcpu-as --verbose output: $out" >&2; exit 1 ;;
esac

out=`"$CPU_LD" -v --stack-size=512 --no-heap \
      -o "$TMP/main-v" "$TMP/main-v.o"`
case "$out" in
  "MELF ABI1 ET_EXEC: "*" -> $TMP/main-v") ;;
  *) echo "unexpected mcpu-ld -v output: $out" >&2; exit 1 ;;
esac

out=`"$CPU_LD" --verbose --dynamic --stack-size=512 --no-heap \
      -o "$TMP/main-dyn" "$TMP/main-long.o"`
case "$out" in
  "MELF ABI3 ET_EXEC: "*" -> $TMP/main-dyn") ;;
  *) echo "unexpected mcpu-ld --verbose dynamic output: $out" >&2; exit 1 ;;
esac

out=`"$CPU_LD" -v -r -o "$TMP/main-partial.o" "$TMP/main-v.o"`
case "$out" in
  "MELF ET_REL partial link: "*" -> $TMP/main-partial.o") ;;
  *) echo "unexpected mcpu-ld -v -r output: $out" >&2; exit 1 ;;
esac

cat > "$TMP/shared.s" <<'EOS'
.global shared_value
.text
shared_value:
        RET
EOS
"$CPU_AS" -o "$TMP/shared.o" "$TMP/shared.s"
out=`"$CPU_LD" --verbose --shared --soname=libverbose.so.1 \
      -o "$TMP/libverbose.so" "$TMP/shared.o"`
case "$out" in
  "MELF ABI3 ET_DYN: "*" -> $TMP/libverbose.so") ;;
  *) echo "unexpected mcpu-ld --verbose shared output: $out" >&2; exit 1 ;;
esac

exit 0