1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
#
# Part of the ht://Dig package <https://htdig.sourceforge.net/>
# 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
|