Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(599)

Side by Side Diff: webrtc/modules/remote_bitrate_estimator/test/plot_dynamics.sh

Issue 2456373002: Update BWE_TEST_LOGGING_PLOT output format, and fix plot_dynamics.py script. (Closed)
Patch Set: Suppress warnings about unused variable. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/modules/remote_bitrate_estimator/test/plot_dynamics.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/bin/bash
2
3 # Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
4 #
5 # Use of this source code is governed by a BSD-style license
6 # that can be found in the LICENSE file in the root of the source
7 # tree. An additional intellectual property rights grant can be found
8 # in the file PATENTS. All contributing project authors may
9 # be found in the AUTHORS file in the root of the source tree.
10
11 # To set up in e.g. Eclipse, run a separate shell and pipe the output from the
12 # test into this script.
13 #
14 # In Eclipse, that amounts to creating a Run Configuration which starts
15 # "/bin/bash" with the arguments "-c [trunk_path]/out/Debug/modules_unittests
16 # --gtest_filter=*BweTest* | [trunk_path]/webrtc/modules/
17 # remote_bitrate_estimator/test/plot_dynamics.sh
18
19 # This script supports multiple figures (windows), the figure is specified as an
20 # identifier at the first argument after the PLOT command. Each figure has a
21 # single y axis and a dual y axis mode. If any line specifies an axis by ending
22 # with "#<axis number (1 or 2)>" two y axis will be used, the first will be
23 # assumed to represent bitrate (in kbps) and the second will be assumed to
24 # represent time deltas (in ms).
25
26 log=$(</dev/stdin)
27
28 # Plot dynamics.
29 function gen_gnuplot_input {
30 colors=(a7001f 0a60c2 b2582b 21a66c d6604d 4393c3 f4a582 92c5de edcbb7 b1c5d0)
31 plots=$(echo "$log" | grep "^PLOT" | grep "#")
32 # Each figure corresponds to a separate plot window.
33 figures=($(echo "$plots" | cut -f 2 | sort | uniq))
34
35 for figure in "${figures[@]}" ; do
36 # Each data set corresponds to a plot line.
37 data_sets=$(echo "$plots" | grep "^PLOT.$figure" | cut -f 3 | sort | uniq)
38 # Lines can be scaled on the left (1) or right (2) axis.
39 linetypes=($(echo "$data_sets" | grep "#" | cut -d '#' -f 2 | \
40 cut -d '@' -f 1 | uniq))
41
42 # Set plot configurations.
43 echo "reset; "
44 echo "set terminal wxt $figure size 1440,900 font \"Arial,9\"; "
45 echo "set xlabel \"Seconds\"; "
46 if (( "${#linetypes[@]}" > "1" )); then
47 echo "set ylabel 'Bitrate (kbps)';" # Left side.
48 echo "set ytics nomirror;"
49 echo "set y2label 'Time delta (ms)';" # Right side.
50 echo "set y2tics nomirror;"
51 else
52 # Single axis (left side), set its label according to data.
53 y_label=$(echo "$data_sets" | grep "#" | cut -d '#' -f 1 | \
54 cut -d ' ' -f 1 | cut -d '/' -f 3 | sed 's/[0-9]/#/g' | \
55 cut -d '#' -f 3 | head -n 1 | sed 's/_/ /g')
56 echo "set ylabel \"$y_label\";"
57 fi
58
59 i=0
60 echo -n "plot "
61 for set in $data_sets ; do
62 (( i++ )) && echo -n ","
63 echo -n "'-' with "
64 echo -n "linespoints "
65 echo -n "ps 0.5 "
66 echo -n "lc rgbcolor \"#${colors[$(($i % 10))]}\" "
67 if (( "${#linetypes[@]}" > "1" )); then
68 # Multiple sets can have a same line plot.
69 linetype=$(echo "$set" | grep "#" | cut -d '#' -f 2 | cut -d '@' -f 1)
70 if (( "${#linetype}" > "0")); then
71 echo -n "axes x1y$linetype "
72 else
73 # If no line type is specified, but line types are used, we will
74 # default to scale on the left axis.
75 echo -n "axes x1y1 "
76 fi
77 fi
78 echo -n "title \"$set\" "
79 done
80 echo
81 for set in $data_sets ; do
82 echo "$log" | grep "^PLOT.$figure.$set" | cut -f 4,5
83 echo "e"
84 done
85 done
86 }
87 gen_gnuplot_input | gnuplot -persist
OLDNEW
« no previous file with comments | « webrtc/modules/remote_bitrate_estimator/test/plot_dynamics.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698