You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ec...@apache.org on 2013/07/01 23:34:45 UTC
svn commit: r1498705 [2/2] - in /accumulo/trunk:
core/src/main/java/org/apache/accumulo/core/client/impl/
examples/simple/src/main/java/org/apache/accumulo/examples/simple/dirlist/
examples/simple/src/main/java/org/apache/accumulo/examples/simple/mapre...
Added: accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java
URL: http://svn.apache.org/viewvc/accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java?rev=1498705&view=auto
==============================================================================
--- accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java (added)
+++ accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java Mon Jul 1 21:34:44 2013
@@ -0,0 +1,377 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.accumulo.test.functional;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map.Entry;
+
+import org.apache.accumulo.core.cli.BatchWriterOpts;
+import org.apache.accumulo.core.client.BatchWriter;
+import org.apache.accumulo.core.client.BatchWriterConfig;
+import org.apache.accumulo.core.client.Connector;
+import org.apache.accumulo.core.client.IteratorSetting;
+import org.apache.accumulo.core.client.MutationsRejectedException;
+import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.Key;
+import org.apache.accumulo.core.data.Mutation;
+import org.apache.accumulo.core.data.Value;
+import org.apache.accumulo.core.iterators.user.AgeOffFilter;
+import org.apache.accumulo.core.iterators.user.SummingCombiner;
+import org.apache.accumulo.core.security.Authorizations;
+import org.apache.accumulo.core.util.CachedConfiguration;
+import org.apache.accumulo.core.util.UtilWaitThread;
+import org.apache.accumulo.examples.simple.client.Flush;
+import org.apache.accumulo.examples.simple.client.RandomBatchScanner;
+import org.apache.accumulo.examples.simple.client.RandomBatchWriter;
+import org.apache.accumulo.examples.simple.client.ReadWriteExample;
+import org.apache.accumulo.examples.simple.client.RowOperations;
+import org.apache.accumulo.examples.simple.client.SequentialBatchWriter;
+import org.apache.accumulo.examples.simple.constraints.MaxMutationSize;
+import org.apache.accumulo.examples.simple.dirlist.Ingest;
+import org.apache.accumulo.examples.simple.dirlist.QueryUtil;
+import org.apache.accumulo.examples.simple.helloworld.InsertWithBatchWriter;
+import org.apache.accumulo.examples.simple.helloworld.ReadData;
+import org.apache.accumulo.examples.simple.isolation.InterferenceTest;
+import org.apache.accumulo.examples.simple.mapreduce.RegexExample;
+import org.apache.accumulo.examples.simple.mapreduce.RowHash;
+import org.apache.accumulo.examples.simple.mapreduce.TableToFile;
+import org.apache.accumulo.examples.simple.mapreduce.TeraSortIngest;
+import org.apache.accumulo.examples.simple.mapreduce.WordCount;
+import org.apache.accumulo.examples.simple.mapreduce.bulk.BulkIngestExample;
+import org.apache.accumulo.examples.simple.mapreduce.bulk.GenerateTestData;
+import org.apache.accumulo.examples.simple.mapreduce.bulk.SetupTable;
+import org.apache.accumulo.examples.simple.shard.ContinuousQuery;
+import org.apache.accumulo.examples.simple.shard.Index;
+import org.apache.accumulo.examples.simple.shard.Query;
+import org.apache.accumulo.examples.simple.shard.Reverse;
+import org.apache.accumulo.minicluster.MiniAccumuloCluster.LogWriter;
+import org.apache.accumulo.minicluster.MemoryUnit;
+import org.apache.accumulo.minicluster.MiniAccumuloConfig;
+import org.apache.accumulo.server.util.Admin;
+import org.apache.accumulo.test.TestIngest;
+import org.apache.accumulo.test.VerifyIngest;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.io.Text;
+import org.junit.Test;
+
+public class ExamplesIT extends MacTest {
+
+ BatchWriterOpts bwOpts = new BatchWriterOpts();
+
+ @Override
+ public void configure(MiniAccumuloConfig cfg) {
+ cfg.setDefaultMemory(cfg.getDefaultMemory() * 2, MemoryUnit.BYTE);
+ }
+
+ @Test(timeout=5*60*1000)
+ public void test() throws Exception {
+ Connector c = getConnector();
+ String instance = c.getInstance().getInstanceName();
+ String keepers = c.getInstance().getZooKeepers();
+ String user = "root";
+ String passwd = MacTest.PASSWORD;
+ String visibility = "A|B";
+ String auths = "A,B";
+ BatchWriterConfig bwc = new BatchWriterConfig();
+ BatchWriter bw;
+ IteratorSetting is;
+ String dir = cluster.getConfig().getDir().getAbsolutePath();
+ FileSystem fs = FileSystem.get(CachedConfiguration.getInstance());
+
+
+ log.info("testing dirlist example (a little)");
+ c.securityOperations().changeUserAuthorizations(user, new Authorizations(auths.split(",")));
+ assertEquals(0, cluster.exec(Ingest.class, "-i", instance, "-z", keepers, "-u", user, "-p", passwd,
+ "--dirTable", "dirTable", "--indexTable", "indexTable", "--dataTable", "dataTable",
+ "--vis", visibility, "--chunkSize", 10000 + "", cluster.getConfig().getDir().getAbsolutePath()).waitFor());
+ Process p = cluster.exec(QueryUtil.class, "-i", instance, "-z", keepers, "-p", passwd, "-u", user,
+ "-t", "indexTable", "--auths", auths, "--search", "--path", "accumulo-site.xml");
+ assertEquals(0, p.waitFor());
+ for(LogWriter writer : cluster.getLogWriters()) {
+ writer.flush();
+ }
+ String result = FunctionalTestUtils.readAll(cluster, QueryUtil.class, p);
+ System.out.println("result " + result);
+ assertTrue(result.contains("accumulo-site.xml"));
+
+
+ log.info("Testing ageoff filtering");
+ c.tableOperations().create("filtertest");
+ is = new IteratorSetting(10, AgeOffFilter.class);
+ AgeOffFilter.setTTL(is, 1000L);
+ c.tableOperations().attachIterator("filtertest", is);
+ bw = c.createBatchWriter("filtertest", bwc);
+ Mutation m = new Mutation("foo");
+ m.put("a", "b", "c");
+ bw.addMutation(m);
+ UtilWaitThread.sleep(1000);
+ int count = 0;
+ for (@SuppressWarnings("unused") Entry<Key,Value> line : c.createScanner("filtertest", Authorizations.EMPTY))
+ count++;
+ assertEquals(0, count);
+
+
+ log.info("Testing bloom filters are fast for missing data");
+ c.tableOperations().create("bloom_test");
+ c.tableOperations().setProperty("bloom_test", Property.TABLE_BLOOM_ENABLED.getKey(), "true");
+ assertEquals(0, cluster.exec(RandomBatchWriter.class, "--seed", "7", "-i", instance, "-z",
+ keepers, "-u", user, "-p", MacTest.PASSWORD, "--num", "100000", "--min", "0", "--max", "1000000000", "--size", "50",
+ "--batchMemmory", "2M", "--batchLatency", "60s", "--batchThreads", "3", "-t", "bloom_test").waitFor());
+ c.tableOperations().flush("bloom_test", null, null, true);
+ long now = System.currentTimeMillis();
+ assertEquals(0, cluster.exec(RandomBatchScanner.class,"--seed", "7", "-i", instance, "-z",
+ keepers, "-u", user, "-p", MacTest.PASSWORD, "--num", "10000", "--min", "0", "--max", "1000000000", "--size", "50",
+ "--scanThreads", "4","-t", "bloom_test").waitFor());
+ long diff = System.currentTimeMillis() - now;
+ now = System.currentTimeMillis();
+ assertEquals(0, cluster.exec(RandomBatchScanner.class,"--seed", "8", "-i", instance, "-z",
+ keepers, "-u", user, "-p", MacTest.PASSWORD, "--num", "10000", "--min", "0", "--max", "1000000000", "--size", "50",
+ "--scanThreads", "4","-t", "bloom_test").waitFor());
+ long diff2 = System.currentTimeMillis() - now;
+ assertTrue(diff2 < diff);
+
+ log.info("Creating a sharded index of the accumulo java files");
+ c.tableOperations().create("shard");
+ c.tableOperations().create("doc2term");
+ bw = c.createBatchWriter("shard", bwc);
+ Index.index(30, new File(System.getProperty("user.dir") + "/src"), "\\W+", bw);
+ bw.close();
+ List<String> found = Query.query(c.createBatchScanner("shard", Authorizations.EMPTY, 4), Arrays.asList("foo", "bar"));
+ // should find ourselves
+ boolean thisFile = false;
+ for (String file : found) {
+ if (file.endsWith("/ExamplesIT.java"))
+ thisFile = true;
+ }
+ assertTrue(thisFile);
+ // create a reverse index
+ assertEquals(0, cluster.exec(Reverse.class, "-i", instance, "-z", keepers, "-t", "shard", "--doc2Term",
+ "-u", "root", "-p", passwd).waitFor());
+ // run some queries
+ assertEquals(0, cluster.exec(ContinuousQuery.class, "-i", instance, "-z", keepers, "-t", "shard", "--doc2Term",
+ "-u", "root", "-p", passwd, "--term", "5", "--count", "1000").waitFor());
+
+ log.info("Testing MaxMutation constraint");
+ c.tableOperations().create("test_ingest");
+ c.tableOperations().addConstraint("test_ingest", MaxMutationSize.class.getName());
+ TestIngest.Opts opts = new TestIngest.Opts();
+ opts.rows = 1;
+ opts.cols = 1000;
+ try {
+ TestIngest.ingest(c, opts, bwOpts);
+ } catch (MutationsRejectedException ex) {
+ assertEquals(1, ex.getConstraintViolationSummaries().size());
+ }
+
+ log.info("Starting build ingest example");
+ assertEquals(0, cluster.exec(GenerateTestData.class, "0", "10000", dir + "/tmp/input/data").waitFor());
+ assertEquals(0, cluster.exec(SetupTable.class, instance, keepers, user, passwd, "bulkTable").waitFor());
+ assertEquals(0, cluster.exec(BulkIngestExample.class, instance, keepers, user, passwd, "bulkTable",
+ dir + "/tmp/input", dir + "/tmp").waitFor());
+ assertEquals(0, cluster.exec(VerifyIngest.class, instance, keepers, user, passwd, "bulkTable", "0", "1000000").waitFor());
+
+ log.info("Starting bulk ingest example");
+ assertEquals(0, cluster.exec(GenerateTestData.class, "0", "1000000", dir + "/tmp/input/data").waitFor());
+ assertEquals(0, cluster.exec(SetupTable.class, instance, keepers, user, passwd, "bulkTable").waitFor());
+ assertEquals(0, cluster.exec(BulkIngestExample.class, instance, keepers, user, passwd, "bulkTable", dir + "/tmp/input", dir + "/tmp").waitFor());
+ assertEquals(0, cluster.exec(VerifyIngest.class, instance, keepers, user, passwd, "bulkTable", "0", "1000000").waitFor());
+
+ log.info("Running TeraSortIngest example");
+ TeraSortIngest.main(new String[]{
+ "--count", (1000*1000) + "",
+ "-nk", "10", "-xk", "10",
+ "-nv", "10", "-xv", "10",
+ "-t", "sorted",
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "--splits", "4"});
+ log.info("Running Regex example");
+ RegexExample.main(new String[] {
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "-t", "sorted",
+ "--rowRegex", ".*999.*",
+ "--output", dir + "/tmp/nines"
+ });
+ log.info("Running RowHash example");
+ RowHash.main(new String[]{
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "-t", "sorted",
+ "--column", "c:"
+ });
+ log.info("Running TableToFile example");
+ TableToFile.main(new String[]{
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "-t", "sorted",
+ "--output", dir + "/tmp/tableFile"
+ });
+
+ log.info("Running word count example");
+ c.tableOperations().create("wordCount");
+ is = new IteratorSetting(10, SummingCombiner.class);
+ SummingCombiner.setColumns(is, Collections.singletonList(new IteratorSetting.Column(new Text("count"))));
+ SummingCombiner.setEncodingType(is, SummingCombiner.Type.STRING);
+ c.tableOperations().attachIterator("wordCount", is);
+ fs.copyFromLocalFile(new Path(new Path(System.getProperty("user.dir")).getParent(), "README"), new Path(dir + "/tmp/wc/README"));
+ WordCount.main(new String[] {
+ "-i", instance,
+ "-u", user,
+ "-p", passwd,
+ "-z", keepers,
+ "--input", dir + "/tmp/wc",
+ "-t", "wordCount"
+ });
+
+ log.info("Inserting data with a batch writer");
+ InsertWithBatchWriter.main(new String[]{
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "-t", "helloBatch"
+ });
+ log.info("Reading data");
+ ReadData.main(new String[]{
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "-t", "helloBatch"
+ });
+ log.info("Running isolated scans");
+ InterferenceTest.main(new String[]{
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "-t", "itest1",
+ "--iterations", "100000",
+ "--isolated"
+ });
+ log.info("Running scans without isolation");
+ InterferenceTest.main(new String[]{
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "-t", "itest2",
+ "--iterations", "100000",
+ });
+ log.info("Performing some row operations");
+ RowOperations.main(new String[]{
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ });
+ log.info("Using the batch writer");
+ c.tableOperations().create("test");
+ SequentialBatchWriter.main(new String[] {
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "-t", "test",
+ "--start", "0",
+ "--num", "100000",
+ "--size", "50",
+ "--batchMemory", "10000000",
+ "--batchLatency", "1000",
+ "--batchThreads", "4",
+ "--vis", visibility
+ });
+
+ log.info("Reading and writing some data");
+ ReadWriteExample.main(new String[] {
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "--auths", auths,
+ "--table", "test2",
+ "--createtable",
+ "-c",
+ "--debug"});
+ log.info("Deleting some data");
+ ReadWriteExample.main(new String[] {
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "--auths", auths,
+ "--table", "test2",
+ "-d",
+ "--debug"});
+ log.info("Writing some data with the batch writer");
+ c.tableOperations().create("test3");
+ RandomBatchWriter.main(new String[] {
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "--table", "test3",
+ "--num", "100000",
+ "--min", "0",
+ "--max", "99999",
+ "--size", "100",
+ "--batchMemory", "1000000",
+ "--batchLatency", "1000",
+ "--batchThreads", "4",
+ "--vis", visibility});
+ log.info("Reading some data with the batch scanner");
+ RandomBatchScanner.main(new String[] {
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "--table", "test3",
+ "--num", "10000",
+ "--min", "0",
+ "--max", "99999",
+ "--size", "100",
+ "--scanThreads", "4",
+ "--auths", auths});
+ log.info("Running an example table operation (Flush)");
+ Flush.main(new String[]{
+ "-i", instance,
+ "-z", keepers,
+ "-u", user,
+ "-p", passwd,
+ "--table", "test3",
+ });
+ assertEquals(0, cluster.exec(Admin.class, "stopAll").waitFor());
+
+ }
+
+}
Propchange: accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/FunctionalTestUtils.java
URL: http://svn.apache.org/viewvc/accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/FunctionalTestUtils.java?rev=1498705&r1=1498704&r2=1498705&view=diff
==============================================================================
--- accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/FunctionalTestUtils.java (original)
+++ accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/FunctionalTestUtils.java Mon Jul 1 21:34:44 2013
@@ -16,10 +16,21 @@
*/
package org.apache.accumulo.test.functional;
+import static org.junit.Assert.assertFalse;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Collection;
import java.util.HashMap;
-import java.util.Set;
import java.util.Map.Entry;
+import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.accumulo.core.cli.BatchWriterOpts;
import org.apache.accumulo.core.client.Connector;
import org.apache.accumulo.core.client.Scanner;
import org.apache.accumulo.core.data.Key;
@@ -27,6 +38,9 @@ import org.apache.accumulo.core.data.Ran
import org.apache.accumulo.core.data.Value;
import org.apache.accumulo.core.security.Authorizations;
import org.apache.accumulo.core.util.MetadataTable;
+import org.apache.accumulo.minicluster.MiniAccumuloCluster;
+import org.apache.accumulo.minicluster.MiniAccumuloCluster.LogWriter;
+import org.apache.accumulo.test.TestIngest;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
@@ -81,6 +95,60 @@ public class FunctionalTestUtils {
}
+ static public void checkSplits(Connector c, String table, int min, int max) throws Exception {
+ Collection<Text> splits = c.tableOperations().listSplits(table);
+ if (splits.size() < min || splits.size() > max) {
+ throw new Exception("# of table splits points out of range, #splits=" + splits.size() + " table=" + table + " min=" + min + " max=" + max);
+ }
+ }
+
+ static public void createRFiles(final Connector c, FileSystem fs, String path, int rows, int splits, int threads) throws Exception {
+ fs.delete(new Path(path), true);
+ ExecutorService threadPool = Executors.newFixedThreadPool(threads);
+ final AtomicBoolean fail = new AtomicBoolean(false);
+ for (int i = 0; i < rows; i += rows / splits) {
+ final TestIngest.Opts opts = new TestIngest.Opts();
+ opts.outputFile = String.format("%s/mf%s", path, i);
+ opts.random = 56;
+ opts.timestamp = 1;
+ opts.dataSize = 50;
+ opts.rows = rows / splits;
+ opts.startRow = i;
+ opts.cols = 1;
+ threadPool.execute(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ TestIngest.ingest(c, opts, new BatchWriterOpts());
+ } catch (Exception e) {
+ fail.set(true);
+ }
+ }
+ });
+ }
+ threadPool.shutdown();
+ threadPool.awaitTermination(1, TimeUnit.HOURS);
+ assertFalse(fail.get());
+ }
+
+ static public String readAll(InputStream is) throws IOException {
+ byte[] buffer = new byte[4096];
+ StringBuffer result = new StringBuffer();
+ while (true) {
+ int n = is.read(buffer);
+ if (n <= 0)
+ break;
+ result.append(new String(buffer, 0, n));
+ }
+ return result.toString();
+ }
+
+ static String readAll(MiniAccumuloCluster c, Class<? extends Object> klass, Process p) throws Exception {
+ for (LogWriter writer : c.getLogWriters())
+ writer.flush();
+ return readAll(new FileInputStream(c.getConfig().getLogDir() + "/" + klass.getSimpleName() + "_" + p.hashCode() + ".out"));
+ }
+
}
Modified: accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/MacTest.java
URL: http://svn.apache.org/viewvc/accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/MacTest.java?rev=1498705&r1=1498704&r2=1498705&view=diff
==============================================================================
--- accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/MacTest.java (original)
+++ accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/MacTest.java Mon Jul 1 21:34:44 2013
@@ -51,7 +51,7 @@ public class MacTest {
@After
public void tearDown() throws Exception {
cluster.stop();
-// folder.delete();
+ folder.delete();
}
}
Modified: accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java
URL: http://svn.apache.org/viewvc/accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java?rev=1498705&r1=1498704&r2=1498705&view=diff
==============================================================================
--- accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java (original)
+++ accumulo/trunk/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java Mon Jul 1 21:34:44 2013
@@ -20,9 +20,6 @@ import static org.junit.Assert.assertEqu
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
import java.net.InetAddress;
import java.net.URL;
import java.util.Collections;
@@ -46,9 +43,9 @@ import org.apache.accumulo.core.data.Key
import org.apache.accumulo.core.data.Mutation;
import org.apache.accumulo.core.data.Range;
import org.apache.accumulo.core.data.Value;
+import org.apache.accumulo.core.file.rfile.PrintInfo;
import org.apache.accumulo.core.security.Authorizations;
import org.apache.accumulo.core.util.MetadataTable;
-import org.apache.accumulo.minicluster.MiniAccumuloCluster.LogWriter;
import org.apache.accumulo.server.monitor.Monitor;
import org.apache.accumulo.server.util.Admin;
import org.apache.accumulo.test.TestIngest;
@@ -74,7 +71,7 @@ public class ReadWriteIT extends MacTest
verify(connector, ROWS, COLS, 50, 0);
URL url = new URL("http://" + InetAddress.getLocalHost().getHostName() + ":" + cluster.getConfig().getSiteConfig().get(Property.MONITOR_PORT.getKey()));
log.debug("Fetching web page " + url);
- String result = readAll(url.openStream());
+ String result = FunctionalTestUtils.readAll(url.openStream());
assertTrue(result.length() > 100);
log.debug("Stopping mini accumulo cluster");
Process shutdown = cluster.exec(Admin.class, "stopAll");
@@ -84,18 +81,6 @@ public class ReadWriteIT extends MacTest
monitor.destroy();
}
- private String readAll(InputStream is) throws IOException {
- byte[] buffer = new byte[4096];
- StringBuffer result = new StringBuffer();
- while (true) {
- int n = is.read(buffer);
- if (n <= 0)
- break;
- result.append(new String(buffer, 0, n));
- }
- return result.toString();
- }
-
public void ingest(Connector connector, int rows, int cols, int width, int offset) throws Exception {
ingest(connector, rows, cols, width, offset, COLF);
}
@@ -227,14 +212,13 @@ public class ReadWriteIT extends MacTest
boolean foundFile = false;
for (Entry<Key,Value> entry: bscanner) {
foundFile = true;
- Process info = cluster.exec(org.apache.accumulo.core.file.rfile.PrintInfo.class, entry.getKey().getColumnQualifier().toString());
+ Process info = cluster.exec(PrintInfo.class, entry.getKey().getColumnQualifier().toString());
assertEquals(0, info.waitFor());
- for (LogWriter writer : cluster.getLogWriters())
- writer.flush();
- String out = readAll(new FileInputStream(cluster.getConfig().getLogDir() + "/PrintInfo_" + info.hashCode() + ".out"));
+ String out = FunctionalTestUtils.readAll(cluster, PrintInfo.class, info);
assertTrue(out.contains("Locality group : g1"));
assertTrue(out.contains("families : [colf]"));
}
+ bscanner.close();
assertTrue(foundFile);
}