#!/bin/sh # Generate report showing matrix of build results for a run of regtest-run.sh # Copyright (C) 2005, Dan Kegel, Google # License: GPL # This badly needs rewriting in perl. set -e cd jobdir LANG=C export LANG # Generating simple machine-readable report # put GCC_CORE_DIR after GLIBC_DIR to get column order right in report for file in *.dat.txt; do echo -n "NAME=$file " cat $file | sed 's/GCC_CORE/GLIBC_ZZZ/' | sort | egrep 'TARGET=|GCC_DIR|GLIBC_ZZZ|GLIBC_DIR|BINUTILS_DIR|LINUX|PASS|FAIL|ICE' | sed 's/GLIBC_ZZZ/GCC_CORE/' | tr '\012' '\011' echo "" done | sed 's/\.dat\.txt//' > all.dats.txt # Generate fancy index.html report # Figure out which tool combinations were used # Extract TLS from NAME and move it to end, so it's the most minor sort key sed 's/NAME=[-_a-zA-Z0-9\.]*tls\(.*\)/\1 TLS=tls/;s/NAME=[-_a-zA-Z0-9\.]*nptl\(.*\)/\1 TLS=nptl/;s/NAME=[-_a-zA-Z0-9\.]*//;s/TARGET=[_a-z0-9\-]*//;s/toolchain=[A-Z]*//;s/kernel=[A-Z]*//;s/gdb=[A-Z]*//;s/gdbserver=[A-Z]*//' < all.dats.txt | sort -u | tr '\011' ':' | grep ':.*:.*:' | sed 's/::*/:/g' | sort -u | grep GCC | grep GLIBC > all-tools.tmp ALL_CPUS=`cat all.dats.txt | tr '\011' '\012' | grep TARGET= | sed 's/TARGET=//;s/-unknown//;s/-linux-gnu//' | sort -u` OUT=index.html cat > $OUT <<_EOF_
" >> $OUT for tools in `cat all-tools.tmp`; do echo $tools | tr ':' '\012' > tools.tmp TLS=; grep tls tools.tmp > /dev/null && TLS=tls; grep nptl tools.tmp > /dev/null && TLS=nptl BINUTILS_DIR=`awk -F= '/BINUTILS_DIR/ {print $2}' tools.tmp` GCC_CORE_DIR=`awk -F= '/GCC_CORE_DIR/ {print $2}' tools.tmp` GCC_DIR=`awk -F= '/GCC_DIR/ {print $2}' tools.tmp` GLIBC_DIR=`awk -F= '/GLIBC_DIR/ {print $2}' tools.tmp` LINUX_DIR=`awk -F= '/LINUX_DIR/ {print $2}' tools.tmp` LINUX_SANITIZED_HEADER_DIR=`awk -F= '/LINUX_SANITIZED_HEADER_DIR/ {print $2}' tools.tmp` if test -n "$LINUX_SANITIZED_HEADER_DIR"; then LINUX_SANITIZED_HEADER_DIR=hdrs-`echo $LINUX_SANITIZED_HEADER_DIR | sed 's/.*-//'` fi echo " | $GCC_DIR c$GCC_CORE_DIR $GLIBC_DIR $BINUTILS_DIR $LINUX_DIR $LINUX_SANITIZED_HEADER_DIR $TLS | " >> $OUT
done
echo '|
---|---|---|
'$cpu' | ' for tools in `cat all-tools.tmp`; do echo $tools | tr ':' '\012' > tools.tmp TLS=; grep tls tools.tmp > /dev/null && TLS=tls; grep nptl tools.tmp > /dev/null && TLS=nptl BINUTILS_DIR=`awk -F= '/BINUTILS_DIR/ {print $2}' tools.tmp` GCC_DIR=`awk -F= '/GCC_DIR/ {print $2}' tools.tmp` GCC_CORE_DIR=`awk -F= '/GCC_CORE_DIR/ {print $2}' tools.tmp` GLIBC_DIR=`awk -F= '/GLIBC_DIR/ {print $2}' tools.tmp` LINUX_DIR=`awk -F= '/LINUX_DIR/ {print $2}' tools.tmp` LINUX_SANITIZED_HEADER_DIR=`awk -F= '/LINUX_SANITIZED_HEADER_DIR/ {print $2}' tools.tmp` toolcombo=$GCC_DIR-$GLIBC_DIR if test -n "$LINUX_SANITIZED_HEADER_DIR"; then LINUX_SANITIZED_HEADER_DIR=hdrs-`echo $LINUX_SANITIZED_HEADER_DIR | sed 's/.*-//'` #toolcombo=$toolcombo-$LINUX_SANITIZED_HEADER_DIR fi case $TLS in *tls*) toolcombo=$toolcombo-tls ;; *nptl*) toolcombo=$toolcombo-nptl ;; *) ;; esac echo 'ok' ;;
*kernel=ICE*) echo 'style="background-color: yellow">kernel ICE' ;;
*toolchain=PASS*) echo 'style="background-color: yellow">kernel fail' ;;
*toolchain=ICE*) echo 'style="background-color: orange">ICE' ;;
*toolchain=FAIL*) echo 'style="background-color: red">FAIL' ;;
*) echo 'bug in regtest-report.sh' ;;
esac
case "$status" in
*gdb=PASS*) echo ' gdb ok' ;; *gdb=FAIL*) echo ' gdb FAIL' ;; *gdb=n/a*) ;; *) echo 'bug in regtest-report.sh' ;; esac fi echo ' | '
done
# Repeat left headings on right
echo ''$cpu' | ' echo '
" >> $OUT for tools in `cat all-tools.tmp`; do echo $tools | tr ':' '\012' > tools.tmp TLS=; grep tls tools.tmp > /dev/null && TLS=tls; grep nptl tools.tmp > /dev/null && TLS=nptl BINUTILS_DIR=`awk -F= '/BINUTILS_DIR/ {print $2}' tools.tmp` GCC_DIR=`awk -F= '/GCC_DIR/ {print $2}' tools.tmp` GCC_CORE_DIR=`awk -F= '/GCC_CORE_DIR/ {print $2}' tools.tmp` GLIBC_DIR=`awk -F= '/GLIBC_DIR/ {print $2}' tools.tmp` LINUX_DIR=`awk -F= '/LINUX_DIR/ {print $2}' tools.tmp` LINUX_SANITIZED_HEADER_DIR=`awk -F= '/LINUX_SANITIZED_HEADER_DIR/ {print $2}' tools.tmp` if test -n "$LINUX_SANITIZED_HEADER_DIR"; then LINUX_SANITIZED_HEADER_DIR=hdrs-`echo $LINUX_SANITIZED_HEADER_DIR | sed 's/.*-//'` fi echo " | $GCC_DIR c$GCC_CORE_DIR $GLIBC_DIR $BINUTILS_DIR $LINUX_DIR $LINUX_SANITIZED_HEADER_DIR $TLS | " >> $OUT
done
echo '