diff options
author | Joshua Haberman <joshua@reverberate.org> | 2010-01-05 17:42:05 -0800 |
---|---|---|
committer | Joshua Haberman <joshua@reverberate.org> | 2010-01-05 17:42:05 -0800 |
commit | d75197375876538332d6d81aa4e8edd13b8f26c1 (patch) | |
tree | 91349874a045ff71da56af25aca342e0653491ab /tests/test_table.cc | |
parent | 15604083c7323a1bcd7a591a6025aca98bd57fd2 (diff) |
Ported/fixed tests to new data types.
Diffstat (limited to 'tests/test_table.cc')
-rw-r--r-- | tests/test_table.cc | 19 |
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); |