X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=performance-test%2FT00-new.sh;h=de260b2d7116e41c5e31a3836bf18c2fb072a310;hb=6fec5d771ede7998ff395abd636d391c21163409;hp=553bb8b66a1f7dc32af48a8528da1fdab8049284;hpb=f0dfda5c7797f9db81ce35d270fe0ac406c7fca1;p=notmuch diff --git a/performance-test/T00-new.sh b/performance-test/T00-new.sh index 553bb8b6..de260b2d 100755 --- a/performance-test/T00-new.sh +++ b/performance-test/T00-new.sh @@ -1,15 +1,41 @@ -#!/bin/bash +#!/usr/bin/env bash test_description='notmuch new' -. ./perf-test-lib.sh +. $(dirname "$0")/perf-test-lib.sh || exit 1 uncache_database - time_start +manifest=$(mktemp manifestXXXXXX) +find mail -type f ! -path 'mail/.notmuch/*' | sed -n '1~4 p' > $manifest +xargs tar uf backup.tar < $manifest + for i in $(seq 2 6); do time_run "notmuch new #$i" 'notmuch new' done +# arithmetic context is to eat extra whitespace on e.g. some BSDs +count=$((`wc -l < $manifest`)) + +perl -nle 'rename $_, "$_.renamed"' $manifest + +time_run "new ($count mv)" 'notmuch new' + +perl -nle 'rename "$_.renamed", $_' $manifest + +time_run "new ($count mv back)" 'notmuch new' + +perl -nle 'unlink $_; unlink $_.copy' $manifest + +time_run "new ($count rm)" 'notmuch new' + +tar xf backup.tar + +time_run "new ($count restore)" 'notmuch new' + +perl -nle 'link $_, "$_.copy"' $manifest + +time_run "new ($count cp)" 'notmuch new' + time_done