Xpra: Ticket #1827: Filename bug with automated tests

As discussed earlier, I'm writing up a ticket to document some strange behavior I was seeing with our machine that's running the automated tests regularly.

As is now, here's what the crontab looks like:

#Run the Daily Automated Tests
0 19 * * * /home/xpra/bin/runautomatedtests.sh
#Run the TC Tests
30 0 * * * /home/xpra/bin/runtctests.sh
#Run the Bandwidth Tests
30 4 * * * /home/xpra/bin/runbandwidthtests.sh
#Update Xpra daily after running the tests
0 9 * * * /home/xpra/bin/updatexpra.sh

(Among a few other commented out scripts that are no longer enabled)

Here's what the top of runautomatedtests.sh looks like:

#!/bin/bash
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export DISPLAY=:0
date="$(date +%Y%m%d%k%M)"
~/tests/xpra/test_measure_perf.py config_just_av ~/tests/xpra/data/automated/av_${date}_2_1.csv 1 2 2>&1 | tee ~/tests/xpra/data/automated/logs/av_${date}_2_1.log

And this one works correctly - every morning it runs all the tests and everything outputs correctly. The problematic one was runbandwidthtests.sh and runtctests.sh.

Here's the top of runbandwidthtests.sh:

#!/bin/bash
#Init variables
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export DISPLAY=:0
#export PYTHONPATH=/usr/lib/python2.7
date="$(date +%Y%m%d%k%M)"
#Turn on mild bandwidth limits - start with 50mbits
sudo tc qdisc add dev lo root netem rate 50mbit
#Run the test
~/tests/xpra/test_measure_perf.py config_just_av ~/tests/xpra/data/automated/av_${date}_2_1_50mbit.csv 1 2 2>&1 | tee ~/tests/xpra/data/automated/logs/av_${date}_2_1_50mbit.log

And here's the top of runtctests.sh:

#!/bin/bash
#Init variables
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export DISPLAY=:0
date="$(date +%Y%m%d%k%M)"
#Turn on light TC
sudo tc qdisc add dev lo root netem delay 25ms 10ms 25%
#Run the tests
~/tests/xpra/test_measure_perf.py config_just_av ~/tests/xpra/data/automated/av_${date}_2_1_lighttc.csv 1 2 2>&1 | tee ~/tests/xpra/data/automated/logs/av_${date}_2_1_lighttc.log
~/tests/xpra/test_measure_perf.py config_just_glx ~/tests/xpra/data/automated/glx_${date}_2_1_lighttc.csv 1 2 2>&1 | tee  ~/tests/xpra/data/automated/logs/glx_${date}_2_1_lighttc.log
~/tests/xpra/test_measure_perf.py config_just_x11 ~/tests/xpra/data/automated/x11_${date}_2_1_lighttc.csv 1 2 2>&1 | tee  ~/tests/xpra/data/automated/logs/x11_${date}_2_1_lighttc.log

And for some odd reason the last two don't output their files correctly - I end up with a file with no file ending that has the pattern prefix_date with the rest of the filename argument as one of the start commands. For reference, here's a snippet from the file av_20180408:

"png (vlc sound visual - None - None - unthrottled - via tcp)", "xpra", "2.3", "2.3", "030_2_2_bareedgeofwifi.csv 2 2", "Unversioned directory", "png", -1, -1, "llvmpipe (LLVM 4.0, 256 bits)", "vlc sound visual", 120, 1523189767.45, "8x Intel Xeon CPU E3-1230 v3 @ 3.30GHz", "x86_64", "4.14.4-200.fc26.x86_64", "X.Org X Server 1.19.3", "llvmpipe (LLVM 4.0, 256 bits)", "unknown", "1024x768", , , "tcp", 0, 0, 0, 81, 5230, 154, 5172974, 24, 14140132, 36414063, 45567324, 0, 884, 0, 4947850, 0, "", "", "", "", 44.0, 5.3, 14, 1181, 118, 57.3, 9.6, 7, 1429, 97, 12, 42, 76, , , , , , , , , , , , , 0, 15, 34, , , , , ,

This file is clearly a .CSV, and the first part contains 030_2_2_bareedgeofwifi.csv 2 2, which should not be in the arguments.

So this is what I'm seeing. As a workaround I changed the date variable to not include the time, and only the date:

date="$(date +%Y%m%d)"



Fri, 04 May 2018 17:45:41 GMT - J. Max Mena: attachment set


Fri, 04 May 2018 17:46:00 GMT - J. Max Mena: attachment set


Fri, 04 May 2018 17:46:09 GMT - J. Max Mena: attachment set


Sun, 06 May 2018 16:27:16 GMT - Antoine Martin: owner changed

Looks like a case of missing quotes. I'm sure smo can help you there.

Personally, I would use something like:

pushd ~/tests/xpra
./test_measure_perf.py config_just_av "./data/automated/av_${date}_2_1_lighttc.csv"
popd

Also, if you are adding tc rules in a script, you should ensure you remove them at the end using an exit trap. If somehow they don't get removed, this could really badly skew the other results.


Thu, 10 May 2018 20:29:19 GMT - J. Max Mena: status changed; resolution set

I'm gonna intercept this one from Smo - I implemented the changes you suggested:

That has completely solved this issue. I'm gonna go ahead and close this ticket as fixed.


Thu, 05 Mar 2020 12:00:43 GMT - Antoine Martin: milestone changed

We never got the fixed script..


Sat, 23 Jan 2021 05:34:50 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1827