List:Commits« Previous MessageNext Message »
From:Tor Didriksen Date:January 14 2011 12:38pm
Subject:bzr push into mysql-trunk branch (tor.didriksen:3364 to 3365)
View as plain text  
 3365 Tor Didriksen	2011-01-14
      add unit test for bitmap

    added:
      unittest/gunit/my_bitmap-t.cc
    modified:
      unittest/gunit/CMakeLists.txt
 3364 Tor Didriksen	2011-01-05 [merge]
      Automerge trunk => next-mr-gtest

    removed:
      include/my_no_pthread.h
      mysys/mf_brkhant.c
    renamed:
      mysql-test/suite/funcs_1/r/myisam_views.result => mysql-test/suite/funcs_1/r/myisam_views-big.result
      mysql-test/suite/funcs_1/t/myisam_views.test => mysql-test/suite/funcs_1/t/myisam_views-big.test
    modified:
      .bzr-mysql/default.conf
      VERSION
      client/mysqladmin.cc
      cmd-line-utils/readline/CMakeLists.txt
      config.h.cmake
      dbug/dbug.c
      dbug/dbug_analyze.c
      dbug/my_main.c
      dbug/tests.c
      include/CMakeLists.txt
      include/heap.h
      include/my_base.h
      include/my_bitmap.h
      include/my_global.h
      include/my_pthread.h
      include/my_sys.h
      include/myisam.h
      include/thr_alarm.h
      libmysql/client_settings.h
      libmysql/libmysql.c
      mysql-test/collections/default.experimental
      mysql-test/collections/default.weekly
      mysql-test/r/auto_increment.result
      mysql-test/r/myisam_mrr_all.result
      mysql-test/r/myisam_mrr_cost_all.result
      mysql-test/r/order_by_all.result
      mysql-test/r/select_all.result
      mysql-test/r/select_all_jcl6.result
      mysql-test/r/select_icp_mrr_jcl6.result
      mysql-test/r/select_none_jcl6.result
      mysql-test/suite/engines/funcs/r/db_alter_character_set.result
      mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result
      mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result
      mysql-test/suite/engines/funcs/r/in_multicolumn_string_pk_constraint_error.result
      mysql-test/suite/engines/funcs/r/in_multicolumn_string_pk_constraint_ignore.result
      mysql-test/suite/engines/funcs/r/in_multicolumn_string_unique_constraint_error.result
      mysql-test/suite/engines/funcs/r/in_string_pk_constraint_error.result
      mysql-test/suite/engines/funcs/r/in_string_unique_constraint_error.result
      mysql-test/suite/engines/funcs/r/rpl000013.result
      mysql-test/suite/engines/funcs/r/rpl_000015.result
      mysql-test/suite/engines/funcs/r/rpl_change_master.result
      mysql-test/suite/engines/funcs/r/rpl_drop.result
      mysql-test/suite/engines/funcs/r/rpl_flushlog_loop.result
      mysql-test/suite/engines/funcs/r/rpl_loaddata_s.result
      mysql-test/suite/engines/funcs/r/rpl_log_pos.result
      mysql-test/suite/engines/funcs/r/rpl_rbr_to_sbr.result
      mysql-test/suite/engines/funcs/r/rpl_row_drop.result
      mysql-test/suite/engines/funcs/r/rpl_row_inexist_tbl.result
      mysql-test/suite/engines/funcs/r/rpl_row_reset_slave.result
      mysql-test/suite/engines/funcs/r/rpl_row_sp005.result
      mysql-test/suite/engines/funcs/r/rpl_row_trig003.result
      mysql-test/suite/engines/funcs/r/rpl_row_until.result
      mysql-test/suite/engines/funcs/r/rpl_server_id1.result
      mysql-test/suite/engines/funcs/r/rpl_server_id2.result
      mysql-test/suite/engines/funcs/r/rpl_session_var.result
      mysql-test/suite/engines/funcs/r/rpl_slave_status.result
      mysql-test/suite/engines/funcs/r/rpl_stm_no_op.result
      mysql-test/suite/engines/funcs/r/rpl_switch_stm_row_mixed.result
      mysql-test/suite/engines/funcs/r/rpl_temp_table.result
      mysql-test/suite/engines/funcs/r/rpl_trigger.result
      mysql-test/suite/engines/funcs/r/se_join_left.result
      mysql-test/suite/engines/funcs/r/se_join_left_outer.result
      mysql-test/suite/engines/funcs/r/se_join_natural_left.result
      mysql-test/suite/engines/funcs/r/se_join_natural_left_outer.result
      mysql-test/suite/engines/funcs/r/sf_alter.result
      mysql-test/suite/engines/funcs/r/sf_cursor.result
      mysql-test/suite/engines/funcs/r/sp_alter.result
      mysql-test/suite/engines/funcs/r/sp_cursor.result
      mysql-test/suite/engines/funcs/r/ta_rename.result
      mysql-test/suite/engines/funcs/t/db_alter_collate_utf8.test
      mysql-test/suite/engines/funcs/t/disabled.def
      mysql-test/suite/engines/funcs/t/in_multicolumn_string_pk_constraint_error.test
      mysql-test/suite/engines/funcs/t/in_multicolumn_string_pk_constraint_ignore.test
      mysql-test/suite/engines/funcs/t/in_multicolumn_string_unique_constraint_error.test
      mysql-test/suite/engines/funcs/t/in_string_pk_constraint_error.test
      mysql-test/suite/engines/funcs/t/in_string_unique_constraint_error.test
      mysql-test/suite/engines/funcs/t/rpl000013.test
      mysql-test/suite/engines/funcs/t/rpl_000015.test
      mysql-test/suite/engines/funcs/t/rpl_change_master.test
      mysql-test/suite/engines/funcs/t/rpl_err_ignoredtable.test
      mysql-test/suite/engines/funcs/t/rpl_flushlog_loop.test
      mysql-test/suite/engines/funcs/t/rpl_get_lock.test
      mysql-test/suite/engines/funcs/t/rpl_loaddata_s.test
      mysql-test/suite/engines/funcs/t/rpl_loadfile.test
      mysql-test/suite/engines/funcs/t/rpl_log_pos.test
      mysql-test/suite/engines/funcs/t/rpl_misc_functions.test
      mysql-test/suite/engines/funcs/t/rpl_rbr_to_sbr.test
      mysql-test/suite/engines/funcs/t/rpl_row_drop.test
      mysql-test/suite/engines/funcs/t/rpl_row_inexist_tbl.test
      mysql-test/suite/engines/funcs/t/rpl_row_until.test
      mysql-test/suite/engines/funcs/t/rpl_server_id1.test
      mysql-test/suite/engines/funcs/t/rpl_server_id2.test
      mysql-test/suite/engines/funcs/t/rpl_slave_status.test
      mysql-test/suite/engines/funcs/t/rpl_switch_stm_row_mixed.test
      mysql-test/suite/engines/funcs/t/rpl_temp_table.test
      mysql-test/suite/engines/funcs/t/rpl_temporary.test
      mysql-test/suite/engines/funcs/t/rpl_trigger.test
      mysql-test/suite/engines/funcs/t/se_join_left.test
      mysql-test/suite/engines/funcs/t/se_join_left_outer.test
      mysql-test/suite/engines/funcs/t/se_join_natural_left.test
      mysql-test/suite/engines/funcs/t/se_join_natural_left_outer.test
      mysql-test/suite/engines/iuds/r/insert_number.result
      mysql-test/suite/engines/iuds/r/strings_charsets_update_delete.result
      mysql-test/suite/engines/iuds/r/strings_update_delete.result
      mysql-test/suite/engines/iuds/r/type_bit_iuds.result
      mysql-test/suite/engines/iuds/r/update_delete_calendar.result
      mysql-test/suite/engines/iuds/r/update_delete_number.result
      mysql-test/suite/engines/iuds/t/disabled.def
      mysql-test/suite/engines/iuds/t/insert_number.test
      mysql-test/suite/engines/iuds/t/update_delete_calendar.test
      mysql-test/suite/perfschema/include/binlog_common.inc
      mysql-test/suite/perfschema/r/binlog_mix.result
      mysql-test/suite/perfschema/r/binlog_row.result
      mysql-test/suite/perfschema/r/binlog_stmt.result
      mysql-test/suite/perfschema/t/binlog_mix.test
      mysql-test/suite/perfschema/t/binlog_row.test
      mysql-test/suite/perfschema/t/binlog_stmt.test
      mysql-test/t/auto_increment.test
      mysys/mf_iocache.c
      mysys/mf_iocache2.c
      mysys/mf_keycache.c
      mysys/mf_keycaches.c
      mysys/my_bitmap.c
      mysys/my_fstream.c
      mysys/my_gethostbyname.c
      mysys/my_init.c
      mysys/my_lib.c
      mysys/my_open.c
      mysys/my_pread.c
      mysys/my_pthread.c
      mysys/my_read.c
      mysys/my_static.c
      mysys/my_thr_init.c
      mysys/my_write.c
      mysys/mysys_priv.h
      mysys/thr_alarm.c
      mysys/thr_lock.c
      mysys/thr_mutex.c
      mysys/thr_rwlock.c
      sql-common/client.c
      sql-common/client_plugin.c
      sql/client_settings.h
      sql/filesort.cc
      sql/ha_partition.cc
      sql/sql_show.cc
      storage/heap/heapdef.h
      storage/heap/hp_block.c
      storage/heap/hp_create.c
      storage/heap/hp_open.c
      storage/heap/hp_static.c
      storage/heap/hp_test2.c
      storage/innobase/handler/ha_innodb.cc
      storage/myisam/ha_myisam.cc
      storage/myisam/mi_check.c
      storage/myisam/mi_close.c
      storage/myisam/mi_delete.c
      storage/myisam/mi_delete_all.c
      storage/myisam/mi_dynrec.c
      storage/myisam/mi_log.c
      storage/myisam/mi_open.c
      storage/myisam/mi_static.c
      storage/myisam/mi_statrec.c
      storage/myisam/mi_update.c
      storage/myisam/mi_write.c
      storage/myisam/myisamdef.h
      storage/myisam/sort.c
      storage/myisammrg/myrg_def.h
      tests/thread_test.c
      mysql-test/suite/funcs_1/t/myisam_views-big.test
=== modified file 'unittest/gunit/CMakeLists.txt'
--- a/unittest/gunit/CMakeLists.txt	2011-01-05 11:43:24 +0000
+++ b/unittest/gunit/CMakeLists.txt	2011-01-14 12:38:40 +0000
@@ -212,6 +212,7 @@ SET(TESTS
   dbug
   mdl
   mdl_mytap
+  my_bitmap
   my_regex
   sql_list
   thread_utils

=== added file 'unittest/gunit/my_bitmap-t.cc'
--- a/unittest/gunit/my_bitmap-t.cc	1970-01-01 00:00:00 +0000
+++ b/unittest/gunit/my_bitmap-t.cc	2011-01-14 12:38:40 +0000
@@ -0,0 +1,400 @@
+/* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 of the License.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
+
+#include "my_config.h"
+#include <gtest/gtest.h>
+
+#include <my_global.h>
+#include <my_pthread.h>
+#include <my_bitmap.h>
+
+namespace {
+
+uint get_rand_bit(uint bitsize)
+{
+  return (rand() % bitsize);
+}
+
+bool test_set_get_clear_bit(MY_BITMAP *map, uint bitsize)
+{
+  uint i, test_bit;
+  uint no_loops= bitsize > 128 ? 128 : bitsize;
+  for (i=0; i < no_loops; i++)
+  {
+    test_bit= get_rand_bit(bitsize);
+    bitmap_set_bit(map, test_bit);
+    if (!bitmap_is_set(map, test_bit))
+      goto error1;
+    bitmap_clear_bit(map, test_bit);
+    if (bitmap_is_set(map, test_bit))
+      goto error2;
+  }
+  return FALSE;
+error1:
+  printf("Error in set bit, bit %u, bitsize = %u", test_bit, bitsize);
+  return TRUE;
+error2:
+  printf("Error in clear bit, bit %u, bitsize = %u", test_bit, bitsize);
+  return TRUE;
+}
+
+bool test_flip_bit(MY_BITMAP *map, uint bitsize)
+{
+  uint i, test_bit;
+  uint no_loops= bitsize > 128 ? 128 : bitsize;
+  for (i=0; i < no_loops; i++)
+  {
+    test_bit= get_rand_bit(bitsize);
+    bitmap_flip_bit(map, test_bit);
+    if (!bitmap_is_set(map, test_bit))
+      goto error1;
+    bitmap_flip_bit(map, test_bit);
+    if (bitmap_is_set(map, test_bit))
+      goto error2;
+  }
+  return FALSE;
+error1:
+  printf("Error in flip bit 1, bit %u, bitsize = %u", test_bit, bitsize);
+  return TRUE;
+error2:
+  printf("Error in flip bit 2, bit %u, bitsize = %u", test_bit, bitsize);
+  return TRUE;
+}
+
+bool test_operators(MY_BITMAP *map __attribute__((unused)),
+                    uint bitsize __attribute__((unused)))
+{
+  return FALSE;
+}
+
+bool test_get_all_bits(MY_BITMAP *map, uint bitsize)
+{
+  uint i;
+  bitmap_set_all(map);
+  if (!bitmap_is_set_all(map))
+    goto error1;
+  if (!bitmap_is_prefix(map, bitsize))
+    goto error5;
+  bitmap_clear_all(map);
+  if (!bitmap_is_clear_all(map))
+    goto error2;
+  if (!bitmap_is_prefix(map, 0))
+    goto error6;
+  for (i=0; i<bitsize;i++)
+    bitmap_set_bit(map, i);
+  if (!bitmap_is_set_all(map))
+    goto error3;
+  for (i=0; i<bitsize;i++)
+    bitmap_clear_bit(map, i);
+  if (!bitmap_is_clear_all(map))
+    goto error4;
+  return FALSE;
+error1:
+  printf("Error in set_all, bitsize = %u", bitsize);
+  return TRUE;
+error2:
+  printf("Error in clear_all, bitsize = %u", bitsize);
+  return TRUE;
+error3:
+  printf("Error in bitmap_is_set_all, bitsize = %u", bitsize);
+  return TRUE;
+error4:
+  printf("Error in bitmap_is_clear_all, bitsize = %u", bitsize);
+  return TRUE;
+error5:
+  printf("Error in set_all through set_prefix, bitsize = %u", bitsize);
+  return TRUE;
+error6:
+  printf("Error in clear_all through set_prefix, bitsize = %u", bitsize);
+  return TRUE;
+}
+
+bool test_compare_operators(MY_BITMAP *map, uint bitsize)
+{
+  uint i, j, test_bit1, test_bit2, test_bit3,test_bit4;
+  uint no_loops= bitsize > 128 ? 128 : bitsize;
+  MY_BITMAP map2_obj, map3_obj;
+  MY_BITMAP *map2= &map2_obj, *map3= &map3_obj;
+  my_bitmap_map map2buf[1024];
+  my_bitmap_map map3buf[1024];
+  bitmap_init(&map2_obj, map2buf, bitsize, FALSE);
+  bitmap_init(&map3_obj, map3buf, bitsize, FALSE);
+  bitmap_clear_all(map2);
+  bitmap_clear_all(map3);
+  for (i=0; i < no_loops; i++)
+  {
+    test_bit1=get_rand_bit(bitsize);
+    bitmap_set_prefix(map, test_bit1);
+    test_bit2=get_rand_bit(bitsize);
+    bitmap_set_prefix(map2, test_bit2);
+    bitmap_intersect(map, map2);
+    test_bit3= test_bit2 < test_bit1 ? test_bit2 : test_bit1;
+    bitmap_set_prefix(map3, test_bit3);
+    if (!bitmap_cmp(map, map3))
+      goto error1;
+    bitmap_clear_all(map);
+    bitmap_clear_all(map2);
+    bitmap_clear_all(map3);
+    test_bit1=get_rand_bit(bitsize);
+    test_bit2=get_rand_bit(bitsize);
+    test_bit3=get_rand_bit(bitsize);
+    bitmap_set_prefix(map, test_bit1);
+    bitmap_set_prefix(map2, test_bit2);
+    test_bit3= test_bit2 > test_bit1 ? test_bit2 : test_bit1;
+    bitmap_set_prefix(map3, test_bit3);
+    bitmap_union(map, map2);
+    if (!bitmap_cmp(map, map3))
+      goto error2;
+    bitmap_clear_all(map);
+    bitmap_clear_all(map2);
+    bitmap_clear_all(map3);
+    test_bit1=get_rand_bit(bitsize);
+    test_bit2=get_rand_bit(bitsize);
+    test_bit3=get_rand_bit(bitsize);
+    bitmap_set_prefix(map, test_bit1);
+    bitmap_set_prefix(map2, test_bit2);
+    bitmap_xor(map, map2);
+    test_bit3= test_bit2 > test_bit1 ? test_bit2 : test_bit1;
+    test_bit4= test_bit2 < test_bit1 ? test_bit2 : test_bit1;
+    bitmap_set_prefix(map3, test_bit3);
+    for (j=0; j < test_bit4; j++)
+      bitmap_clear_bit(map3, j);
+    if (!bitmap_cmp(map, map3))
+      goto error3;
+    bitmap_clear_all(map);
+    bitmap_clear_all(map2);
+    bitmap_clear_all(map3);
+    test_bit1=get_rand_bit(bitsize);
+    test_bit2=get_rand_bit(bitsize);
+    test_bit3=get_rand_bit(bitsize);
+    bitmap_set_prefix(map, test_bit1);
+    bitmap_set_prefix(map2, test_bit2);
+    bitmap_subtract(map, map2);
+    if (test_bit2 < test_bit1)
+    {
+      bitmap_set_prefix(map3, test_bit1);
+      for (j=0; j < test_bit2; j++)
+        bitmap_clear_bit(map3, j);
+    }
+    if (!bitmap_cmp(map, map3))
+      goto error4;
+    bitmap_clear_all(map);
+    bitmap_clear_all(map2);
+    bitmap_clear_all(map3);
+    test_bit1=get_rand_bit(bitsize);
+    bitmap_set_prefix(map, test_bit1);
+    bitmap_invert(map);
+    bitmap_set_all(map3);
+    for (j=0; j < test_bit1; j++)
+      bitmap_clear_bit(map3, j);
+    if (!bitmap_cmp(map, map3))
+      goto error5;
+    bitmap_clear_all(map);
+    bitmap_clear_all(map3);
+  }
+  return FALSE;
+error1:
+  printf("intersect error  bitsize=%u,size1=%u,size2=%u", bitsize,
+  test_bit1,test_bit2);
+  return TRUE;
+error2:
+  printf("union error  bitsize=%u,size1=%u,size2=%u", bitsize,
+  test_bit1,test_bit2);
+  return TRUE;
+error3:
+  printf("xor error  bitsize=%u,size1=%u,size2=%u", bitsize,
+  test_bit1,test_bit2);
+  return TRUE;
+error4:
+  printf("subtract error  bitsize=%u,size1=%u,size2=%u", bitsize,
+  test_bit1,test_bit2);
+  return TRUE;
+error5:
+  printf("invert error  bitsize=%u,size=%u", bitsize,
+  test_bit1);
+  return TRUE;
+}
+
+bool test_count_bits_set(MY_BITMAP *map, uint bitsize)
+{
+  uint i, bit_count=0, test_bit;
+  uint no_loops= bitsize > 128 ? 128 : bitsize;
+  for (i=0; i < no_loops; i++)
+  {
+    test_bit=get_rand_bit(bitsize);
+    if (!bitmap_is_set(map, test_bit))
+    {
+      bitmap_set_bit(map, test_bit);
+      bit_count++;
+    }
+  }
+  if (bit_count==0 && bitsize > 0)
+    goto error1;
+  if (bitmap_bits_set(map) != bit_count)
+    goto error2;
+  return FALSE;
+error1:
+  printf("No bits set  bitsize = %u", bitsize);
+  return TRUE;
+error2:
+  printf("Wrong count of bits set, bitsize = %u", bitsize);
+  return TRUE;
+}
+
+bool test_get_first_bit(MY_BITMAP *map, uint bitsize)
+{
+  uint i, test_bit;
+  uint no_loops= bitsize > 128 ? 128 : bitsize;
+  for (i=0; i < no_loops; i++)
+  {
+    test_bit=get_rand_bit(bitsize);
+    bitmap_set_bit(map, test_bit);
+    if (bitmap_get_first_set(map) != test_bit)
+      goto error1;
+    bitmap_set_all(map);
+    bitmap_clear_bit(map, test_bit);
+    if (bitmap_get_first(map) != test_bit)
+      goto error2;
+    bitmap_clear_all(map);
+  }
+  return FALSE;
+error1:
+  printf("get_first_set error bitsize=%u,prefix_size=%u",bitsize,test_bit);
+  return TRUE;
+error2:
+  printf("get_first error bitsize= %u, prefix_size= %u",bitsize,test_bit);
+  return TRUE;
+}
+
+bool test_get_next_bit(MY_BITMAP *map, uint bitsize)
+{
+  uint i, j, test_bit;
+  uint no_loops= bitsize > 128 ? 128 : bitsize;
+  for (i=0; i < no_loops; i++)
+  {
+    test_bit=get_rand_bit(bitsize);
+    for (j=0; j < test_bit; j++)
+      bitmap_set_next(map);
+    if (!bitmap_is_prefix(map, test_bit))
+      goto error1;
+    bitmap_clear_all(map);
+  }
+  return FALSE;
+error1:
+  printf("get_next error  bitsize= %u, prefix_size= %u", bitsize,test_bit);
+  return TRUE;
+}
+
+bool test_prefix(MY_BITMAP *map, uint bitsize)
+{
+  uint i, j, test_bit;
+  uint no_loops= bitsize > 128 ? 128 : bitsize;
+  for (i=0; i < no_loops; i++)
+  {
+    test_bit=get_rand_bit(bitsize);
+    bitmap_set_prefix(map, test_bit);
+    if (!bitmap_is_prefix(map, test_bit))
+      goto error1;
+    bitmap_clear_all(map);
+    for (j=0; j < test_bit; j++)
+      bitmap_set_bit(map, j);
+    if (!bitmap_is_prefix(map, test_bit))
+      goto error2;
+    bitmap_set_all(map);
+    for (j=bitsize - 1; ~(j-test_bit); j--)
+      bitmap_clear_bit(map, j);
+    if (!bitmap_is_prefix(map, test_bit))
+      goto error3;
+    bitmap_clear_all(map);
+  }
+  return FALSE;
+error1:
+  printf("prefix1 error  bitsize = %u, prefix_size = %u", bitsize,test_bit);
+  return TRUE;
+error2:
+  printf("prefix2 error  bitsize = %u, prefix_size = %u", bitsize,test_bit);
+  return TRUE;
+error3:
+  printf("prefix3 error  bitsize = %u, prefix_size = %u", bitsize,test_bit);
+  return TRUE;
+}
+
+#if defined(GTEST_HAS_PARAM_TEST)
+
+class BitMapTest : public ::testing::TestWithParam<uint>
+{
+protected:
+  virtual void SetUp()
+  {
+    bitsize= GetParam();
+    ASSERT_FALSE(bitmap_init(&map, buf, bitsize, false));
+    bitmap_clear_all(&map);
+  }
+
+  MY_BITMAP map;
+  my_bitmap_map buf[1024];
+  uint bitsize;
+};
+
+INSTANTIATE_TEST_CASE_P(Foo, BitMapTest, ::testing::Range(1U, 4096U, 100U));
+
+TEST_P(BitMapTest, TestSetGetClearBit)
+{
+  EXPECT_FALSE(test_set_get_clear_bit(&map, bitsize));
+}
+
+TEST_P(BitMapTest, TestFlipBit)
+{
+  EXPECT_FALSE(test_flip_bit(&map, bitsize));
+}
+
+TEST_P(BitMapTest, TestOperators)
+{
+  EXPECT_FALSE(test_operators(&map, bitsize));
+}
+
+TEST_P(BitMapTest, TestGetAllBits)
+{
+  EXPECT_FALSE(test_get_all_bits(&map, bitsize));
+}
+
+TEST_P(BitMapTest, TestCompareOperators)
+{
+  EXPECT_FALSE(test_compare_operators(&map, bitsize));
+}
+
+TEST_P(BitMapTest, TestCountBitsSet)
+{
+  EXPECT_FALSE(test_count_bits_set(&map, bitsize));
+}
+
+TEST_P(BitMapTest, TestGetFirstBit)
+{
+  EXPECT_FALSE(test_get_first_bit(&map, bitsize));
+}
+
+TEST_P(BitMapTest, TestGetNextBit)
+{
+  EXPECT_FALSE(test_get_next_bit(&map, bitsize));
+}
+
+TEST_P(BitMapTest, TestPrefix)
+{
+  EXPECT_FALSE(test_prefix(&map, bitsize));
+}
+
+#endif
+
+}

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (tor.didriksen:3364 to 3365) Tor Didriksen14 Jan