Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 550bbe86d83a7870fdddc73c68e5d2b2 > files > 419

libunbound-devel-1.3.4-1mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>unbound: testcode/unitlruhash.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="dir_aae0f736e7b956edab2d753def1ee5b5.html">testcode</a>
  </div>
</div>
<div class="contents">
<h1>unitlruhash.c File Reference</h1>Tests the locking LRU keeping hash table implementation.  
<a href="#_details">More...</a>
<p>
<code>#include &quot;config.h&quot;</code><br>
<code>#include &quot;<a class="el" href="unitmain_8h.html">testcode/unitmain.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="log_8h.html">util/log.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="lruhash_8h.html">util/storage/lruhash.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="slabhash_8h.html">util/storage/slabhash.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtest__thr.html">test_thr</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">structure to threaded test the lru hash table  <a href="structtest__thr.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="97990174d14ce63b2f7da205679fbb8b"></a><!-- doxytag: member="unitlruhash.c::HASHTESTMAX" ref="97990174d14ce63b2f7da205679fbb8b" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#97990174d14ce63b2f7da205679fbb8b">HASHTESTMAX</a>&nbsp;&nbsp;&nbsp;25</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">number of hash test max <br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="94b25d5e6837b0445d4e0709eec97a5a"></a><!-- doxytag: member="unitlruhash.c::testkey_t" ref="94b25d5e6837b0445d4e0709eec97a5a" args="" -->
typedef struct <a class="el" href="structslabhash__testkey.html">slabhash_testkey</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#94b25d5e6837b0445d4e0709eec97a5a">testkey_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">use this type for the <a class="el" href="structlruhash.html" title="Hash table that keeps LRU list of entries.">lruhash</a> test key <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4efe2cde776a1ddc478183878df0fd1f"></a><!-- doxytag: member="unitlruhash.c::testdata_t" ref="4efe2cde776a1ddc478183878df0fd1f" args="" -->
typedef struct <a class="el" href="structslabhash__testdata.html">slabhash_testdata</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#4efe2cde776a1ddc478183878df0fd1f">testdata_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">use this type for the <a class="el" href="structlruhash.html" title="Hash table that keeps LRU list of entries.">lruhash</a> test data <br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5753a4ab2a193e359e1674824b8dc666"></a><!-- doxytag: member="unitlruhash.c::delkey" ref="5753a4ab2a193e359e1674824b8dc666" args="(struct slabhash_testkey *k)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#5753a4ab2a193e359e1674824b8dc666">delkey</a> (struct <a class="el" href="structslabhash__testkey.html">slabhash_testkey</a> *k)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">delete key <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6c38bd460f31a59dad7f8a03fea17ef8"></a><!-- doxytag: member="unitlruhash.c::deldata" ref="6c38bd460f31a59dad7f8a03fea17ef8" args="(struct slabhash_testdata *d)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#6c38bd460f31a59dad7f8a03fea17ef8">deldata</a> (struct <a class="el" href="structslabhash__testdata.html">slabhash_testdata</a> *d)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">delete data <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4425a36ba48038a8d225447590735a74"></a><!-- doxytag: member="unitlruhash.c::myhash" ref="4425a36ba48038a8d225447590735a74" args="(int id)" -->
static <a class="el" href="lruhash_8h.html#050c9ffcb4f555022a735896cdee3795">hashvalue_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#4425a36ba48038a8d225447590735a74">myhash</a> (int id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">hash func, very bad to improve collisions <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a9118d8eac3e17427dc5ff1af82b4992"></a><!-- doxytag: member="unitlruhash.c::newkey" ref="a9118d8eac3e17427dc5ff1af82b4992" args="(int id)" -->
static <a class="el" href="structslabhash__testkey.html">testkey_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#a9118d8eac3e17427dc5ff1af82b4992">newkey</a> (int id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">allocate new key, fill in hash <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9a84187911d8378572a3bc02360c8689"></a><!-- doxytag: member="unitlruhash.c::newdata" ref="9a84187911d8378572a3bc02360c8689" args="(int val)" -->
static <a class="el" href="structslabhash__testdata.html">testdata_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#9a84187911d8378572a3bc02360c8689">newdata</a> (int val)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">new data el <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4d5ead6a7be151f9388b49d0fab8afaf"></a><!-- doxytag: member="unitlruhash.c::test_bin_find_entry" ref="4d5ead6a7be151f9388b49d0fab8afaf" args="(struct lruhash *table)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#4d5ead6a7be151f9388b49d0fab8afaf">test_bin_find_entry</a> (struct <a class="el" href="structlruhash.html">lruhash</a> *table)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test bin_find_entry function and bin_overflow_remove <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7db42990eac6f6378cebc0d709c4a17c"></a><!-- doxytag: member="unitlruhash.c::test_lru" ref="7db42990eac6f6378cebc0d709c4a17c" args="(struct lruhash *table)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#7db42990eac6f6378cebc0d709c4a17c">test_lru</a> (struct <a class="el" href="structlruhash.html">lruhash</a> *table)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test lru_front lru_remove <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7118a5e0c0e40b4228ee8e16bec701ab"></a><!-- doxytag: member="unitlruhash.c::test_short_table" ref="7118a5e0c0e40b4228ee8e16bec701ab" args="(struct lruhash *table)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#7118a5e0c0e40b4228ee8e16bec701ab">test_short_table</a> (struct <a class="el" href="structlruhash.html">lruhash</a> *table)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test hashtable using short sequence <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="81d3865185332e1f2cd40d9316108087"></a><!-- doxytag: member="unitlruhash.c::testadd" ref="81d3865185332e1f2cd40d9316108087" args="(struct lruhash *table, testdata_t *ref[])" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#81d3865185332e1f2cd40d9316108087">testadd</a> (struct <a class="el" href="structlruhash.html">lruhash</a> *table, <a class="el" href="structslabhash__testdata.html">testdata_t</a> *ref[])</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test adding a random element <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fa9a9649164e3875ee98c6f61931194f"></a><!-- doxytag: member="unitlruhash.c::testremove" ref="fa9a9649164e3875ee98c6f61931194f" args="(struct lruhash *table, testdata_t *ref[])" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#fa9a9649164e3875ee98c6f61931194f">testremove</a> (struct <a class="el" href="structlruhash.html">lruhash</a> *table, <a class="el" href="structslabhash__testdata.html">testdata_t</a> *ref[])</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test adding a random element <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="07cd680f74c08b5a502aff271384af73"></a><!-- doxytag: member="unitlruhash.c::testlookup" ref="07cd680f74c08b5a502aff271384af73" args="(struct lruhash *table, testdata_t *ref[])" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#07cd680f74c08b5a502aff271384af73">testlookup</a> (struct <a class="el" href="structlruhash.html">lruhash</a> *table, <a class="el" href="structslabhash__testdata.html">testdata_t</a> *ref[])</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test adding a random element <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b593846c8b21bb52f153dfc229c7aa64"></a><!-- doxytag: member="unitlruhash.c::check_table" ref="b593846c8b21bb52f153dfc229c7aa64" args="(struct lruhash *table)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#b593846c8b21bb52f153dfc229c7aa64">check_table</a> (struct <a class="el" href="structlruhash.html">lruhash</a> *table)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">check integrity of hash table <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b2e3dd2afbe386f70ec680cb774d015c"></a><!-- doxytag: member="unitlruhash.c::testadd_unlim" ref="b2e3dd2afbe386f70ec680cb774d015c" args="(struct lruhash *table, testdata_t **ref)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#b2e3dd2afbe386f70ec680cb774d015c">testadd_unlim</a> (struct <a class="el" href="structlruhash.html">lruhash</a> *table, <a class="el" href="structslabhash__testdata.html">testdata_t</a> **ref)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test adding a random element (unlimited range) <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="af0bea515c39ececc1b4a513002ec9a0"></a><!-- doxytag: member="unitlruhash.c::testremove_unlim" ref="af0bea515c39ececc1b4a513002ec9a0" args="(struct lruhash *table, testdata_t **ref)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#af0bea515c39ececc1b4a513002ec9a0">testremove_unlim</a> (struct <a class="el" href="structlruhash.html">lruhash</a> *table, <a class="el" href="structslabhash__testdata.html">testdata_t</a> **ref)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test adding a random element (unlimited range) <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3a7f4d97db0ee795885b1135c0844b91"></a><!-- doxytag: member="unitlruhash.c::testlookup_unlim" ref="3a7f4d97db0ee795885b1135c0844b91" args="(struct lruhash *table, testdata_t **ref)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#3a7f4d97db0ee795885b1135c0844b91">testlookup_unlim</a> (struct <a class="el" href="structlruhash.html">lruhash</a> *table, <a class="el" href="structslabhash__testdata.html">testdata_t</a> **ref)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test adding a random element (unlimited range) <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="397f87ea65e3249db5ad29b33182b242"></a><!-- doxytag: member="unitlruhash.c::test_long_table" ref="397f87ea65e3249db5ad29b33182b242" args="(struct lruhash *table)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#397f87ea65e3249db5ad29b33182b242">test_long_table</a> (struct <a class="el" href="structlruhash.html">lruhash</a> *table)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test with long sequence of adds, removes and updates, and lookups <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="83973523dbc9508ed119d950e19d76a8"></a><!-- doxytag: member="unitlruhash.c::test_thr_main" ref="83973523dbc9508ed119d950e19d76a8" args="(void *arg)" -->
static void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#83973523dbc9508ed119d950e19d76a8">test_thr_main</a> (void *arg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">main routine for threaded hash table test <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f02034e293911c124a6295ee7737d0a4"></a><!-- doxytag: member="unitlruhash.c::test_threaded_table" ref="f02034e293911c124a6295ee7737d0a4" args="(struct lruhash *table)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#f02034e293911c124a6295ee7737d0a4">test_threaded_table</a> (struct <a class="el" href="structlruhash.html">lruhash</a> *table)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test hash table access by multiple threads <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b4364d309a3835a0bb3b9c178402a9de"></a><!-- doxytag: member="unitlruhash.c::lruhash_test" ref="b4364d309a3835a0bb3b9c178402a9de" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unitlruhash_8c.html#b4364d309a3835a0bb3b9c178402a9de">lruhash_test</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">unit test lruhashtable implementation <br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
Tests the locking LRU keeping hash table implementation. 
<p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Oct 13 06:46:31 2009 for unbound by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>