|
@@ -21,6 +21,7 @@ import static org.junit.Assert.assertEquals;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.text.ParseException;
|
|
|
+import java.util.Random;
|
|
|
|
|
|
import org.apache.hadoop.mapred.Counters.Counter;
|
|
|
import org.apache.hadoop.mapreduce.FileSystemCounter;
|
|
@@ -98,6 +99,37 @@ public class TestCounters {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Verify counter value works
|
|
|
+ */
|
|
|
+ @SuppressWarnings("deprecation")
|
|
|
+ @Test
|
|
|
+ public void testCounterValue() {
|
|
|
+ Counters counters = new Counters();
|
|
|
+ final int NUMBER_TESTS = 100;
|
|
|
+ final int NUMBER_INC = 10;
|
|
|
+ final Random rand = new Random();
|
|
|
+ for (int i = 0; i < NUMBER_TESTS; i++) {
|
|
|
+ long initValue = rand.nextInt();
|
|
|
+ long expectedValue = initValue;
|
|
|
+ Counter counter = counters.findCounter("foo", "bar");
|
|
|
+ counter.setValue(initValue);
|
|
|
+ assertEquals("Counter value is not initialized correctly",
|
|
|
+ expectedValue, counter.getValue());
|
|
|
+ for (int j = 0; j < NUMBER_INC; j++) {
|
|
|
+ int incValue = rand.nextInt();
|
|
|
+ counter.increment(incValue);
|
|
|
+ expectedValue += incValue;
|
|
|
+ assertEquals("Counter value is not incremented correctly",
|
|
|
+ expectedValue, counter.getValue());
|
|
|
+ }
|
|
|
+ expectedValue = rand.nextInt();
|
|
|
+ counter.setValue(expectedValue);
|
|
|
+ assertEquals("Counter value is not set correctly",
|
|
|
+ expectedValue, counter.getValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@SuppressWarnings("deprecation")
|
|
|
@Test
|
|
|
public void testLegacyNames() {
|