From b467e7509e367f11784c20cb9ac8eef3c74c7468 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Tue, 24 May 2016 21:08:13 +0200 Subject: stress_tests: add header comments Also, convert extractloop.bash to using md5sum instead of diff -ur so the user does not have to keep an extracted kernel tree around. And print the iteration time. --- stress_tests/extractloop.bash | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'stress_tests/extractloop.bash') diff --git a/stress_tests/extractloop.bash b/stress_tests/extractloop.bash index a5d0539..cb67707 100755 --- a/stress_tests/extractloop.bash +++ b/stress_tests/extractloop.bash @@ -1,7 +1,19 @@ #!/bin/bash +# +# Mount a gocryptfs filesystem somewhere on /tmp, then run two parallel +# infinite loops inside that do the following: +# 1) Extract linux-3.0.tar.gz +# 2) Verify the md5sums +# 3) Delete, go to (1) +# +# This test is good at discovering inode-related memory leaks because it creates +# huge numbers of files. set -eu +cd "$(dirname "$0")" +MD5="$PWD/extractloop.md5sums" + # Setup cd /tmp wget -nv --show-progress -c https://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.gz @@ -18,17 +30,23 @@ cd $DIR2 trap "cd /; fusermount -u -z $DIR2; rm -rf $DIR1 $DIR2" EXIT function loop { - # Note: $$ returns the PID of the *parent* shell + # Note: In a subshell, $$ returns the PID of the *parent* shell, + # we need our own, which is why we have to use $BASHPID. mkdir $BASHPID cd $BASHPID + echo "[pid $BASHPID] Starting loop" + N=1 while true do - echo "[pid $BASHPID] $N: $(date +%H:%M:%S)" + t1=$(date +%s) tar xf /tmp/linux-3.0.tar.gz - diff -ur linux-3.0 /tmp/linux-3.0 + md5sum --status -c $MD5 rm -Rf linux-3.0 + t2=$(date +%s) + delta=$((t2-t1)) + echo "[pid $BASHPID] Iteration $N done, $delta seconds" let N=$N+1 done } -- cgit v1.2.3