perf-test: bump version to 0.4, use manifest files

The new revision of the performance test includes manifests for each corpus,
so update the support library to use these manifests at the same time.
This commit is contained in:
David Bremner 2013-11-30 23:00:03 -04:00
parent 6d6006bea9
commit 2de8ce9b37
3 changed files with 61 additions and 29 deletions

View file

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.15 (GNU/Linux)
iQGcBAABCAAGBQJSdaDkAAoJEPIClx2kp54sQ54L/ikkvF1fy88hjLitN59v6g2J
vw85YNRifNHyp/UXI6nt2eXFzyWJiRHuvHFoBgmEsJVxauOKw61Gs2zd53x9Ear4
MGcQWyiM1cnwX/nD7GvxRQNh33f+FEamTjg+QhG47K0A2YdLWcDC7r9GMatGT11x
5KE24WQGOqtgQn/9qNtJvkiKIehpRiDTaW/QJ7mTCYeJFjIHJUY8dxyfiTtkJ0z7
cJ6omehvWSw4STbEg65XJgqykxMdltNEavfvSbAT73FgmkkyXxul0s5hDZ/esd0n
re3dyDxGt085POiAgPti05a4tJI5EQC2wLBUFri0s2JdMtazcD6yVuHNbVzZ4Do3
nL/sgwKGUq5wRrPqPWp6HXtZ9zG+/V7hFNrr/l42qGrLqsSh0bqvEnUiwczZLBGy
NEs4G8VjmfS2cMKePsWaekBAvFUtb47PSB6JIPwpCNvKXDrcCb28eOQVB2atgj1h
9SktOtWYJhWIQp2YW9iae30Z6lhCcdPRRHTFMQq2nQ==
=eSMY
-----END PGP SIGNATURE-----

View file

@ -41,52 +41,70 @@ add_email_corpus ()
{ {
rm -rf ${MAIL_DIR} rm -rf ${MAIL_DIR}
case "$corpus_size" in CORPUS_DIR=${TEST_DIRECTORY}/corpus
small) mkdir -p "${CORPUS_DIR}"
mail_subdir="mail/enron/bailey-s"
check_for="${TEST_DIRECTORY}/corpus/$mail_subdir"
;;
medium)
mail_subdir="mail/notmuch-archive"
check_for="${TEST_DIRECTORY}/corpus/$mail_subdir"
;;
*)
mail_subdir=mail
check_for="${TEST_DIRECTORY}/corpus/$mail_subdir/enron/wolfe-j"
esac
MAIL_CORPUS="${TEST_DIRECTORY}/corpus/$mail_subdir" MAIL_CORPUS="${CORPUS_DIR}/mail.${corpus_size}"
TAG_CORPUS="${TEST_DIRECTORY}/corpus/tags" TAG_CORPUS="${CORPUS_DIR}/tags"
args=() if command -v pixz > /dev/null; then
XZ=pixz
else
XZ=xz
fi
if [ ! -d "${CORPUS_DIR}/manifest" ]; then
printf "Unpacking manifests\n"
tar --extract --use-compress-program ${XZ} --strip-components=1 \
--directory ${TEST_DIRECTORY}/corpus \
--wildcards --file ../download/notmuch-email-corpus-${PERFTEST_VERSION}.tar.xz \
'notmuch-email-corpus/manifest/*'
fi
file_list=$(mktemp file_listXXXXXX)
if [ ! -d "$TAG_CORPUS" ] ; then if [ ! -d "$TAG_CORPUS" ] ; then
args+=("notmuch-email-corpus/tags") echo "notmuch-email-corpus/tags" >> $file_list
fi fi
if [ ! -d "$check_for" ] ; then if [ ! -d "$MAIL_CORPUS" ] ; then
args+=("notmuch-email-corpus/$mail_subdir") if [[ "$corpus_size" != "large" ]]; then
fi sed s,^,notmuch-email-corpus/, < \
${TEST_DIRECTORY}/corpus/manifest/MANIFEST.${corpus_size} >> $file_list
if [[ ${#args[@]} > 0 ]]; then
if command -v pixz > /dev/null; then
XZ=pixz
else else
XZ=xz echo "notmuch-email-corpus/mail" >> $file_list
fi fi
fi
if [[ -s $file_list ]]; then
printf "Unpacking corpus\n" printf "Unpacking corpus\n"
mkdir -p "${TEST_DIRECTORY}/corpus"
tar --checkpoint=.5000 --extract --strip-components=1 \ tar --checkpoint=.5000 --extract --strip-components=1 \
--directory ${TEST_DIRECTORY}/corpus \ --directory ${TEST_DIRECTORY}/corpus \
--use-compress-program ${XZ} \ --use-compress-program ${XZ} \
--file ../download/notmuch-email-corpus-${PERFTEST_VERSION}.tar.xz \ --file ../download/notmuch-email-corpus-${PERFTEST_VERSION}.tar.xz \
"${args[@]}" --anchored --recursion \
--files-from $file_list
printf "\n" printf "\n"
if [[ ! -d ${MAIL_CORPUS} ]]; then
printf "creating link farm\n"
if [[ "$corpus_size" = large ]]; then
cp -rl ${TEST_DIRECTORY}/corpus/mail ${MAIL_CORPUS}
else
while read -r file; do
tdir=${MAIL_CORPUS}/$(dirname $file)
mkdir -p $tdir
ln ${TEST_DIRECTORY}/corpus/$file $tdir
done <${TEST_DIRECTORY}/corpus/manifest/MANIFEST.${corpus_size}
fi
fi
fi fi
rm $file_list
cp -lr $TAG_CORPUS $TMP_DIRECTORY/corpus.tags cp -lr $TAG_CORPUS $TMP_DIRECTORY/corpus.tags
cp -lr $MAIL_CORPUS $MAIL_DIR cp -lr $MAIL_CORPUS $MAIL_DIR
} }

View file

@ -1,3 +1,3 @@
# this should be both a valid Makefile fragment and valid POSIX(ish) shell. # this should be both a valid Makefile fragment and valid POSIX(ish) shell.
PERFTEST_VERSION=0.3 PERFTEST_VERSION=0.4