summaryrefslogtreecommitdiff
path: root/tests/test_table.cc
diff options
context:
space:
mode:
authorJosh Haberman <jhaberman@gmail.com>2014-07-24 09:04:46 -0700
committerJosh Haberman <jhaberman@gmail.com>2014-07-24 09:04:46 -0700
commitd493500abc6def6b62d664990ed821e0a836a6cf (patch)
tree1ceb65e6866ee63612dd73363944a0fc99a65550 /tests/test_table.cc
parent47b5e0968aa0ec47f522ba357c159b2450645806 (diff)
Sync from Google-internal development.
Diffstat (limited to 'tests/test_table.cc')
-rw-r--r--tests/test_table.cc23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/test_table.cc b/tests/test_table.cc
index 2d08abb..d51138b 100644
--- a/tests/test_table.cc
+++ b/tests/test_table.cc
@@ -284,6 +284,26 @@ int32_t *get_contiguous_keys(int32_t num) {
return buf;
}
+void test_delete() {
+ upb_inttable t;
+ upb_inttable_init(&t, UPB_CTYPE_BOOL);
+ upb_inttable_insert(&t, 0, upb_value_bool(true));
+ upb_inttable_insert(&t, 2, upb_value_bool(true));
+ upb_inttable_insert(&t, 4, upb_value_bool(true));
+ upb_inttable_compact(&t);
+ upb_inttable_remove(&t, 0, NULL);
+ upb_inttable_remove(&t, 2, NULL);
+ upb_inttable_remove(&t, 4, NULL);
+
+ upb_inttable_iter iter;
+ for (upb_inttable_begin(&iter, &t); !upb_inttable_done(&iter);
+ upb_inttable_next(&iter)) {
+ ASSERT(false);
+ }
+
+ upb_inttable_uninit(&t);
+}
+
extern "C" {
int run_tests(int argc, char *argv[]) {
@@ -336,6 +356,9 @@ int run_tests(int argc, char *argv[]) {
}
test_inttable(keys4, 64, "Table size: 64, keys: 1-32 and 10133-10164 ====\n");
delete[] keys4;
+
+ test_delete();
+
return 0;
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback