mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-21 11:35:53 +00:00
deploy: c11037fd27
This commit is contained in:
@@ -97,114 +97,115 @@ $(function() {
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <test/unit_test/SuiteJournal.h></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="namespaceripple.html">ripple</a> {</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span>NodeStore {</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// Tests the Backend interface</span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">//</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classripple_1_1NodeStore_1_1Backend__test.html"> 33</a></span> <span class="keyword">class </span><a class="code" href="classripple_1_1NodeStore_1_1Backend__test.html">Backend_test</a> : <span class="keyword">public</span> <a class="code" href="classripple_1_1NodeStore_1_1TestBase.html">TestBase</a></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classripple_1_1NodeStore_1_1Backend__test.html#a88b5ceca6048c6408e61d8d9e7dbd258"> 37</a></span>  <a class="code" href="classripple_1_1NodeStore_1_1Backend__test.html#a88b5ceca6048c6408e61d8d9e7dbd258">testBackend</a>(</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& type,</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> <span class="keyword">const</span> seedValue,</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordtype">int</span> numObjsToTest = 2000)</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  {</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classripple_1_1NodeStore_1_1DummyScheduler.html">DummyScheduler</a> scheduler;</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  testcase(<span class="stringliteral">"Backend type="</span> + type);</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classripple_1_1Section.html">Section</a> params;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classbeast_1_1temp__dir.html">beast::temp_dir</a> tempDir;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  params.<a class="code" href="classripple_1_1Section.html#a3059b48f861508b116c274af605c4b0a">set</a>(<span class="stringliteral">"type"</span>, type);</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  params.<a class="code" href="classripple_1_1Section.html#a3059b48f861508b116c274af605c4b0a">set</a>(<span class="stringliteral">"path"</span>, tempDir.<a class="code" href="classbeast_1_1temp__dir.html#a12a24007c243e0739cfc36703a3257bb">path</a>());</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classbeast_1_1detail_1_1xor__shift__engine.html">beast::xor_shift_engine</a> rng(seedValue);</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// Create a batch</span></div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">auto</span> batch = <a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a08fa07a45987d889d373b9a10280700e">createPredictableBatch</a>(numObjsToTest, rng());</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">using namespace </span><a class="code" href="namespacebeast_1_1severities.html">beast::severities</a>;</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classripple_1_1test_1_1SuiteJournal.html">test::SuiteJournal</a> journal(<span class="stringliteral">"Backend_test"</span>, *<span class="keyword">this</span>);</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// Open the backend</span></div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr<Backend></a> backend = <a class="code" href="classripple_1_1NodeStore_1_1Manager.html#a59f9bcb7e6049d1b4c557891992f6cab">Manager::instance</a>().<a class="code" href="classripple_1_1NodeStore_1_1Manager.html#a81a6d60d5ccc13e9b0ad87dd6ea7aeca">make_Backend</a>(</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  params, <a class="code" href="namespaceripple.html#a13d7c6c34d30731bbc221f629e03f8db">megabytes</a>(4), scheduler, journal);</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  backend->open();</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="comment">// Write the batch</span></div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a5bd5d36de98ec8e56c5c3da9148ae72f">storeBatch</a>(*backend, batch);</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  {</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// Read it back in</span></div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Batch</a> copy;</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a514499e56722487774c7d496b4bc2d65">fetchCopyOfBatch</a>(*backend, &copy, batch);</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  BEAST_EXPECT(<a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a267dea3178f1f0ef8d67b59a10f14f1d">areBatchesEqual</a>(batch, copy));</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  {</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="comment">// Reorder and read the copy again</span></div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/random_shuffle.html">std::shuffle</a>(batch.begin(), batch.end(), rng);</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Batch</a> copy;</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a514499e56722487774c7d496b4bc2d65">fetchCopyOfBatch</a>(*backend, &copy, batch);</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  BEAST_EXPECT(<a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a267dea3178f1f0ef8d67b59a10f14f1d">areBatchesEqual</a>(batch, copy));</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  {</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">// Re-open the backend</span></div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr<Backend></a> backend = <a class="code" href="classripple_1_1NodeStore_1_1Manager.html#a59f9bcb7e6049d1b4c557891992f6cab">Manager::instance</a>().<a class="code" href="classripple_1_1NodeStore_1_1Manager.html#a81a6d60d5ccc13e9b0ad87dd6ea7aeca">make_Backend</a>(</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  params, <a class="code" href="namespaceripple.html#a13d7c6c34d30731bbc221f629e03f8db">megabytes</a>(4), scheduler, journal);</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  backend->open();</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// Read it back in</span></div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Batch</a> copy;</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a514499e56722487774c7d496b4bc2d65">fetchCopyOfBatch</a>(*backend, &copy, batch);</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// Canonicalize the source and destination batches</span></div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/sort.html">std::sort</a>(batch.begin(), batch.end(), <a class="code" href="structripple_1_1NodeStore_1_1LessThan.html">LessThan</a>{});</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/sort.html">std::sort</a>(copy.begin(), copy.end(), <a class="code" href="structripple_1_1NodeStore_1_1LessThan.html">LessThan</a>{});</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  BEAST_EXPECT(<a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a267dea3178f1f0ef8d67b59a10f14f1d">areBatchesEqual</a>(batch, copy));</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="comment">//--------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classripple_1_1NodeStore_1_1Backend__test.html#abee5d48ab2c03c6ec6c76bb96300d4b3"> 103</a></span>  <a class="code" href="classripple_1_1NodeStore_1_1Backend__test.html#abee5d48ab2c03c6ec6c76bb96300d4b3">run</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> <span class="keyword">const</span> seedValue = 50;</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="classripple_1_1NodeStore_1_1Backend__test.html#a88b5ceca6048c6408e61d8d9e7dbd258">testBackend</a>(<span class="stringliteral">"nudb"</span>, seedValue);</div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor">#if RIPPLE_ROCKSDB_AVAILABLE</span></div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classripple_1_1NodeStore_1_1Backend__test.html#a88b5ceca6048c6408e61d8d9e7dbd258">testBackend</a>(<span class="stringliteral">"rocksdb"</span>, seedValue);</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor">#ifdef RIPPLE_ENABLE_SQLITE_BACKEND_TESTS</span></div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="classripple_1_1NodeStore_1_1Backend__test.html#a88b5ceca6048c6408e61d8d9e7dbd258">testBackend</a>(<span class="stringliteral">"sqlite"</span>, seedValue);</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> };</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <a class="code" href="namespaceripple_1_1NodeStore.html#a2f88bfc03df04e244cc4073a07268e8d">BEAST_DEFINE_TESTSUITE</a>(Backend, ripple_core, <a class="code" href="namespaceripple.html">ripple</a>);</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> } <span class="comment">// namespace NodeStore</span></div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> } <span class="comment">// namespace ripple</span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span>NodeStore {</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// Tests the Backend interface</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">//</span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classripple_1_1NodeStore_1_1Backend__test.html"> 34</a></span> <span class="keyword">class </span><a class="code" href="classripple_1_1NodeStore_1_1Backend__test.html">Backend_test</a> : <span class="keyword">public</span> <a class="code" href="classripple_1_1NodeStore_1_1TestBase.html">TestBase</a></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classripple_1_1NodeStore_1_1Backend__test.html#a88b5ceca6048c6408e61d8d9e7dbd258"> 38</a></span>  <a class="code" href="classripple_1_1NodeStore_1_1Backend__test.html#a88b5ceca6048c6408e61d8d9e7dbd258">testBackend</a>(</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& type,</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> <span class="keyword">const</span> seedValue,</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordtype">int</span> numObjsToTest = 2000)</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  {</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="classripple_1_1NodeStore_1_1DummyScheduler.html">DummyScheduler</a> scheduler;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  testcase(<span class="stringliteral">"Backend type="</span> + type);</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classripple_1_1Section.html">Section</a> params;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classbeast_1_1temp__dir.html">beast::temp_dir</a> tempDir;</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  params.<a class="code" href="classripple_1_1Section.html#a3059b48f861508b116c274af605c4b0a">set</a>(<span class="stringliteral">"type"</span>, type);</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  params.<a class="code" href="classripple_1_1Section.html#a3059b48f861508b116c274af605c4b0a">set</a>(<span class="stringliteral">"path"</span>, tempDir.<a class="code" href="classbeast_1_1temp__dir.html#a12a24007c243e0739cfc36703a3257bb">path</a>());</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classbeast_1_1detail_1_1xor__shift__engine.html">beast::xor_shift_engine</a> rng(seedValue);</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// Create a batch</span></div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">auto</span> batch = <a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a08fa07a45987d889d373b9a10280700e">createPredictableBatch</a>(numObjsToTest, rng());</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">using namespace </span><a class="code" href="namespacebeast_1_1severities.html">beast::severities</a>;</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classripple_1_1test_1_1SuiteJournal.html">test::SuiteJournal</a> journal(<span class="stringliteral">"Backend_test"</span>, *<span class="keyword">this</span>);</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  {</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// Open the backend</span></div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr<Backend></a> backend = <a class="code" href="classripple_1_1NodeStore_1_1Manager.html#a59f9bcb7e6049d1b4c557891992f6cab">Manager::instance</a>().<a class="code" href="classripple_1_1NodeStore_1_1Manager.html#a81a6d60d5ccc13e9b0ad87dd6ea7aeca">make_Backend</a>(</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  params, <a class="code" href="namespaceripple.html#a13d7c6c34d30731bbc221f629e03f8db">megabytes</a>(4), scheduler, journal);</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  backend->open();</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">// Write the batch</span></div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a5bd5d36de98ec8e56c5c3da9148ae72f">storeBatch</a>(*backend, batch);</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// Read it back in</span></div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Batch</a> copy;</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a514499e56722487774c7d496b4bc2d65">fetchCopyOfBatch</a>(*backend, &copy, batch);</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  BEAST_EXPECT(<a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a267dea3178f1f0ef8d67b59a10f14f1d">areBatchesEqual</a>(batch, copy));</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// Reorder and read the copy again</span></div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/random_shuffle.html">std::shuffle</a>(batch.begin(), batch.end(), rng);</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Batch</a> copy;</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a514499e56722487774c7d496b4bc2d65">fetchCopyOfBatch</a>(*backend, &copy, batch);</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  BEAST_EXPECT(<a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a267dea3178f1f0ef8d67b59a10f14f1d">areBatchesEqual</a>(batch, copy));</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  {</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">// Re-open the backend</span></div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr<Backend></a> backend = <a class="code" href="classripple_1_1NodeStore_1_1Manager.html#a59f9bcb7e6049d1b4c557891992f6cab">Manager::instance</a>().<a class="code" href="classripple_1_1NodeStore_1_1Manager.html#a81a6d60d5ccc13e9b0ad87dd6ea7aeca">make_Backend</a>(</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  params, <a class="code" href="namespaceripple.html#a13d7c6c34d30731bbc221f629e03f8db">megabytes</a>(4), scheduler, journal);</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  backend->open();</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">// Read it back in</span></div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Batch</a> copy;</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a514499e56722487774c7d496b4bc2d65">fetchCopyOfBatch</a>(*backend, &copy, batch);</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// Canonicalize the source and destination batches</span></div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/sort.html">std::sort</a>(batch.begin(), batch.end(), <a class="code" href="structripple_1_1NodeStore_1_1LessThan.html">LessThan</a>{});</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/sort.html">std::sort</a>(copy.begin(), copy.end(), <a class="code" href="structripple_1_1NodeStore_1_1LessThan.html">LessThan</a>{});</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  BEAST_EXPECT(<a class="code" href="classripple_1_1NodeStore_1_1TestBase.html#a267dea3178f1f0ef8d67b59a10f14f1d">areBatchesEqual</a>(batch, copy));</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="comment">//--------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classripple_1_1NodeStore_1_1Backend__test.html#abee5d48ab2c03c6ec6c76bb96300d4b3"> 104</a></span>  <a class="code" href="classripple_1_1NodeStore_1_1Backend__test.html#abee5d48ab2c03c6ec6c76bb96300d4b3">run</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> <span class="keyword">const</span> seedValue = 50;</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classripple_1_1NodeStore_1_1Backend__test.html#a88b5ceca6048c6408e61d8d9e7dbd258">testBackend</a>(<span class="stringliteral">"nudb"</span>, seedValue);</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#if RIPPLE_ROCKSDB_AVAILABLE</span></div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="classripple_1_1NodeStore_1_1Backend__test.html#a88b5ceca6048c6408e61d8d9e7dbd258">testBackend</a>(<span class="stringliteral">"rocksdb"</span>, seedValue);</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#ifdef RIPPLE_ENABLE_SQLITE_BACKEND_TESTS</span></div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classripple_1_1NodeStore_1_1Backend__test.html#a88b5ceca6048c6408e61d8d9e7dbd258">testBackend</a>(<span class="stringliteral">"sqlite"</span>, seedValue);</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> };</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <a class="code" href="namespaceripple_1_1NodeStore.html#a2f88bfc03df04e244cc4073a07268e8d">BEAST_DEFINE_TESTSUITE</a>(Backend, ripple_core, <a class="code" href="namespaceripple.html">ripple</a>);</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> } <span class="comment">// namespace NodeStore</span></div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> } <span class="comment">// namespace ripple</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1DummyScheduler_html"><div class="ttname"><a href="classripple_1_1NodeStore_1_1DummyScheduler.html">ripple::NodeStore::DummyScheduler</a></div><div class="ttdoc">Simple NodeStore Scheduler that just peforms the tasks synchronously.</div><div class="ttdef"><b>Definition:</b> <a href="DummyScheduler_8h_source.html#l00029">DummyScheduler.h:29</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Section_html"><div class="ttname"><a href="classripple_1_1Section.html">ripple::Section</a></div><div class="ttdoc">Holds a collection of configuration values.</div><div class="ttdef"><b>Definition:</b> <a href="BasicConfig_8h_source.html#l00043">BasicConfig.h:43</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1TestBase_html"><div class="ttname"><a href="classripple_1_1NodeStore_1_1TestBase.html">ripple::NodeStore::TestBase</a></div><div class="ttdef"><b>Definition:</b> <a href="TestBase_8h_source.html#l00068">TestBase.h:68</a></div></div>
|
||||
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1Backend__test_html_abee5d48ab2c03c6ec6c76bb96300d4b3"><div class="ttname"><a href="classripple_1_1NodeStore_1_1Backend__test.html#abee5d48ab2c03c6ec6c76bb96300d4b3">ripple::NodeStore::Backend_test::run</a></div><div class="ttdeci">void run() override</div><div class="ttdef"><b>Definition:</b> <a href="Backend__test_8cpp_source.html#l00103">Backend_test.cpp:103</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1Backend__test_html_a88b5ceca6048c6408e61d8d9e7dbd258"><div class="ttname"><a href="classripple_1_1NodeStore_1_1Backend__test.html#a88b5ceca6048c6408e61d8d9e7dbd258">ripple::NodeStore::Backend_test::testBackend</a></div><div class="ttdeci">void testBackend(std::string const &type, std::uint64_t const seedValue, int numObjsToTest=2000)</div><div class="ttdef"><b>Definition:</b> <a href="Backend__test_8cpp_source.html#l00037">Backend_test.cpp:37</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1Backend__test_html_abee5d48ab2c03c6ec6c76bb96300d4b3"><div class="ttname"><a href="classripple_1_1NodeStore_1_1Backend__test.html#abee5d48ab2c03c6ec6c76bb96300d4b3">ripple::NodeStore::Backend_test::run</a></div><div class="ttdeci">void run() override</div><div class="ttdef"><b>Definition:</b> <a href="Backend__test_8cpp_source.html#l00104">Backend_test.cpp:104</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1Backend__test_html_a88b5ceca6048c6408e61d8d9e7dbd258"><div class="ttname"><a href="classripple_1_1NodeStore_1_1Backend__test.html#a88b5ceca6048c6408e61d8d9e7dbd258">ripple::NodeStore::Backend_test::testBackend</a></div><div class="ttdeci">void testBackend(std::string const &type, std::uint64_t const seedValue, int numObjsToTest=2000)</div><div class="ttdef"><b>Definition:</b> <a href="Backend__test_8cpp_source.html#l00038">Backend_test.cpp:38</a></div></div>
|
||||
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector< std::shared_ptr< NodeObject > ></a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1NodeStore_1_1LessThan_html"><div class="ttname"><a href="structripple_1_1NodeStore_1_1LessThan.html">ripple::NodeStore::LessThan</a></div><div class="ttdoc">Binary function that satisfies the strict-weak-ordering requirement.</div><div class="ttdef"><b>Definition:</b> <a href="TestBase_8h_source.html#l00044">TestBase.h:44</a></div></div>
|
||||
<div class="ttc" id="anamespacebeast_1_1severities_html"><div class="ttname"><a href="namespacebeast_1_1severities.html">beast::severities</a></div><div class="ttdoc">A namespace for easy access to logging severity values.</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00029">Journal.h:29</a></div></div>
|
||||
<div class="ttc" id="asort_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/sort.html">std::sort</a></div><div class="ttdeci">T sort(T... args)</div></div>
|
||||
<div class="ttc" id="aalgorithm_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/algorithm.html">algorithm</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1TestBase_html_a267dea3178f1f0ef8d67b59a10f14f1d"><div class="ttname"><a href="classripple_1_1NodeStore_1_1TestBase.html#a267dea3178f1f0ef8d67b59a10f14f1d">ripple::NodeStore::TestBase::areBatchesEqual</a></div><div class="ttdeci">static bool areBatchesEqual(Batch const &lhs, Batch const &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="TestBase_8h_source.html#l00120">TestBase.h:120</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1Backend__test_html"><div class="ttname"><a href="classripple_1_1NodeStore_1_1Backend__test.html">ripple::NodeStore::Backend_test</a></div><div class="ttdef"><b>Definition:</b> <a href="Backend__test_8cpp_source.html#l00033">Backend_test.cpp:33</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1Backend__test_html"><div class="ttname"><a href="classripple_1_1NodeStore_1_1Backend__test.html">ripple::NodeStore::Backend_test</a></div><div class="ttdef"><b>Definition:</b> <a href="Backend__test_8cpp_source.html#l00034">Backend_test.cpp:34</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_1_1NodeStore_html_a2f88bfc03df04e244cc4073a07268e8d"><div class="ttname"><a href="namespaceripple_1_1NodeStore.html#a2f88bfc03df04e244cc4073a07268e8d">ripple::NodeStore::BEAST_DEFINE_TESTSUITE</a></div><div class="ttdeci">BEAST_DEFINE_TESTSUITE(Backend, ripple_core, ripple)</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a13d7c6c34d30731bbc221f629e03f8db"><div class="ttname"><a href="namespaceripple.html#a13d7c6c34d30731bbc221f629e03f8db">ripple::megabytes</a></div><div class="ttdeci">constexpr auto megabytes(T value) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="ByteUtilities_8h_source.html#l00034">ByteUtilities.h:34</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1TestBase_html_a514499e56722487774c7d496b4bc2d65"><div class="ttname"><a href="classripple_1_1NodeStore_1_1TestBase.html#a514499e56722487774c7d496b4bc2d65">ripple::NodeStore::TestBase::fetchCopyOfBatch</a></div><div class="ttdeci">void fetchCopyOfBatch(Backend &backend, Batch *pCopy, Batch const &batch)</div><div class="ttdef"><b>Definition:</b> <a href="TestBase_8h_source.html#l00155">TestBase.h:155</a></div></div>
|
||||
@@ -217,7 +218,7 @@ $(function() {
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1Manager_html_a81a6d60d5ccc13e9b0ad87dd6ea7aeca"><div class="ttname"><a href="classripple_1_1NodeStore_1_1Manager.html#a81a6d60d5ccc13e9b0ad87dd6ea7aeca">ripple::NodeStore::Manager::make_Backend</a></div><div class="ttdeci">virtual std::unique_ptr< Backend > make_Backend(Section const &parameters, std::size_t burstSize, Scheduler &scheduler, beast::Journal journal)=0</div><div class="ttdoc">Create a backend.</div></div>
|
||||
<div class="ttc" id="aclassbeast_1_1detail_1_1xor__shift__engine_html"><div class="ttname"><a href="classbeast_1_1detail_1_1xor__shift__engine.html">beast::detail::xor_shift_engine</a></div><div class="ttdef"><b>Definition:</b> <a href="xor__shift__engine_8h_source.html#l00032">xor_shift_engine.h:32</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1TestBase_html_a5bd5d36de98ec8e56c5c3da9148ae72f"><div class="ttname"><a href="classripple_1_1NodeStore_1_1TestBase.html#a5bd5d36de98ec8e56c5c3da9148ae72f">ripple::NodeStore::TestBase::storeBatch</a></div><div class="ttdeci">void storeBatch(Backend &backend, Batch const &batch)</div><div class="ttdef"><b>Definition:</b> <a href="TestBase_8h_source.html#l00145">TestBase.h:145</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1Manager_html_a59f9bcb7e6049d1b4c557891992f6cab"><div class="ttname"><a href="classripple_1_1NodeStore_1_1Manager.html#a59f9bcb7e6049d1b4c557891992f6cab">ripple::NodeStore::Manager::instance</a></div><div class="ttdeci">static Manager & instance()</div><div class="ttdoc">Returns the instance of the manager singleton.</div><div class="ttdef"><b>Definition:</b> <a href="ManagerImp_8cpp_source.html#l00119">ManagerImp.cpp:119</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1Manager_html_a59f9bcb7e6049d1b4c557891992f6cab"><div class="ttname"><a href="classripple_1_1NodeStore_1_1Manager.html#a59f9bcb7e6049d1b4c557891992f6cab">ripple::NodeStore::Manager::instance</a></div><div class="ttdeci">static Manager & instance()</div><div class="ttdoc">Returns the instance of the manager singleton.</div><div class="ttdef"><b>Definition:</b> <a href="ManagerImp_8cpp_source.html#l00128">ManagerImp.cpp:128</a></div></div>
|
||||
<div class="ttc" id="aunique_ptr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="arandom_shuffle_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/random_shuffle.html">std::shuffle</a></div><div class="ttdeci">T shuffle(T... args)</div></div>
|
||||
<div class="ttc" id="aclassbeast_1_1temp__dir_html"><div class="ttname"><a href="classbeast_1_1temp__dir.html">beast::temp_dir</a></div><div class="ttdoc">RAII temporary directory.</div><div class="ttdef"><b>Definition:</b> <a href="temp__dir_8h_source.html#l00033">temp_dir.h:33</a></div></div>
|
||||
|
||||
Reference in New Issue
Block a user