You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.2 KiB
37 lines
1.2 KiB
#!/usr/bin/env bash
|
|
|
|
set -e -x
|
|
set -o pipefail
|
|
|
|
ROOT="$1"
|
|
NUMINSTRS="$2"
|
|
BOOTCODE="$3"
|
|
TRIPLE="$4"
|
|
ARCH="$5"
|
|
EXTENSIONS="$6"
|
|
ABI="$7"
|
|
SPIKE_PATH="$8"
|
|
|
|
CONFIGDIR="$ROOT"/ci-tests/snippy-tests
|
|
|
|
CONFIG="test-$ARCH-$ABI.yaml"
|
|
|
|
base=$(basename "$CONFIG" .yaml)
|
|
testfile="$base".elf
|
|
tmpelf="$base".tmp.elf
|
|
# exclude C_JR and C_JALR and some othe compressed opcodes as snippy has issues with them
|
|
# exclude EBREAK/ECALL as we want non-privileged instructions
|
|
# exclude lr.rl and sc.aq as they don't make sense
|
|
"$CONFIGDIR"/generate-snippy-test.sh --march "$ARCH" --mtriple "$TRIPLE" --extensions "$EXTENSIONS" --num-instrs $NUMINSTRS --ignore-opcode-regex "C_JR|C_JALR|EBREAK|ECALL|C_.*(SP|HINT|UNIMP).*|LR_.*_RL|SC_.*_AQ" > "$CONFIG"
|
|
llvm-snippy "$CONFIG" -o "$tmpelf" --seed 1 -riscv-disable-misaligned-access --layout-include-dir "$ROOT"/ci-tests/snippy-tests
|
|
riscv64-linux-gnu-gcc -O0 -march="$ARCH" -mabi="$ABI" -T "$tmpelf".ld -T "$CONFIGDIR"/linker-entry.ld "$tmpelf" "$BOOTCODE" -nostdlib -static -o "$testfile" -Wl,--build-id=none
|
|
|
|
error=0
|
|
if ! timeout --foreground 60s "$SPIKE_PATH" -l --log-commits --isa "$ARCH" "$testfile"
|
|
then
|
|
echo "TIMEOUT: $testfile"
|
|
error=1
|
|
else
|
|
echo "SUCCESS: $testfile"
|
|
fi
|
|
exit $error
|
|
|