1#!/bin/bash
2
3LOGDIR=$1
4if [ -n "$2" ]; then
5    ODIR=$2
6else
7    ODIR=.
8fi
9TMPDIR=/tmp/logs
10
11mv $LOGDIR/alt-* $TMPDIR
12
13cd $TMPDIR
14args=""
15for i in lcov-*.info-*; do
16    args="$args -a $i"
17done
18
19lcov $args -o $LOGDIR/combined.info > $LOGDIR/combined-lcov.log 2>&1
20cat $LOGDIR/combined.info |
21    sed "/^TN:$/{N;s/TN:\n\(SF:.*\/bits\/byteswap.h$\)/\1/};/^SF:.*\/bits\/byteswap.h$/,/^end_of_record$/d" |
22    sed "/^TN:$/{N;s/TN:\n\(SF:.*\/openssl\/x509.h$\)/\1/};/^SF:.*\/openssl\/x509.h$/,/^end_of_record$/d" |
23    sed "/^TN:$/{N;s/TN:\n\(SF:.*\/openssl\/x509v3.h$\)/\1/};/^SF:.*\/openssl\/x509v3.h$/,/^end_of_record$/d" |
24    sed "/^TN:$/{N;s/TN:\n\(SF:.*\/common\/wpa_ctrl.c$\)/\1/};/^SF:.*\/common\/wpa_ctrl.c$/,/^end_of_record$/d" |
25    sed "/^TN:$/{N;s/TN:\n\(SF:.*\/common\/cli.c$\)/\1/};/^SF:.*\/common\/cli.c$/,/^end_of_record$/d" |
26    sed "/^TN:$/{N;s/TN:\n\(SF:.*\/utils\/edit.c$\)/\1/};/^SF:.*\/utils\/edit.c$/,/^end_of_record$/d" |
27    sed "/^TN:$/{N;s/TN:\n\(SF:.*_module_tests.c$\)/\1/};/^SF:.*_module_tests.c$/,/^end_of_record$/d" |
28    sed "/^TN:$/{N;s/TN:\n\(SF:.*\/hostapd\/hostapd_cli.c$\)/\1/};/^SF:.*\/hostapd\/hostapd_cli.c$/,/^end_of_record$/d" |
29    sed "/^TN:$/{N;s/TN:\n\(SF:.*wpa_supplicant\/wpa_cli.c$\)/\1/};/^SF:.*wpa_supplicant\/wpa_cli.c$/,/^end_of_record$/d" > $LOGDIR/combined.info.filtered
30
31cd $LOGDIR
32genhtml -t "wpa_supplicant/hostapd combined for hwsim test run $(date +%s)" combined.info.filtered --output-directory $ODIR > lcov.log 2>&1
33
34rm -r /tmp/logs/alt-wpa_supplicant
35rm -r /tmp/logs/alt-hostapd
36rm -r /tmp/logs/alt-hostapd-as
37rm -r /tmp/logs/alt-hlr_auc_gw
38rm /tmp/logs/lcov-*info-*
39rmdir /tmp/logs
40