1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4RUN_BENCH="sudo ./bench -w3 -d10 -a"
5
6function header()
7{
8	local len=${#1}
9
10	printf "\n%s\n" "$1"
11	for i in $(seq 1 $len); do printf '='; done
12	printf '\n'
13}
14
15function subtitle()
16{
17	local len=${#1}
18	printf "\t%s\n" "$1"
19}
20
21function hits()
22{
23	echo "$*" | sed -E "s/.*hits\s+([0-9]+\.[0-9]+ ± [0-9]+\.[0-9]+M\/s).*/\1/"
24}
25
26function drops()
27{
28	echo "$*" | sed -E "s/.*drops\s+([0-9]+\.[0-9]+ ± [0-9]+\.[0-9]+M\/s).*/\1/"
29}
30
31function percentage()
32{
33	echo "$*" | sed -E "s/.*Percentage\s=\s+([0-9]+\.[0-9]+).*/\1/"
34}
35
36function ops()
37{
38	echo -n "throughput: "
39	echo -n "$*" | sed -E "s/.*throughput\s+([0-9]+\.[0-9]+ ± [0-9]+\.[0-9]+\sM\sops\/s).*/\1/"
40	echo -n -e ", latency: "
41	echo "$*" | sed -E "s/.*latency\s+([0-9]+\.[0-9]+\sns\/op).*/\1/"
42}
43
44function local_storage()
45{
46	echo -n "hits throughput: "
47	echo -n "$*" | sed -E "s/.* hits throughput\s+([0-9]+\.[0-9]+ ± [0-9]+\.[0-9]+\sM\sops\/s).*/\1/"
48	echo -n -e ", hits latency: "
49	echo -n "$*" | sed -E "s/.* hits latency\s+([0-9]+\.[0-9]+\sns\/op).*/\1/"
50	echo -n ", important_hits throughput: "
51	echo "$*" | sed -E "s/.*important_hits throughput\s+([0-9]+\.[0-9]+ ± [0-9]+\.[0-9]+\sM\sops\/s).*/\1/"
52}
53
54function total()
55{
56	echo "$*" | sed -E "s/.*total operations\s+([0-9]+\.[0-9]+ ± [0-9]+\.[0-9]+M\/s).*/\1/"
57}
58
59function summarize()
60{
61	bench="$1"
62	summary=$(echo $2 | tail -n1)
63	printf "%-20s %s (drops %s)\n" "$bench" "$(hits $summary)" "$(drops $summary)"
64}
65
66function summarize_percentage()
67{
68	bench="$1"
69	summary=$(echo $2 | tail -n1)
70	printf "%-20s %s%%\n" "$bench" "$(percentage $summary)"
71}
72
73function summarize_ops()
74{
75	bench="$1"
76	summary=$(echo $2 | tail -n1)
77	printf "%-20s %s\n" "$bench" "$(ops $summary)"
78}
79
80function summarize_local_storage()
81{
82	bench="$1"
83	summary=$(echo $2 | tail -n1)
84	printf "%-20s %s\n" "$bench" "$(local_storage $summary)"
85}
86
87function summarize_total()
88{
89	bench="$1"
90	summary=$(echo $2 | tail -n1)
91	printf "%-20s %s\n" "$bench" "$(total $summary)"
92}
93