#!/bin/bash
ret=0
libbpf=$(grep -oP '(?<={")\w+(?=", "\d\.\d+")' src/cc/libbpf.c | sort)
doc=$(grep -oP "(?<=BPF_FUNC_)\w+" docs/kernel-versions.md | sort)
dif=$(diff <(echo "$doc") <(echo "$libbpf"))
if [ $? -ne 0 ]; then
echo "The lists of helpers in src/cc/libbpf.c and docs/kernel-versions.md differ:"
echo -e "$dif\n"
((ret++))
fi
compat=$(grep -oP "(?<=^\sFN\()\w+" src/cc/compat/linux/bpf.h | tail -n +2 | sort)
dif=$(diff <(echo "$doc") <(echo "$compat"))
if [ $? -ne 0 ]; then
echo "The lists of helpers in docs/kernel-versions.md and src/cc/compat/linux/bpf.h differ:"
echo -e "$dif\n"
((ret++))
fi
virtual=$(grep -oP "(?<=^\sFN\()\w+" src/cc/compat/linux/virtual_bpf.h | tail -n +2 | sort -u)
dif=$(diff <(echo "$compat") <(echo "$virtual"))
if [ $? -ne 0 ]; then
echo "The lists of helpers in src/cc/compat/linux/bpf.h and src/cc/compat/linux/virtual_bpf.h differ:"
echo "$dif"
((ret++))
fi
export=$(grep -oP "(?<=BPF_FUNC_)\w+" src/cc/export/helpers.h | sort -u)
dif=$(diff <(echo "$compat") <(echo "$export"))
if [ $? -ne 0 ]; then
echo "The lists of helpers in src/cc/compat/linux/bpf.h and src/cc/export/helpers.h differ:"
echo "$dif"
((ret++))
fi
exit $ret