summaryrefslogtreecommitdiff
path: root/tests/test_table.cc
diff options
context:
space:
mode:
authorJoshua Haberman <joshua@reverberate.org>2010-01-05 17:42:05 -0800
committerJoshua Haberman <joshua@reverberate.org>2010-01-05 17:42:05 -0800
commitd75197375876538332d6d81aa4e8edd13b8f26c1 (patch)
tree91349874a045ff71da56af25aca342e0653491ab /tests/test_table.cc
parent15604083c7323a1bcd7a591a6025aca98bd57fd2 (diff)
Ported/fixed tests to new data types.
Diffstat (limited to 'tests/test_table.cc')
-rw-r--r--tests/test_table.cc19
1 files changed, 8 insertions, 11 deletions
diff --git a/tests/test_table.cc b/tests/test_table.cc
index c903fff..7f8510b 100644
--- a/tests/test_table.cc
+++ b/tests/test_table.cc
@@ -1,6 +1,7 @@
#undef NDEBUG /* ensure tests always assert. */
#include "upb_table.h"
+#include "upb_data.h"
#include "test_util.h"
#include <assert.h>
#include <map>
@@ -31,13 +32,6 @@ double get_usertime()
return usage.ru_utime.tv_sec + (usage.ru_utime.tv_usec/1000000.0);
}
-struct upb_string *get_upbstring(const string& key) {
- struct upb_string *str = upb_string_new();
- upb_string_resize(str, key.size());
- memcpy(str->ptr, key.c_str(), key.size());
- return str;
-}
-
/* num_entries must be a power of 2. */
void test_strtable(const vector<string>& keys, uint32_t num_to_insert)
{
@@ -51,31 +45,34 @@ void test_strtable(const vector<string>& keys, uint32_t num_to_insert)
all.insert(key);
struct strtable_entry e;
e.value = key[0];
- e.e.key = get_upbstring(key);
+ upb_strptr str = upb_strduplen(key.c_str(), key.size());
+ e.e.key = str;
upb_strtable_insert(&table, &e.e);
+ upb_string_unref(str); // The table still owns a ref.
m[key] = key[0];
}
/* Test correctness. */
for(uint32_t i = 0; i < keys.size(); i++) {
const string& key = keys[i];
- struct upb_string *str = get_upbstring(key);
+ upb_strptr str = upb_strduplen(key.c_str(), key.size());
struct strtable_entry *e =
(struct strtable_entry*)upb_strtable_lookup(&table, str);
if(m.find(key) != m.end()) { /* Assume map implementation is correct. */
assert(e);
- assert(upb_streql(e->e.key, get_upbstring(key)));
+ assert(upb_streql(e->e.key, str));
assert(e->value == key[0]);
assert(m[key] == key[0]);
} else {
assert(e == NULL);
}
+ upb_string_unref(str);
}
struct strtable_entry *e;
for(e = (struct strtable_entry*)upb_strtable_begin(&table); e;
e = (struct strtable_entry*)upb_strtable_next(&table, &e->e)) {
- string tmp(e->e.key->ptr, e->e.key->byte_len);
+ string tmp(upb_string_getrobuf(e->e.key), upb_strlen(e->e.key));
std::set<string>::iterator i = all.find(tmp);
assert(i != all.end());
all.erase(i);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback