summaryrefslogtreecommitdiffstats
path: root/debian/htdig/htdig-3.2.0b6/test/Makefile.am
blob: 08aeb1b6ab545a8170e5d430f6c690abda0e4293 (plain)
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   <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