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 <david(a)gibson.dropbear.id.au>
---
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