---
name: "tchtest"
section: "1"
platform: "linux"
package: "tokyocabinet-bin"
version: "1.4.48-15.1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/tchtest"
---

# tchtest(1)

test cases of the hash database API

## NAME

tchtest - test cases of the hash database API

## DESCRIPTION

To use the hash database API easily, the commands \`**tchtest**', \`**tchmttest**', and \`**tchmgr**' are provided.

The command \`**tchtest**' is a utility for facility test and performance test.  This command is used in the following format.  \`*path*' specifies the path of a database file.  \`*rnum*' specifies the number of iterations.  \`*bnum*' specifies the number of buckets.  \`*apow*' specifies the power of the alignment.  \`*fpow*' specifies the power of the free block pool.

**tchtest write** \[**-mt**\] \[**-tl**\] \[**-td**\|**-tb**\|**-tt**\|**-tx**\] \[**-rc** *num*\] \[**-xm** *num*\] \[**-df** *num*\] \[**-nl**\|**-nb**\] \[**-as**\] \[**-rnd**\] *path* *rnum* \[*bnum* \[*apow* \[*fpow*\]\]\]

Store records with keys of 8 bytes.  They change as \`00000001', \`00000002'...

**tchtest read** \[**-mt**\] \[**-rc** *num*\] \[**-xm** *num*\] \[**-df** *num*\] \[**-nl**\|**-nb**\] \[**-wb**\] \[**-rnd**\] *path*

Retrieve all records of the database above.

**tchtest remove** \[**-mt**\] \[**-rc** *num*\] \[**-xm** *num*\] \[**-df** *num*\] \[**-nl**\|**-nb**\] \[**-rnd**\] *path*

Remove all records of the database above.

**tchtest rcat** \[**-mt**\] \[**-tl**\] \[**-td**\|**-tb**\|**-tt**\|**-tx**\] \[**-rc** *num*\] \[**-xm** *num*\] \[**-df** *num*\] \[**-nl**\|**-nb**\] \[**-pn** *num*\] \[**-dai**\|**-dad**\|**-rl**\|**-ru**\] *path* *rnum* \[*bnum* \[*apow* \[*fpow*\]\]\]

Store records with partway duplicated keys using concatenate mode.

**tchtest misc** \[**-mt**\] \[**-tl**\] \[**-td**\|**-tb**\|**-tt**\|**-tx**\] \[**-nl**\|**-nb**\] *path* *rnum*

Perform miscellaneous test of various operations.

**tchtest wicked** \[**-mt**\] \[**-tl**\] \[**-td**\|**-tb**\|**-tt**\|**-tx**\] \[**-nl**\|**-nb**\] *path* *rnum*

Perform updating operations selected at random.

Options feature the following.

**-mt** : call the function \`tchdbsetmutex'.\
 **-tl** : enable the option \`HDBTLARGE'.\
 **-td** : enable the option \`HDBTDEFLATE'.\
 **-tb** : enable the option \`HDBTBZIP'.\
 **-tt** : enable the option \`HDBTTCBS'.\
 **-tx** : enable the option \`HDBTEXCODEC'.\
 **-rc** *num* : specify the number of cached records.\
 **-xm** *num* : specify the size of the extra mapped memory.\
 **-df** *num* : specify the unit step number of auto defragmentation.\
 **-nl** : enable the option \`HDBNOLCK'.\
 **-nb** : enable the option \`HDBLCKNB'.\
 **-as** : use the function \`tchdbputasync' instead of \`tchdbput'.\
 **-rnd** : select keys at random.\
 **-wb** : use the function \`tchdbget3' instead of \`tchdbget'.\
 **-pn** *num* : specify the number of patterns.\
 **-dai** : use the function \`tchdbaddint' instead of \`tchdbputcat'.\
 **-dad** : use the function \`tchdbadddouble' instead of \`tchdbputcat'.\
 **-rl** : set the length of values at random.\
 **-ru** : select update operations at random.\

This command returns 0 on success, another on failure.

## SEE ALSO

[**tchmttest**(1)](/tchmttest/1.md), [**tchmgr**(1)](/tchmgr/1.md), [**tchdb**(3)](/tchdb/3.md), [**tokyocabinet**(3)](/tokyocabinet/3.md)
