[PATCH 0/2] Fixes for logging tests
Here's a fix for a spurious test failure in the logging tests, along with a trivial cleanup. David Gibson (2): test: Slight simplification to pasta log tests test: Make log truncation test more robust test/pasta_options/log_to_file | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) -- 2.44.0
test/pasta_options/log_to_file contains a couple of rudimentary tests
where we start pasta with an interactive shell, then immediately exit it.
We can achieve the same thing by using /bin/true as the command to pasta.
This also means that waiting for pasta to start, waiting for the executed
command to complete and for pasta to clean up are all handled by simply
waiting for pasta to complete in the foreground, so there's no need for an
additional sleep.
Signed-off-by: David Gibson
test/pasta_options/log_to_file checks that pasta truncates its log file
when started. It does that by starting pasta with a log file once, then
starting it again and checking that after the second round, the log file
has only one line: the startup banner from the second invocation.
However, this test will break if the second invocation logs any additional
messages at startup. This can easily happen on a host with multiple
network interfaces due to the "Multiple default route" informational
messages added in 639fdf06e ("netlink: Fix selection of template
interface"). I believe it could also happen on a host without IPv6
connectivity due to the "Couldn't pick external interface" messages, though
I haven't confirmed this.
Make the log file test more robust, by not testing for a single line, but
instead explicitly testing for the PID of the second pasta invocation in
the banner line.
Link: https://bugs.passt.top/show_bug.cgi?id=88
Signed-off-by: David Gibson
On Wed, 24 Apr 2024 14:30:00 +1000
David Gibson
test/pasta_options/log_to_file checks that pasta truncates its log file when started. It does that by starting pasta with a log file once, then starting it again and checking that after the second round, the log file has only one line: the startup banner from the second invocation.
However, this test will break if the second invocation logs any additional messages at startup. This can easily happen on a host with multiple network interfaces due to the "Multiple default route" informational messages added in 639fdf06e ("netlink: Fix selection of template interface"). I believe it could also happen on a host without IPv6 connectivity due to the "Couldn't pick external interface" messages, though I haven't confirmed this.
Make the log file test more robust, by not testing for a single line, but instead explicitly testing for the PID of the second pasta invocation in the banner line.
Link: https://bugs.passt.top/show_bug.cgi?id=88
Signed-off-by: David Gibson
--- test/pasta_options/log_to_file | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/pasta_options/log_to_file b/test/pasta_options/log_to_file index f1002167..fe50e50b 100644 --- a/test/pasta_options/log_to_file +++ b/test/pasta_options/log_to_file @@ -37,8 +37,9 @@ passt ./pasta -l __LOG_FILE__ -- /bin/true check [ -s __LOG_FILE__ ]
test Log truncated on creation -passt ./pasta -l __LOG_FILE__ -- /bin/true -check [ $(cat __LOG_FILE__ | wc -l) -eq 1 ] +passt ./pasta -l __LOG_FILE__ -- /bin/true & wait +pout PID2 echo $! +check head -1 __LOG_FILE__ | grep '^pasta .* [(]__PID2__[)]$' ^^^^^^^^^^^^^^
I'm mildly amused that this actually works. :) -- Stefano
participants (2)
-
David Gibson
-
Stefano Brivio