You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 lines
5.0 KiB

#
# Part of the ht://Dig package <http://www.htdig.org/>
# Copyright (c) 1999-2004 The ht://Dig Group
# For copyright details, see the file COPYING in your distribution
# or the GNU Library General Public License version 2 or later
# <http://www.gnu.org/copyleft/lgpl.html>
#
include $(top_srcdir)/Makefile.config
#
# All test programs use the index description from the
# mifluz.conf file (MIFLUZ_CONFIG set in test_functions.in).
# Some have hard wired additions but these
# additions are never redundant with mifluz.conf content. Some
# programs have options that allow command line overriding of
# index parameters (page size, compression and such).
#
# To run individual tests use (for instance):
# make TESTS=t_wordkey check
#
# To turn on verbosity use (for instance):
# VERBOSE=-vv make TESTS=t_wordkey check
#
# Run individual test without using make
# MAKE=make srcdir=. VERBOSE=-vv t_wordkey
#
# To purify objects use:
# ( cd ../test ; rm -f word ; make CXXLD='purify g++' word )
#
# To generate benchmarks in benchmark/... make sure
# you have rrdtool installed and use
# make MONITOR=' -m' dobench
#
TESTS = t_wordkey t_wordlist t_wordskip t_wordbitstream \
t_search t_htdb t_rdonly t_trunc t_url \
t_htdig t_htsearch t_htmerge t_htnet t_htdig_local \
t_factors t_fuzzy t_parsing t_templates t_validwords
TESTS_ENVIRONMENT = $(top_srcdir)/test/test_prepare
AM_MAKEFLAGS = MAKE="$(MAKE)"
EXTRA_DIST = test_functions.in test_prepare $(TESTS) \
skiptest_db.txt search.txt mifluz.conf mifluz-search.conf \
benchmark-report benchmark t_htdb.dump \
htdocs conf url.parents url.children url.output
LOCAL_DEFINES = -I$(top_builddir)/db -I$(top_srcdir)/db $(PROFILING)
check_PROGRAMS = word dbbench txt2mifluz search testnet document url
dbbench_SOURCES = dbbench.cc
dbbench_DEPENDENCIES = $(HTLIBS)
dbbench_LDFLAGS = $(PROFILING) ${extra_ldflags}
dbbench_LDADD = $(HTLIBS)
word_SOURCES = word.cc
word_DEPENDENCIES = $(HTLIBS)
word_LDFLAGS = $(PROFILING) ${extra_ldflags}
word_LDADD = $(HTLIBS)
txt2mifluz_SOURCES = txt2mifluz.cc
txt2mifluz_DEPENDENCIES = $(HTLIBS)
txt2mifluz_LDFLAGS = $(PROFILING) ${extra_ldflags}
txt2mifluz_LDADD = $(HTLIBS)
search_SOURCES = search.cc
search_DEPENDENCIES = $(HTLIBS)
search_LDFLAGS = $(PROFILING) ${extra_ldflags}
search_LDADD = $(HTLIBS)
testnet_SOURCES = testnet.cc
testnet_DEPENDENCIES = $(HTLIBS)
testnet_LDFLAGS = $(PROFILING) ${extra_ldflags}
testnet_LDADD = $(HTLIBS)
document_SOURCES = document.cc
document_DEPENDENCIES = $(HTLIBS)
document_LDFLAGS = $(PROFILING) ${extra_ldflags}
document_LDADD = $(HTLIBS)
url_SOURCES = url.cc
url_DEPENDENCIES = $(HTLIBS)
url_LDFLAGS = $(PROFILING) ${extra_ldflags}
url_LDADD = $(HTLIBS)
clean-local:
rm -fr gmon.out test test_weakcmpr __db*
rm -f tmpfile t_htdb.d? monitor.out
cd conf; $(MAKE) clean
distclean-local:
rm -fr words.all words.uniq
#
# The benchmark directory contains the result of some benchmarks in HTML
# form generated by benchmark-report, if MONITOR='-m' is specified.
#
dobench: dbbench
$(MAKE) BASE="$(BASE)" CACHESIZE="$(CACHESIZE)" PAGESIZE="$(PAGESIZE)" LOOP="$(LOOP)" NWORDS="$(NWORDS)" CMPR='-z' REPORT='Nz' MONITOR="$(MONITOR)" bench
$(MAKE) BASE="$(BASE)" CACHESIZE="$(CACHESIZE)" PAGESIZE="$(PAGESIZE)" LOOP="$(LOOP)" NWORDS="$(NWORDS)" CMPR='' REPORT='N' MONITOR="$(MONITOR)" bench
$(MAKE) BASE="$(BASE)" CACHESIZE="$(CACHESIZE)" PAGESIZE="$(PAGESIZE)" LOOP="$(LOOP)" NWORDS="$(NWORDS)" CMPR='-W -z' REPORT='Wz' MONITOR="$(MONITOR)" bench
$(MAKE) BASE="$(BASE)" CACHESIZE="$(CACHESIZE)" PAGESIZE="$(PAGESIZE)" LOOP="$(LOOP)" NWORDS="$(NWORDS)" CMPR='-W' REPORT='W' MONITOR="$(MONITOR)" bench
BASE = test
CACHESIZE = -C `expr 64 \* 1024 \* 1024`
PAGESIZE = -S 8192
CMPR = -z
WORDS = -w words.all
LOOP = -l 3
NWORDS =
#MONITOR = -m
MONITOR =
bench:
rm -f $(BASE) $(BASE)_weakcmpr __db* monitor.out bench.out
( \
MIFLUZ_CONFIG=$(top_srcdir)/test/mifluz.conf $(TIMEV) $(top_builddir)/test/dbbench $(CACHESIZE) $(PAGESIZE) $(CMPR) $(WORDS) $(LOOP) -B $(BASE) $(NWORDS) $(MONITOR) ; \
ls -l $(BASE) ; \
if [ -f $(BASE)_weakcmpr ] ; then MIFLUZ_CONFIG=$(top_srcdir)/test/mifluz.conf $(top_builddir)/htdb/htdump -p $(BASE)_weakcmpr ; fi ; \
MIFLUZ_CONFIG=$(top_srcdir)/test/mifluz.conf $(top_builddir)/htdb/htstat $(CMPR) -d $(BASE) ; \
) 2>&1 | tee bench.out
if [ "$(RRDTOOL)" -a "X$(MONITOR)" != "X" ] ; then \
if [ "$(REPORT)" ] ; \
then \
output="--output $(REPORT)" ; \
fi ; \
$(PERL) benchmark-report $$output --comment="`cat bench.out`" ; \
rm monitor.out ; \
fi
#
# Generate list of words from info and man files.
#
words:
if [ -d /usr/info ] ; then root=/usr ; else root=/usr/share ; fi ; \
find $$root/info -name '*.gz' -print | xargs zcat | perl -n -e 'print join("\n", map { lc } grep(length() > 2 && length() < 32, m/[a-z]+/ig)) . "\n"' | grep -v '^$$' > words.all ; \
find $$root/man -type f -name '*.gz' -print | xargs zcat | perl -n -e 'print join("\n", map { lc } grep(length() > 2 && length() < 32, m/[a-z]+/ig)) . "\n"' | grep -v '^$$' >> words.all
sort -u < words.all > words.uniq