ca2749e1bd
In practical terms, passt doesn't benefit from the additional protection offered by the AGPL over the GPL, because it's not suitable to be executed over a computer network. Further, restricting the distribution under the version 3 of the GPL wouldn't provide any practical advantage either, as long as the passt codebase is concerned, and might cause unnecessary compatibility dilemmas. Change licensing terms to the GNU General Public License Version 2, or any later version, with written permission from all current and past contributors, namely: myself, David Gibson, Laine Stump, Andrea Bolognani, Paul Holzinger, Richard W.M. Jones, Chris Kuhn, Florian Weimer, Giuseppe Scrivano, Stefan Hajnoczi, and Vasiliy Ulyanov. Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
93 lines
2.3 KiB
Text
93 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__
|
|
passtb exit
|
|
sleep 1
|
|
check [ -s __LOG_FILE__ ]
|
|
|
|
test Log truncated on creation
|
|
passt ./pasta -l __LOG_FILE__
|
|
passtb exit
|
|
sleep 1
|
|
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
|