You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by el...@apache.org on 2013/11/07 06:24:24 UTC

[3/6] git commit: ACCUMULO-1854 More unit tests and fix a bug.

ACCUMULO-1854 More unit tests and fix a bug.


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/c5dc070f
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/c5dc070f
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/c5dc070f

Branch: refs/heads/ACCUMULO-1854-multi-aif
Commit: c5dc070f0c10c0f9b00647934edd35e22a6b036c
Parents: 5d3c3d5
Author: Josh Elser <el...@apache.org>
Authored: Wed Nov 6 14:46:05 2013 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Wed Nov 6 14:46:05 2013 -0500

----------------------------------------------------------------------
 .../core/client/mapreduce/InputFormatBase.java  |  8 +-
 .../client/mapreduce/InputFormatBaseTest.java   | 82 ++++++++++++++++++++
 2 files changed, 87 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/c5dc070f/src/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java
----------------------------------------------------------------------
diff --git a/src/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java b/src/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java
index 32240b7..7042f19 100644
--- a/src/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java
+++ b/src/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java
@@ -229,9 +229,11 @@ public abstract class InputFormatBase<K,V> extends InputFormat<K,V> {
     // If we used the default sequence ID, add that into the list of configured sequences
     if (conf.getBoolean(DEFAULT_SEQ_USED, false)) {
       configuredSequences.add(DEFAULT_SEQUENCE);
-      for (String configuredSequence : configuredSequencesArray) {
-        configuredSequences.add(Integer.parseInt(configuredSequence));
-      }
+    }
+
+    // Add the rest of any sequences to our list
+    for (String configuredSequence : configuredSequencesArray) {
+      configuredSequences.add(Integer.parseInt(configuredSequence));
     }
     
     int lastParsedSeqIndex = configuredSequences.size() - 1;

http://git-wip-us.apache.org/repos/asf/accumulo/blob/c5dc070f/src/core/src/test/java/org/apache/accumulo/core/client/mapreduce/InputFormatBaseTest.java
----------------------------------------------------------------------
diff --git a/src/core/src/test/java/org/apache/accumulo/core/client/mapreduce/InputFormatBaseTest.java b/src/core/src/test/java/org/apache/accumulo/core/client/mapreduce/InputFormatBaseTest.java
new file mode 100644
index 0000000..9d167a9
--- /dev/null
+++ b/src/core/src/test/java/org/apache/accumulo/core/client/mapreduce/InputFormatBaseTest.java
@@ -0,0 +1,82 @@
+package org.apache.accumulo.core.client.mapreduce;
+
+import java.util.NoSuchElementException;
+
+import org.apache.accumulo.core.security.Authorizations;
+import org.apache.hadoop.conf.Configuration;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class InputFormatBaseTest {
+  
+  private Configuration conf;
+  
+  @Before
+  public void setup() {
+    conf = new Configuration();
+  }
+
+  @Test
+  public void testDefaultSequence() {
+    AccumuloInputFormat.setInputInfo(conf, "root", "password".getBytes(), "table", new Authorizations("foo"));
+    
+    Assert.assertEquals(0, InputFormatBase.nextSequenceToProcess(conf));
+    Assert.assertEquals(-1, InputFormatBase.nextSequenceToProcess(conf));
+  }
+
+  @Test
+  public void testDefaultSequenceInputAndConnection() {
+    AccumuloInputFormat.setInputInfo(conf, "root", "password".getBytes(), "table", new Authorizations("foo"));
+    AccumuloInputFormat.setZooKeeperInstance(conf, "instance1", "zk1");
+    
+    Assert.assertEquals(0, InputFormatBase.nextSequenceToProcess(conf));
+    Assert.assertEquals(-1, InputFormatBase.nextSequenceToProcess(conf));
+  }
+
+  @Test
+  public void testDefaultWithCustomSequence() {
+    AccumuloInputFormat.setInputInfo(conf, "root", "password".getBytes(), "table", new Authorizations("foo"));
+    AccumuloInputFormat.setZooKeeperInstance(conf, "instance", "zk");
+    
+    int seq = AccumuloInputFormat.nextSequence(conf);
+    
+    Assert.assertEquals(1, seq);
+    
+    AccumuloInputFormat.setInputInfo(conf, seq, "root1", "password1".getBytes(), "table1", new Authorizations("foo1"));
+    AccumuloInputFormat.setZooKeeperInstance(conf, seq, "instance1", "zk1");
+    
+    Assert.assertEquals(0, InputFormatBase.nextSequenceToProcess(conf));
+    Assert.assertEquals(1, InputFormatBase.nextSequenceToProcess(conf));
+    Assert.assertEquals(-1, InputFormatBase.nextSequenceToProcess(conf));
+  }
+  
+  @Test
+  public void testMultipleSequences() {
+    int seq = AccumuloInputFormat.nextSequence(conf);
+    
+    AccumuloInputFormat.setInputInfo(conf,  seq, "root1", "password1".getBytes(), "table1", new Authorizations("foo1"));
+    AccumuloInputFormat.setZooKeeperInstance(conf, seq, "instance1", "zk1");
+    
+    seq = AccumuloInputFormat.nextSequence(conf);
+    
+    AccumuloInputFormat.setInputInfo(conf, seq, "root2", "password2".getBytes(), "table2", new Authorizations("foo2"));
+    AccumuloInputFormat.setZooKeeperInstance(conf, seq, "instance2", "zk2");
+    
+    seq = AccumuloInputFormat.nextSequence(conf);
+    
+    AccumuloInputFormat.setInputInfo(conf, seq, "root3", "password3".getBytes(), "table3", new Authorizations("foo3"));
+    AccumuloInputFormat.setZooKeeperInstance(conf, seq, "instance3", "zk3");
+    
+    Assert.assertEquals(1, InputFormatBase.nextSequenceToProcess(conf));
+    Assert.assertEquals(2, InputFormatBase.nextSequenceToProcess(conf));
+    Assert.assertEquals(3, InputFormatBase.nextSequenceToProcess(conf));
+    Assert.assertEquals(-1, InputFormatBase.nextSequenceToProcess(conf));
+  }
+  
+  @Test(expected = NoSuchElementException.class)
+  public void testNoSequences() {
+    // When nothing was set, we should error
+    InputFormatBase.nextSequenceToProcess(conf);
+  }
+}