<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/10261">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">add script for testing performance and number of correctly decoded frames<br><br>Change-Id: I6d8030969eed4519520745207591ce4731939201<br>---<br>M src/.gitignore<br>A src/tetra-rx-tests.sh<br>2 files changed, 83 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/.gitignore b/src/.gitignore</span><br><span>index 8451771..a72cffe 100644</span><br><span>--- a/src/.gitignore</span><br><span>+++ b/src/.gitignore</span><br><span>@@ -7,3 +7,4 @@</span><br><span> float_to_bits</span><br><span> crc_test</span><br><span> tunctl</span><br><span style="color: hsl(120, 100%, 40%);">+tests_data/*</span><br><span>diff --git a/src/tetra-rx-tests.sh b/src/tetra-rx-tests.sh</span><br><span>new file mode 100755</span><br><span>index 0000000..f84a1ad</span><br><span>--- /dev/null</span><br><span>+++ b/src/tetra-rx-tests.sh</span><br><span>@@ -0,0 +1,82 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/bash</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+if [ $# -lt 1 ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "$0"</span><br><span style="color: hsl(120, 100%, 40%);">+   echo "Runs tetra-rx on bit files provided as args, prints the number of correct frames"</span><br><span style="color: hsl(120, 100%, 40%);">+     echo " and the time it took and compares it to previous runs."</span><br><span style="color: hsl(120, 100%, 40%);">+      echo ""</span><br><span style="color: hsl(120, 100%, 40%);">+     echo "Extra options:"</span><br><span style="color: hsl(120, 100%, 40%);">+       echo "     -n <experiment name> (default: git head id) (no spaces and \"-\" please)"</span><br><span style="color: hsl(120, 100%, 40%);">+        echo "     -o overwrite previous measurement"</span><br><span style="color: hsl(120, 100%, 40%);">+       echo "     -t parameters for tetra-rx"</span><br><span style="color: hsl(120, 100%, 40%);">+      echo ""</span><br><span style="color: hsl(120, 100%, 40%);">+     echo "Examples:"</span><br><span style="color: hsl(120, 100%, 40%);">+    echo "$0 path/to/file.bits"</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "$0 -n \"something changed\" path/to/file.bits path/to/file2.bits"</span><br><span style="color: hsl(120, 100%, 40%);">+   exit 1</span><br><span style="color: hsl(120, 100%, 40%);">+fi</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+if ! command -v bc > /dev/null; then</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "Please install \"bc\""</span><br><span style="color: hsl(120, 100%, 40%);">+fi</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+TESTS_DIR="tests_data/"</span><br><span style="color: hsl(120, 100%, 40%);">+mkdir -p "$TESTS_DIR"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+n=`git rev-parse HEAD`</span><br><span style="color: hsl(120, 100%, 40%);">+o=0</span><br><span style="color: hsl(120, 100%, 40%);">+t=" "</span><br><span style="color: hsl(120, 100%, 40%);">+while getopts ":n:ot:" opt; do</span><br><span style="color: hsl(120, 100%, 40%);">+  case $opt in</span><br><span style="color: hsl(120, 100%, 40%);">+  n)</span><br><span style="color: hsl(120, 100%, 40%);">+            n="$OPTARG"</span><br><span style="color: hsl(120, 100%, 40%);">+         ;;</span><br><span style="color: hsl(120, 100%, 40%);">+    o)</span><br><span style="color: hsl(120, 100%, 40%);">+            o=1</span><br><span style="color: hsl(120, 100%, 40%);">+           ;;</span><br><span style="color: hsl(120, 100%, 40%);">+    t)</span><br><span style="color: hsl(120, 100%, 40%);">+            t="$OPTARG"</span><br><span style="color: hsl(120, 100%, 40%);">+         ;;</span><br><span style="color: hsl(120, 100%, 40%);">+    \?)</span><br><span style="color: hsl(120, 100%, 40%);">+           echo "Unknown option $OPTARG" >&2</span><br><span style="color: hsl(120, 100%, 40%);">+            exit 1</span><br><span style="color: hsl(120, 100%, 40%);">+                ;;</span><br><span style="color: hsl(120, 100%, 40%);">+    :)</span><br><span style="color: hsl(120, 100%, 40%);">+            echo "-$OPTARG requires argument" >&2</span><br><span style="color: hsl(120, 100%, 40%);">+                exit 1</span><br><span style="color: hsl(120, 100%, 40%);">+                ;;</span><br><span style="color: hsl(120, 100%, 40%);">+    esac</span><br><span style="color: hsl(120, 100%, 40%);">+done</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+shift $(( $OPTIND - 1 ))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+tmpdir=`mktemp -d /tmp/tetraXXX`</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+for f in $@; do</span><br><span style="color: hsl(120, 100%, 40%);">+ corrects=`"time" -o "$tmpdir/time" ./tetra-rx "$f" $t 2>/dev/null | grep -E "^CRC COMP: 0x.+ OK" | wc -l`</span><br><span style="color: hsl(120, 100%, 40%);">+  tt=`grep user "$tmpdir/time" | head -n 1 | cut -d u -f 1`</span><br><span style="color: hsl(120, 100%, 40%);">+   echo "$f: $corrects frames, $tt s"</span><br><span style="color: hsl(120, 100%, 40%);">+  hash=`sha256sum "$f" | cut -c 1-20`</span><br><span style="color: hsl(120, 100%, 40%);">+ fnb="$TESTS_DIR/rx-$hash-"</span><br><span style="color: hsl(120, 100%, 40%);">+  for meas in "$fnb"*; do</span><br><span style="color: hsl(120, 100%, 40%);">+             if ! [ -s "$meas" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+                   continue</span><br><span style="color: hsl(120, 100%, 40%);">+              fi</span><br><span style="color: hsl(120, 100%, 40%);">+            tag=`echo "$meas" | rev | cut -d - -f 1 | rev`</span><br><span style="color: hsl(120, 100%, 40%);">+              if [ "$tag" = "$n" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+                        continue</span><br><span style="color: hsl(120, 100%, 40%);">+              fi</span><br><span style="color: hsl(120, 100%, 40%);">+            pf=`cat "$meas" | cut -d " " -f 1`</span><br><span style="color: hsl(120, 100%, 40%);">+                pt=`cat "$meas" | cut -d " " -f 2`</span><br><span style="color: hsl(120, 100%, 40%);">+                deltaf=`echo "scale=7; $corrects/$pf" | bc -l`</span><br><span style="color: hsl(120, 100%, 40%);">+              deltat=`echo "scale=3; $tt/$pt" | bc -l`</span><br><span style="color: hsl(120, 100%, 40%);">+            echo "... ${deltaf}x frames than $tag"</span><br><span style="color: hsl(120, 100%, 40%);">+              echo "... ${deltat}x time than $tag"</span><br><span style="color: hsl(120, 100%, 40%);">+        done</span><br><span style="color: hsl(120, 100%, 40%);">+  fn="$fnb$n"</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ "$o" -eq 1 -o ! -s "$fn" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+             echo "$corrects $tt" > "$fn"</span><br><span style="color: hsl(120, 100%, 40%);">+   fi</span><br><span style="color: hsl(120, 100%, 40%);">+done</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+rm -r "$tmpdir"</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/10261">change 10261</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/10261"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-tetra </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I6d8030969eed4519520745207591ce4731939201 </div>
<div style="display:none"> Gerrit-Change-Number: 10261 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Jan Hrach <jenda.2vf9h@hrach.eu> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>