#!/bin/bash # Clean: shellcheck -e 2001 ./tcwg-benchmark-results.sh set -euf -o pipefail scripts=$(dirname $0) # shellcheck source=jenkins-helpers.sh . $scripts/jenkins-helpers.sh convert_args_to_variables "$@" obligatory_variables results top_artifacts="${top_artifacts-artifacts}" verbose="${verbose-false}" # shellcheck disable=SC2154 num_entries_opt="${num_dsos+--num-dsos $num_dsos} ${num_symbols+--num-symbols $num_symbols}" entry_threshold="${entry_threshold-5}" has_perf_logs="${has_perf_logs-yes}" if $verbose; then set -x fi relative_opt="" # shellcheck disable=SC2154 if [ x"${results_ref+set}" = x"set" ]; then relative_opt="--relative" results=("$results_ref" "${results[@]}") num=0 else num=1 fi mkdir -p $top_artifacts results_top="bkp-01.tcwglab:/home/tcwg-benchmark/results" csvs="" for i in "${results[@]}"; do rsync -az --delete "$results_top-$i/" results-$num/ csv_results_dir="$top_artifacts/csv-results-$num" mkdir $csv_results_dir hw_tag="${i%%/*}" $scripts/../bmk-scripts/gather-metrics.sh --results_dir results-$num \ --csv_results_dir $csv_results_dir \ --hw_tag $hw_tag --has_perf_logs $has_perf_logs \ --verbose $verbose $num_entries_opt csvs="$csvs $csv_results_dir/results.csv" num=$(($num+1)) done # Demangling symbol names may introduce commas which will interfere with # parsing CSV files. So keep a separate copy results-internal.csv, which # contains mangled names. $scripts/../bmk-scripts/csvs2table.py -p $entry_threshold $relative_opt $csvs > $top_artifacts/results-internal.csv cat $top_artifacts/results-internal.csv | c++filt -p > $top_artifacts/results.csv $scripts/../bmk-scripts/csvs2table.py -p 0 $relative_opt $csvs | c++filt -p > $top_artifacts/results-full.csv $scripts/../bmk-scripts/csvs2table.py -p 99 $relative_opt $csvs | c++filt -p > $top_artifacts/results-brief.csv