2681366966
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 <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
89 lines
2.3 KiB
Text
89 lines
2.3 KiB
Text
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
#
|
|
# PASST - Plug A Simple Socket Transport
|
|
# for qemu/UNIX domain socket mode
|
|
#
|
|
# PASTA - Pack A Subtle Tap Abstraction
|
|
# for network namespace/tap device mode
|
|
#
|
|
# test/pasta_options/log_to_file - Check log creation, rotations and consistency
|
|
#
|
|
# Copyright (c) 2022 Red Hat GmbH
|
|
# Author: Stefano Brivio <sbrivio@redhat.com>
|
|
|
|
htools wc tcp_rr tail cut tr sort
|
|
|
|
def flood_log_server
|
|
passtb tcp_crr --nolog -P 10001 -C 10002 -6
|
|
sleep 1
|
|
endef
|
|
|
|
def flood_log_client
|
|
host tcp_crr --nolog -P 10001 -C 10002 -6 -c -H ::1
|
|
endef
|
|
|
|
def check_log_size_mountns
|
|
pout SIZE cat __LOG_FILE__ | wc -c
|
|
check [ __SIZE__ -gt $((50 * 1024)) ]
|
|
check [ __SIZE__ -lt $((100 * 1024)) ]
|
|
endef
|
|
|
|
test Log creation
|
|
|
|
set PORTS -t 10001,10002 -u 10001,10002
|
|
set LOG_FILE __STATEDIR__/pasta.log
|
|
|
|
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 ]
|
|
|
|
test Maximum log size
|
|
passtb ./pasta --config-net -d -f -l __LOG_FILE__ --log-size $((100 * 1024)) -- sh -c 'while true; do tcp_crr --nolog -P 10001 -C 10002 -6; done'
|
|
sleep 1
|
|
|
|
flood_log_client
|
|
check [ $(cat __LOG_FILE__ | wc -c) -gt $((50 * 1024)) ]
|
|
check [ $(cat __LOG_FILE__ | wc -c) -lt $((100 * 1024)) ]
|
|
|
|
flood_log_client
|
|
check [ $(cat __LOG_FILE__ | wc -c) -gt $((50 * 1024)) ]
|
|
check [ $(cat __LOG_FILE__ | wc -c) -lt $((100 * 1024)) ]
|
|
|
|
flood_log_client
|
|
check [ $(cat __LOG_FILE__ | wc -c) -gt $((50 * 1024)) ]
|
|
check [ $(cat __LOG_FILE__ | wc -c) -lt $((100 * 1024)) ]
|
|
|
|
pint
|
|
|
|
test Timestamp consistency after rotations
|
|
check tail -n +2 __LOG_FILE__ | cut -f1 -d' ' | tr -d [.:] | sort -c
|
|
|
|
test Maximum log size on tmpfs (no FALLOC_FL_COLLAPSE_RANGE)
|
|
passt unshare -rUm
|
|
passt mkdir __STATEDIR__/t
|
|
passt mount -t tmpfs none __STATEDIR__/t
|
|
set LOG_FILE __STATEDIR__/t/log
|
|
passt ./pasta --config-net -d -l __LOG_FILE__ --log-size $((100 * 1024))
|
|
|
|
flood_log_server
|
|
flood_log_client
|
|
check_log_size_mountns
|
|
|
|
flood_log_server
|
|
flood_log_client
|
|
check_log_size_mountns
|
|
|
|
flood_log_server
|
|
flood_log_client
|
|
check_log_size_mountns
|
|
|
|
test Timestamp consistency after rotations (no FALLOC_FL_COLLAPSE_RANGE)
|
|
check tail -n +2 __LOG_FILE__ | cut -f1 -d' ' | tr -d [.:] | sort -c
|
|
|
|
passtb exit
|
|
sleep 1
|
|
passt umount __STATEDIR__/t
|
|
passt exit
|