23 lines
991 B
Bash
Executable File
23 lines
991 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
root="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
make -C "$root" PROFILE=observe host >/dev/null
|
|
|
|
check_output() {
|
|
local program="$1" expected="$2" actual
|
|
actual="$($program)"
|
|
if [[ "$actual" != "$expected" ]]; then
|
|
printf 'FAIL %s\nexpected: %s\nactual: %s\n' "$program" "$expected" "$actual" >&2
|
|
return 1
|
|
fi
|
|
printf 'PASS %s: %s\n' "$(basename -- "$(dirname -- "$program")")" "$actual"
|
|
}
|
|
|
|
check_output "$root/host-build/task01_first_fit_split/prog" \
|
|
'header=16 wanted=32 remainder=224 payload=16 aligned=1 pass=1'
|
|
check_output "$root/host-build/task02_address_order_coalesce/prog" \
|
|
'before_nodes=2 before_total=96 before_largest=48 after_nodes=1 after_total=144 after_largest=144 pass=1'
|
|
check_output "$root/host-build/task03_freertos_heap4/prog" \
|
|
'initial=4080 after_a=4040 after_b=3984 after_c=3952 free_a=3992 fragmented=4024 final=4080 min=3952 consumed=40/56/32 aligned=1 oom=1 hooks=1 asserts=0 pass=1'
|