Files

22 lines
726 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
root="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
task01_map="$root/build/task01_libc_without_heap/prog.map"
task05_map="$root/build/task05_picolibc_malloc/prog.map"
grep -q 'libc.a(strlen.c.o)' "$task01_map"
if grep -Eq 'libc_stdlib_malloc.c.o|libc_stdlib_free.c.o|libc_misc_picosbrk.c.o' "$task01_map"; then
echo 'FAIL Task01: heap-related archive member entered the image' >&2
exit 1
fi
for member in libc_stdlib_malloc.c.o libc_stdlib_free.c.o libc_misc_picosbrk.c.o; do
grep -q "$member" "$task05_map"
done
printf '%s\n' \
'PASS Task01 map: strlen.c.o present, malloc/free/picosbrk absent' \
'PASS Task05 map: malloc/free/picosbrk archive members present'