Plotting reworked
authorMichal Sojka <sojkam1@fel.cvut.cz>
Tue, 7 Dec 2010 22:30:51 +0000 (23:30 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Tue, 7 Dec 2010 22:30:51 +0000 (23:30 +0100)
gw-tests/lib.sh

index 741520f..f4e74ac 100644 (file)
@@ -78,13 +78,43 @@ traffic_and_length() {
     echo $opts -l $1
 }
 
+_measure() {
+    # Remove data from the last measurement
+    rm -rf *
+    touch .results
+    cat > plot.sh <<-EOF
+       #!/bin/bash
+       export kvers=$kvers
+       export hostkvers=$hostkvers
+       export traffic=$traffic
+       cd \$(dirname \$0)/$(dirname $script)
+       exec ./$(basename $script) --plot
+       EOF
+    chmod +x plot.sh
+    # Set can interfaces up
+    sshgw 'for i in 0 1; do ip link show dev can$i|grep -q UP || ip link set can$i up type can bitrate 1000000; done'
+    # Delete all vcan interfaces
+    sshgw 'for dev in $(ip l|grep -o vcan[^:]\\+); do ip link del dev $dev; done'
+    # Reset priorities
+    sshgw 'if pid=`pidof irq/145-can0`; then chrt -p -f 50 $pid > /dev/null; fi'
+    sshgw 'if pid=`pidof irq/146-can1`; then chrt -p -f 50 $pid > /dev/null; fi'
+    sshgw 'if pid=`pidof sirq-net-rx/0`; then chrt -p -f 49 $pid > /dev/null; fi'
+    sshgw 'if pid=`pidof sirq-net-tx/0`; then chrt -p -f 49 $pid > /dev/null; fi'
+    # Set the length of qdisc queue to avoid ENOBUFS errors
+    ifconfig can0 txqueuelen 200
+    cleanupgw
+    
+    main
+}
+
+
 _run() {
     if [[ $OPT_TRAFFIC = all ]]
     then traffics="flood 50 oneatatime"
-    else traffics=$OPT_TRAFFIC
+    else traffics=${traffic:-$OPT_TRAFFIC}
     fi
-    hostkvers=host-$(uname -r)
-    kvers=$(sshgw uname -r)
+    hostkvers=${hostkvers:-host-$(uname -r)}
+    kvers=${kvers:-$(sshgw uname -r)}
     test=$(basename $0 .sh)
     for traffic in $traffics; do
        dir="results/$hostkvers/$kvers/$traffic/$test"
@@ -93,31 +123,15 @@ _run() {
        cd $dir
        echo "Working directory: $dir"
        if [[ ! "$OPT_PLOT_ONLY" ]]; then
-           # Remove data from the last measurement
-           rm -rf *
-           touch .results
-           cat > plot.sh <<-EOF
-               #!/bin/bash
-               exec $script --plot
-               EOF
-           # Set can interfaces up
-           sshgw 'for i in 0 1; do ip link show dev can$i|grep -q UP || ip link set can$i up type can bitrate 1000000; done'
-           # Delete all vcan interfaces
-           sshgw 'for dev in $(ip l|grep -o vcan[^:]\\+); do ip link del dev $dev; done'
-           # Reset priorities
-           sshgw 'if pid=`pidof irq/145-can0`; then chrt -p -f 50 $pid > /dev/null; fi'
-           sshgw 'if pid=`pidof irq/146-can1`; then chrt -p -f 50 $pid > /dev/null; fi'
-           sshgw 'if pid=`pidof sirq-net-rx/0`; then chrt -p -f 49 $pid > /dev/null; fi'
-           sshgw 'if pid=`pidof sirq-net-tx/0`; then chrt -p -f 49 $pid > /dev/null; fi'
-           # Set the length of qdisc queue to avoid ENOBUFS errors
-           ifconfig can0 txqueuelen 200
-           cleanupgw
-
-           main
-
+           _measure
        fi
        if [[ ! "$OPT_PLOT_DISABLE" ]]; then
-           ./plot.sh
+           if [[ "$OPT_PLOT_ONLY" ]]; then
+               _plot
+           else
+               # Call ourselves once again
+               ./plot.sh
+           fi
        fi
        cd -
     done