Documentation rebuilt if local.ent changes
[yaz-moved-to-github.git] / doc / yaz-ztest-man.xml
1 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
2  "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
3 [
4      <!ENTITY % local SYSTEM "local.ent">
5      %local;
6      <!ENTITY % entities SYSTEM "entities.ent">
7      %entities;
8      <!ENTITY % idcommon SYSTEM "common/common.ent">
9      %idcommon;
10      <!ENTITY gfs-synopsis-app "yaz-ztest">
11      <!ENTITY reference-tools-cql-map 'section "Specifiction of CQL to RPN mappings"'>
12      <!ENTITY reference-tools-cql-map 'section "CCL Qualifiers"'>
13 ]>
14 <refentry id="yaz-ztest">
15  <refentryinfo>
16   <productname>YAZ</productname>
17   <productnumber>&version;</productnumber>
18   <info><orgname>Index Data</orgname></info>
19  </refentryinfo>
20
21  <refmeta>
22   <refentrytitle>yaz-ztest</refentrytitle>
23   <manvolnum>8</manvolnum>
24   <refmiscinfo class="manual">System management commands</refmiscinfo>
25  </refmeta>
26
27  <refnamediv>
28   <refname>yaz-ztest</refname>
29   <refpurpose>Z39.50/SRU Test Server</refpurpose>
30  </refnamediv>
31
32  <refsynopsisdiv>
33   &gfs-synopsis;
34  </refsynopsisdiv>
35  <refsect1><title>DESCRIPTION</title>
36   <para>
37    <command>yaz-ztest</command> is a Z39.50/SRU test server that uses
38    the YAZ generic frontend server (GFS) API.
39    The server acts as a real Z39.50/SRU server but does not use a database.
40    It returns a random hit count and returns a subset of a few built-in
41    records.
42   </para>
43   <para>
44    The <replaceable>listener-spec</replaceable> consists of a transport
45    mode followed by a colon, followed by a listener address. The
46    transport mode is either <literal>tcp</literal>, <literal>unix</literal>,
47    or <literal>ssl</literal>.
48   </para>
49   <para>
50    For TCP and SSL, an address has the form:
51    <screen>
52     hostname | IP-number [ : portnumber ]
53    </screen>
54   </para>
55   <para>
56    For UNIX local socket the address is the filename of the local socket.
57   </para>
58  </refsect1>
59  <refsect1>
60   <title>OPTIONS</title>
61   &gfs-options;
62  </refsect1>
63  <refsect1>
64    <title>TESTING</title>
65    <para>
66     <command>yaz-ztest</command> normally returns a random hit count between
67     0 and 24. However, if a query term includes leading digits, then the
68     integer value of that term is used as hit count. This allows testers
69     to return any number of hits. <command>yaz-ztest</command> includes
70     24 MARC records for testing. Hit counts exceeding 24 will make
71     <command>yaz-ztest</command> return the same record batch over and over..
72     So record at position 1, 25, 49, etc .. are equivalent.
73    </para>
74    <para>
75      The following databases are honored by <command>yaz-ztest</command>:
76      <literal>Default</literal>, <literal>slow</literal>
77      and <literal>db.*</literal> (all databases with prefix "db"). Any
78      other database will make <command>yaz-ztest</command> return diagnostic
79      109: "Database unavailable".
80    </para>
81    <para>
82      Options for search may be included in the form or URL get arguments
83      included as part of the Z39.50 database name. The following
84      database options are present: <literal>search-delay</literal>,
85      <literal>present-delay</literal>, <literal>fetch-delay</literal>
86      and <literal>seed</literal>.
87    </para>
88    <para>
89      The former, delay type options, specify
90      a fake delay (sleep) that <command>yaz-ztest</command> will perform
91      when searching, presenting, fetching records respectively.
92      The value of the delay may either be a fixed floating point
93      value which specifies the delay in seconds.
94      Alternatively the value may be given as two floating point numbers
95      separated by colon, which wil make <command>yaz-ztest</command> perform
96      a random sleep between the first and second number.
97    </para>
98    <para>
99      The database parameter <literal>seed</literal> takes an integer
100      as value. This will call <literal>srand</literal> with this integer to
101      ensure that the random behavior can be re-played.
102    </para>
103    <para>
104      Suppose we want searches to take between 0.1 and 0.5 seconds and
105      a fetch to take 0.2 second. To access test database Default we'd use:
106      <literal>Default?search-delay=0.1:0.5&amp;fetch-delay=0.2</literal>.
107    </para>
108  </refsect1>
109  <refsect1><title>GFS CONFIGURATION AND VIRTUAL HOSTS</title>
110   &gfs-virtual;
111  </refsect1>
112  <refsect1><title>FILES</title>
113   <para>
114    <filename>yaz-&lt;version&gt;/ztest/yaz-ztest.c</filename>
115   </para>
116   <para>
117    <filename>yaz-&lt;version&gt;/include/yaz/backend.h</filename>
118   </para>
119  </refsect1>
120  <refsect1><title>SEE ALSO</title>
121   <para>
122    <citerefentry>
123     <refentrytitle>yaz</refentrytitle>
124     <manvolnum>7</manvolnum>
125    </citerefentry>
126    <citerefentry>
127     <refentrytitle>yaz-log</refentrytitle>
128     <manvolnum>7</manvolnum>
129    </citerefentry>
130   </para>
131  </refsect1>
132 </refentry>
133
134 <!-- Keep this comment at the end of the file
135 Local variables:
136 mode: sgml
137 sgml-omittag:t
138 sgml-shorttag:t
139 sgml-minimize-attributes:nil
140 sgml-always-quote-attributes:t
141 sgml-indent-step:1
142 sgml-indent-data:t
143 sgml-parent-document:nil
144 sgml-local-catalogs: nil
145 sgml-namecase-general:t
146 End:
147 -->