summaryrefslogtreecommitdiff
path: root/src/unittest/trietest.cc
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2017-11-29 17:58:59 -0800
committerGabe Black <gabeblack@google.com>2017-12-04 23:09:47 +0000
commit4b04e3893a098044b4f46dbff0ff060260e86ca6 (patch)
tree1c24a2caa79c2f842e36fa2696da3d592dc3dfde /src/unittest/trietest.cc
parentb359faa73b199b4defa42983ba17068d66beaaca (diff)
downloadgem5-4b04e3893a098044b4f46dbff0ff060260e86ca6.tar.xz
tests: Remove trietest's dependence on cprintf.
Dumping the structure of the tries being constructed was useful for debugging when the trie data structure was being developed, but the output can't be automatically verified easily, and what's considered correct depends on the specific implementation of the trie itself. To make some of the earlier tests more meaningful, additional lookups were added which verified that the correct values were returned when the nodes of the trie were in particular arrangements. Change-Id: Ib464ad1804d13fe40882da2190d7bf452da83818 Reviewed-on: https://gem5-review.googlesource.com/6223 Reviewed-by: Brandon Potter <Brandon.Potter@amd.com> Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/unittest/trietest.cc')
-rw-r--r--src/unittest/trietest.cc29
1 files changed, 10 insertions, 19 deletions
diff --git a/src/unittest/trietest.cc b/src/unittest/trietest.cc
index 7abef4ce1..12d434fe6 100644
--- a/src/unittest/trietest.cc
+++ b/src/unittest/trietest.cc
@@ -30,7 +30,6 @@
#include <iostream>
-#include "base/cprintf.hh"
#include "base/trie.hh"
#include "base/types.hh"
#include "unittest/unittest.hh"
@@ -54,33 +53,33 @@ main()
// Create an empty Ptr and verify it's data pointer is NULL.
setCase("An empty trie.");
TestTrie trie1;
- trie1.dump("Empty");
- cprintf("\n\n");
+ EXPECT_EQ(trie1.lookup(0x123456701234567), NULL);
setCase("A single entry.");
trie1.insert(0x0123456789abcdef, 40, ptr(1));
- trie1.dump("One entry");
- cprintf("\n\n");
+ EXPECT_EQ(trie1.lookup(0x123456701234567), NULL);
+ EXPECT_EQ(trie1.lookup(0x123456789ab0000), ptr(1));
setCase("Two entries, one on the way to the other.");
TestTrie trie2;
trie2.insert(0x0123456789abcdef, 40, ptr(1));
trie2.insert(0x0123456789abcdef, 36, ptr(2));
- trie2.dump("Two entries inline v1");
- cprintf("\n\n");
+ EXPECT_EQ(trie2.lookup(0x123456700000000), NULL);
+ EXPECT_EQ(trie2.lookup(0x123456789ab0000), ptr(2));
TestTrie trie3;
trie3.insert(0x0123456789abcdef, 36, ptr(2));
trie3.insert(0x0123456789abcdef, 40, ptr(1));
- trie3.dump("Two entries inline v2");
- cprintf("\n\n");
+ EXPECT_EQ(trie3.lookup(0x123456700000000), NULL);
+ EXPECT_EQ(trie3.lookup(0x123456789ab0000), ptr(2));
setCase("Two entries on different paths.");
TestTrie trie4;
trie4.insert(0x0123456789abcdef, 40, ptr(2));
trie4.insert(0x0123456776543210, 40, ptr(1));
- trie4.dump("Two split entries");
- cprintf("\n\n");
+ EXPECT_EQ(trie4.lookup(0x0123456789000000), ptr(2));
+ EXPECT_EQ(trie4.lookup(0x0123456776000000), ptr(1));
+ EXPECT_EQ(trie4.lookup(0x0123456700000000), NULL);
setCase("Skipping past an entry but not two.");
TestTrie trie5;
@@ -88,8 +87,6 @@ main()
trie5.insert(0x0123000000000000, 40, ptr(1));
trie5.insert(0x0123456780000000, 40, ptr(3));
trie5.insert(0x0123456700000000, 40, ptr(2));
- trie5.dump("Complex insertion");
- cprintf("\n\n");
setCase("Looking things up.");
EXPECT_EQ(trie5.lookup(0x0123000000000000), ptr(1));
@@ -105,8 +102,6 @@ main()
trie6.insert(0x0123456780000000, 40, ptr(3));
node1 = trie6.insert(0x0123456700000000, 40, ptr(2));
node2 = trie6.insert(0x0123456700000000, 32, ptr(10));
- trie6.dump("Fill before removal");
- cprintf("\n\n");
EXPECT_EQ(trie6.lookup(0x0123000000000000), ptr(1));
EXPECT_EQ(trie6.lookup(0x0123456700000000), ptr(10));
@@ -114,8 +109,6 @@ main()
EXPECT_EQ(trie6.lookup(0x0123456789000000), ptr(10));
trie6.remove(node2);
- trie6.dump("One node removed");
- cprintf("\n\n");
EXPECT_EQ(trie6.lookup(0x0123000000000000), ptr(1));
EXPECT_EQ(trie6.lookup(0x0123456700000000), ptr(2));
@@ -123,8 +116,6 @@ main()
EXPECT_EQ(trie6.lookup(0x0123456789000000), ptr(4));
trie6.remove(node1);
- trie6.dump("Two nodes removed");
- cprintf("\n\n");
EXPECT_EQ(trie6.lookup(0x0123000000000000), ptr(1));
EXPECT_EQ(trie6.lookup(0x0123456700000000), NULL);