test/packages/run 1.1 KiB raw
1
#!/bin/sh
2
# Check separate RIL package output and reproducible bytes.
3
set -eu
4
emulator=${RAD_EMULATOR:-emulator}
5
work=$(mktemp -d)
6
trap 'rm -rf "$work"' EXIT HUP INT TERM
7
mkdir "$work/first" "$work/second"
8
for output in first second; do
9
    "$emulator" -memory-size=385024 -data-size=348160 -stack-size=1024 \
10
        -run bin/radiance.rv64.dev \
11
        -pkg support -mod test/packages/support.rad \
12
        -pkg app -mod test/packages/app.rad -entry app -ril "$work/$output"
13
done
14
cmp "$work/first/support.ril" "$work/second/support.ril"
15
cmp "$work/first/app.ril" "$work/second/app.ril"
16
"$emulator" -run bin/packages.check.rv64 -- "$work/first/support.ril" "$work/first/app.ril"
17
"$emulator" -memory-size=385024 -data-size=348160 -stack-size=1024 \
18
    -run bin/radiance.rv64.dev \
19
    -pkg support -mod test/packages/support.rad \
20
    -pkg app -mod test/packages/app.rad -entry app -o "$work/hosted.rv64"
21
status=0
22
"$emulator" -run "$work/hosted.rv64" || status=$?
23
[ "$status" -eq 14 ]
24
printf 'package output: ownership, linkage, exports, determinism, and hosted execution passed\n'