diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java index 19a5e03b72e..8cb17a6d59b 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java @@ -191,7 +191,7 @@ public class HTableDescriptor implements TableDescriptor, Comparable ['10', '20', '30', '40']) - @table = table(@testTableName) - splits = @table._get_splits_internal() - #Total splits is 5 but here count is 4 as we ignore implicit empty split. + define_test 'Split count for a table' do + @test_table_name = 'table_with_splits' + create_test_table_with_splits(@test_table_name, SPLITS => %w[10 20 30 40]) + @table = table(@test_table_name) + splits = @table._get_splits_internal + # Total splits is 5 but here count is 4 as we ignore implicit empty split. assert_equal(4, splits.size) - assert_equal(["10", "20", "30", "40"], splits) - drop_test_table(@testTableName) + assert_equal(%w[10 20 30 40], splits) + drop_test_table(@test_table_name) end - define_test "Split count for a empty table" do - splits = @test_table._get_splits_internal() - #Empty split should not be part of this array. + define_test 'Split count for a table by file' do + @test_table_name = 'table_with_splits_file' + @splits_file = 'target/generated-test-sources/splits.txt' + File.exist?(@splits_file) && File.delete(@splits_file) + file = File.new(@splits_file, 'w') + %w[10 20 30 40].each { |item| file.puts item } + file.close + create_test_table_with_splits_file(@test_table_name, + SPLITS_FILE => @splits_file) + @table = table(@test_table_name) + splits = @table._get_splits_internal + # Total splits is 5 but here count is 4 as we ignore implicit empty split. + assert_equal(4, splits.size) + assert_equal(%w[10 20 30 40], splits) + drop_test_table(@test_table_name) + File.delete(@splits_file) + end + + define_test 'Split count for a empty table' do + splits = @test_table._get_splits_internal + # Empty split should not be part of this array. assert_equal(0, splits.size) assert_equal([], splits) end diff --git a/hbase-shell/src/test/ruby/test_helper.rb b/hbase-shell/src/test/ruby/test_helper.rb index f72a1c6a849..78fba7a2063 100644 --- a/hbase-shell/src/test/ruby/test_helper.rb +++ b/hbase-shell/src/test/ruby/test_helper.rb @@ -102,14 +102,18 @@ module Hbase def create_test_table_with_splits(name, splits) # Create the table if needed - unless admin.exists?(name) - command(:create, name, 'f1', splits) - end + command(:create, name, 'f1', splits) unless admin.exists?(name) # Enable the table if needed - unless admin.enabled?(name) - admin.enable(name) - end + admin.enable(name) unless admin.enabled?(name) + end + + def create_test_table_with_splits_file(name, splits_file) + # Create the table if needed + command(:create, name, 'f1', splits_file) unless admin.exists?(name) + + # Enable the table if needed + admin.enable(name) unless admin.enabled?(name) end def create_test_table_with_region_replicas(name, num_of_replicas, splits)