#!/bin/sh
# Check separate RIL package output and reproducible bytes.
set -eu
emulator=${RAD_EMULATOR:-emulator}
work=$(mktemp -d)
trap 'rm -rf "$work"' EXIT HUP INT TERM
mkdir "$work/first" "$work/second"
for output in first second; do
    "$emulator" -memory-size=385024 -data-size=348160 -stack-size=1024 \
        -run bin/radiance.rv64.dev \
        -pkg support -mod test/packages/support.rad \
        -pkg app -mod test/packages/app.rad -entry app -ril "$work/$output"
done
cmp "$work/first/support.ril" "$work/second/support.ril"
cmp "$work/first/app.ril" "$work/second/app.ril"
"$emulator" -run bin/packages.check.rv64 -- "$work/first/support.ril" "$work/first/app.ril"
"$emulator" -memory-size=385024 -data-size=348160 -stack-size=1024 \
    -run bin/radiance.rv64.dev \
    -pkg support -mod test/packages/support.rad \
    -pkg app -mod test/packages/app.rad -entry app -o "$work/hosted.rv64"
status=0
"$emulator" -run "$work/hosted.rv64" || status=$?
[ "$status" -eq 14 ]
printf 'package output: ownership, linkage, exports, determinism, and hosted execution passed\n'
