From 7c3d11974bf7c2b4beb1a385cbab68d8175731b3 Mon Sep 17 00:00:00 2001 From: Jim Kellerman Date: Sun, 3 Jun 2007 08:52:06 +0000 Subject: [PATCH] HADOOP-1391. Split test case for merge into two so it does not time out in Hudson git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk/src/contrib/hbase@543862 13f79535-47bb-0310-9956-ffa450edef68 --- ...tMerge.java => AbstractMergeTestBase.java} | 60 ++++++------------- .../apache/hadoop/hbase/TestMergeMeta.java | 30 ++++++++++ .../apache/hadoop/hbase/TestMergeTable.java | 35 +++++++++++ 3 files changed, 83 insertions(+), 42 deletions(-) rename src/test/org/apache/hadoop/hbase/{TestMerge.java => AbstractMergeTestBase.java} (81%) create mode 100644 src/test/org/apache/hadoop/hbase/TestMergeMeta.java create mode 100644 src/test/org/apache/hadoop/hbase/TestMergeTable.java diff --git a/src/test/org/apache/hadoop/hbase/TestMerge.java b/src/test/org/apache/hadoop/hbase/AbstractMergeTestBase.java similarity index 81% rename from src/test/org/apache/hadoop/hbase/TestMerge.java rename to src/test/org/apache/hadoop/hbase/AbstractMergeTestBase.java index 29b2e17de53..a53d24810c4 100644 --- a/src/test/org/apache/hadoop/hbase/TestMerge.java +++ b/src/test/org/apache/hadoop/hbase/AbstractMergeTestBase.java @@ -25,44 +25,19 @@ import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.BytesWritable; import org.apache.hadoop.io.Text; -/** Tests region merging */ -public class TestMerge extends HBaseTestCase { - private static final Text COLUMN_NAME = new Text("contents:"); - private Random rand; - private HTableDescriptor desc; - private BytesWritable value; +/** Abstract base class for merge tests */ +public abstract class AbstractMergeTestBase extends HBaseTestCase { + protected static final Text COLUMN_NAME = new Text("contents:"); + protected Random rand; + protected HTableDescriptor desc; + protected BytesWritable value; - private MiniDFSCluster dfsCluster; - private FileSystem fs; - private Path dir; + protected MiniDFSCluster dfsCluster; + protected FileSystem fs; + protected Path dir; - private MiniHBaseCluster hCluster; - - public void testMerge() { - setup(); - startMiniDFSCluster(); - createRegions(); - try { - HMerge.merge(conf, fs, HConstants.META_TABLE_NAME); - - hCluster = new MiniHBaseCluster(conf, 1, dfsCluster); - try { - HMerge.merge(conf, fs, desc.getName()); - - } finally { - hCluster.shutdown(); - } - - } catch(Throwable t) { - t.printStackTrace(); - fail(); - - } finally { - dfsCluster.shutdown(); - } - } - - private void setup() { + public void setUp() throws Exception { + super.setUp(); rand = new Random(); desc = new HTableDescriptor("test"); desc.addFamily(new HColumnDescriptor(COLUMN_NAME.toString())); @@ -80,9 +55,7 @@ public class TestMerge extends HBaseTestCase { } catch(UnsupportedEncodingException e) { fail(); } - } - private void startMiniDFSCluster() { try { dfsCluster = new MiniDFSCluster(conf, 2, true, (String[])null); fs = dfsCluster.getFileSystem(); @@ -93,9 +66,7 @@ public class TestMerge extends HBaseTestCase { t.printStackTrace(); fail(); } - } - - private void createRegions() { + // We create three data regions: The first is too large to merge since it // will be > 64 MB in size. The second two will be smaller and will be // selected for merging. @@ -139,7 +110,12 @@ public class TestMerge extends HBaseTestCase { fail(); } } - + + public void tearDown() throws Exception { + super.tearDown(); + dfsCluster.shutdown(); + } + private HRegion createAregion(Text startKey, Text endKey, int firstRow, int nrows) throws IOException { HRegion region = HRegion.createNewHRegion(fs, dir, conf, desc, diff --git a/src/test/org/apache/hadoop/hbase/TestMergeMeta.java b/src/test/org/apache/hadoop/hbase/TestMergeMeta.java new file mode 100644 index 00000000000..dd513713fb6 --- /dev/null +++ b/src/test/org/apache/hadoop/hbase/TestMergeMeta.java @@ -0,0 +1,30 @@ +/** + * Copyright 2007 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hbase; + +/** Tests region merging */ +public class TestMergeMeta extends AbstractMergeTestBase { + + public void testMergeMeta() { + try { + HMerge.merge(conf, fs, HConstants.META_TABLE_NAME); + + } catch(Throwable t) { + t.printStackTrace(); + fail(); + } + } +} diff --git a/src/test/org/apache/hadoop/hbase/TestMergeTable.java b/src/test/org/apache/hadoop/hbase/TestMergeTable.java new file mode 100644 index 00000000000..f10547d7c15 --- /dev/null +++ b/src/test/org/apache/hadoop/hbase/TestMergeTable.java @@ -0,0 +1,35 @@ +/** + * Copyright 2007 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hbase; + +public class TestMergeTable extends AbstractMergeTestBase { + + public void testMergeTable() { + try { + MiniHBaseCluster hCluster = new MiniHBaseCluster(conf, 1, dfsCluster); + try { + HMerge.merge(conf, fs, desc.getName()); + + } finally { + hCluster.shutdown(); + } + + } catch(Throwable t) { + t.printStackTrace(); + fail(); + } + } +}