diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index 05271d79f0d..4b433486f75 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -398,6 +398,9 @@ Release 0.23.1 - Unreleased MAPREDUCE-3529. TokenCache does not cache viewfs credentials correctly (sseth) + MAPREDUCE-3595. Add missing TestCounters#testCounterValue test from branch + 1 to 0.23 (Tom White via sseth) + Release 0.23.0 - 2011-11-01 INCOMPATIBLE CHANGES diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapred/TestCounters.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapred/TestCounters.java index bdd5bed4f3a..5df6ede9cbc 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapred/TestCounters.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapred/TestCounters.java @@ -21,6 +21,7 @@ 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 void testCounters() throws IOException { } } + /** + * 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() {