Max | 15b05fe | 2017-10-20 16:07:06 +0200 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | set -ex |
| 4 | |
Neels Hofmeyr | c8ef736 | 2017-10-23 15:10:00 +0200 | [diff] [blame] | 5 | if [ -z "$MAKE" ]; then |
| 6 | set +x |
| 7 | echo "Error: you need to set \$MAKE before invoking, e.g. MAKE=make" |
| 8 | exit 1 |
| 9 | fi |
| 10 | |
Neels Hofmeyr | 229fa07 | 2017-10-27 22:40:30 +0200 | [diff] [blame] | 11 | osmo-clean-workspace.sh |
| 12 | |
Neels Hofmeyr | b82cc77 | 2018-06-09 05:32:42 +0200 | [diff] [blame] | 13 | verify_value_string_arrays_are_terminated.py |
Max | 15b05fe | 2017-10-20 16:07:06 +0200 | [diff] [blame] | 14 | |
Pau Espin Pedrol | 2d10ff2 | 2022-03-18 14:24:29 +0100 | [diff] [blame] | 15 | # Validate enum fields in header are added to tlv_definition in source file (SYS#5891): |
| 16 | |
| 17 | verify_gsm0808_tlv_definition() { |
| 18 | set +x; |
| 19 | enums=$(grep "GSM0808_IE_" include/osmocom/gsm/protocol/gsm_08_08.h | grep "=" | awk '{ print $1 }') |
| 20 | counted_enums=$(for f in $enums; do printf "%-60s %s\n" "$f" "$(grep -c "\[$f\]" src/gsm/gsm0808.c)"; done) |
| 21 | missing_enums=$(echo "$counted_enums" | grep -v GSM0808_IE_RESERVED | grep "0$" || true) |
| 22 | if [ "x$missing_enums" != "x" ]; then |
| 23 | echo "Missing IEs in src/gsm/gsm0808.c!" |
| 24 | echo "$missing_enums" |
| 25 | exit 1 |
| 26 | fi |
| 27 | set -x; |
| 28 | } |
| 29 | verify_gsm0808_tlv_definition |
| 30 | |
Pau Espin Pedrol | b0c2f75 | 2022-04-04 19:37:19 +0200 | [diff] [blame] | 31 | verify_gsm_08_05_tlv_definition() { |
| 32 | set +x; |
| 33 | enums=$(grep "RSL_IE_" include/osmocom/gsm/protocol/gsm_08_58.h | grep -e "=" -e ",$" | awk '{ print $1 }' | tr -d ',') |
| 34 | counted_enums=$(for f in $enums; do printf "%-60s %s\n" "$f" "$(grep -c "\[$f\]" src/gsm/rsl.c)"; done) |
| 35 | # TODO: Add RSL_IE_SIEMENS_* to the tlv struct definitions. |
| 36 | missing_enums=$(echo "$counted_enums" | grep -v RSL_IE_SIEMENS |grep "0$" || true) |
| 37 | if [ "x$missing_enums" != "x" ]; then |
| 38 | echo "Missing IEs in src/gsm/rsl.c!" |
| 39 | echo "$missing_enums" |
| 40 | exit 1 |
| 41 | fi |
| 42 | set -x; |
| 43 | } |
| 44 | verify_gsm_08_05_tlv_definition |
| 45 | |
Neels Hofmeyr | 754e687 | 2017-10-23 14:57:56 +0200 | [diff] [blame] | 46 | prep_build() { |
| 47 | _src_dir="$1" |
| 48 | _build_dir="$2" |
| 49 | |
| 50 | cd "$_src_dir" |
| 51 | |
Neels Hofmeyr | 229fa07 | 2017-10-27 22:40:30 +0200 | [diff] [blame] | 52 | # clean again before each build variant |
| 53 | osmo-clean-workspace.sh |
Neels Hofmeyr | 754e687 | 2017-10-23 14:57:56 +0200 | [diff] [blame] | 54 | |
| 55 | autoreconf --install --force |
| 56 | |
| 57 | mkdir -p "$_build_dir" |
| 58 | cd "$_build_dir" |
| 59 | } |
Max | e41ad4d | 2018-01-18 17:37:18 +0100 | [diff] [blame] | 60 | |
| 61 | run_make() { |
| 62 | $MAKE $PARALLEL_MAKE check || cat-testlogs.sh |
| 63 | } |