Merge lp:~pbeaman/akiban-persistit/fix-nls-test-issues into lp:akiban-persistit

Proposed by Peter Beaman
Status: Merged
Approved by: Nathan Williams
Approved revision: 392
Merged at revision: 391
Proposed branch: lp:~pbeaman/akiban-persistit/fix-nls-test-issues
Merge into: lp:akiban-persistit
Diff against target: 126 lines (+28/-16)
2 files modified
src/main/java/com/persistit/StatisticsTask.java (+19/-9)
src/test/java/com/persistit/StatisticsTaskTest.java (+9/-7)
To merge this branch: bzr merge lp:~pbeaman/akiban-persistit/fix-nls-test-issues
Reviewer Review Type Date Requested Status
Nathan Williams Approve
Review via email: mp+134962@code.launchpad.net

Description of the change

Fix https://bugs.launchpad.net/akiban-persistit/+bug/1079288.

Modify StatisticsTaskTest to compare locale-sensitive output from StatisticsTask to expected results.

This version of Persistit has built successfully in the following locales:

de-DE.UTF-8
fr_FR.UTF-8
es_ES.UTF-8
zh_CH.UTF-8

This branch comes with a commitment to ensure all future versions of Persistit build correctly in multiple -- and hopefully all -- locales.

To post a comment you must log in.
Revision history for this message
Nathan Williams (nwilliams) wrote :

Makes sense.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/main/java/com/persistit/StatisticsTask.java'
2--- src/main/java/com/persistit/StatisticsTask.java 2012-08-24 13:57:19 +0000
3+++ src/main/java/com/persistit/StatisticsTask.java 2012-11-19 16:45:27 +0000
4@@ -41,6 +41,16 @@
5 static final long NANOS_PER_MILLI = 1000000;
6 static final long NANOS_PER_SECOND = 1000000000;
7
8+ final static String COUNT_FORMAT = "%s=%d";
9+ final static String RATE_FORMAT = "%s=%.3f";
10+
11+ final static String PHEADER_FORMAT = " %10s";
12+ final static String PCOUNT_FORMAT = " %,10d";
13+ final static String PRATE_FORMAT = " %,10.3f";
14+
15+ final static String TIME_HEADER_FORMAT = "%12s ";
16+ final static String TIME_FORMAT = "%,12d ";
17+
18 long _delay;
19 long _count;
20 boolean _bpool;
21@@ -86,30 +96,30 @@
22 public String toString(final Display display) {
23 switch (display) {
24 case TOTAL:
25- return String.format("%s=%d", _name, _value);
26+ return String.format(COUNT_FORMAT, _name, _value);
27 case CHANGE:
28- return String.format("%s=%d", _name, _change);
29+ return String.format(COUNT_FORMAT, _name, _change);
30 case RATE:
31- return String.format("%s=%.3f", _name, rate());
32+ return String.format(RATE_FORMAT, _name, rate());
33 default:
34 throw new IllegalStateException();
35 }
36 }
37
38 public void printHeader(final PrintWriter pw) throws IOException {
39- pw.print(String.format(" %10s", _name));
40+ pw.print(String.format(PHEADER_FORMAT, _name));
41 }
42
43 public void printValue(final PrintWriter pw, final Display display) throws IOException {
44 switch (display) {
45 case TOTAL:
46- pw.print(String.format(" %,10d", _value));
47+ pw.print(String.format(PCOUNT_FORMAT, _value));
48 break;
49 case CHANGE:
50- pw.print(String.format(" %,10d", _change));
51+ pw.print(String.format(PCOUNT_FORMAT, _change));
52 break;
53 case RATE:
54- pw.print(String.format(" %,10.3f", rate()));
55+ pw.print(String.format(PRATE_FORMAT, rate()));
56 break;
57 default:
58 throw new IllegalStateException();
59@@ -193,14 +203,14 @@
60 _lastUpdate = line;
61 if (_pw != null) {
62 if (first) {
63- _pw.printf("%12s ", "elapsed ms");
64+ _pw.printf(TIME_HEADER_FORMAT, "elapsed ms");
65 for (final Stat stat : _statsList) {
66 stat.printHeader(_pw);
67 }
68 _pw.println();
69 first = false;
70 }
71- _pw.printf("%,12d ", _persistit.elapsedTime());
72+ _pw.printf(TIME_FORMAT, _persistit.elapsedTime());
73 for (final Stat stat : _statsList) {
74 stat.printValue(_pw, d);
75 }
76
77=== modified file 'src/test/java/com/persistit/StatisticsTaskTest.java'
78--- src/test/java/com/persistit/StatisticsTaskTest.java 2012-08-07 22:50:34 +0000
79+++ src/test/java/com/persistit/StatisticsTaskTest.java 2012-11-19 16:45:27 +0000
80@@ -15,6 +15,7 @@
81
82 package com.persistit;
83
84+import static com.persistit.StatisticsTask.*;
85 import static org.junit.Assert.assertEquals;
86
87 import java.io.BufferedReader;
88@@ -35,23 +36,23 @@
89 final Stat stat = new Stat("foo");
90 stat.update(0, 1234);
91 stat.update(10000000000L, 2345);
92- assertEquals("foo=2345", stat.toString(Display.TOTAL));
93- assertEquals("foo=1111", stat.toString(Display.CHANGE));
94- assertEquals("foo=111.100", stat.toString(Display.RATE));
95+ assertEquals(String.format(COUNT_FORMAT, "foo", 2345), stat.toString(Display.TOTAL));
96+ assertEquals(String.format(COUNT_FORMAT, "foo", 1111), stat.toString(Display.CHANGE));
97+ assertEquals(String.format(RATE_FORMAT, "foo", 111.1f), stat.toString(Display.RATE));
98 final StringWriter sw = new StringWriter();
99 final PrintWriter pw = new PrintWriter(sw);
100 sw.getBuffer().setLength(0);
101 stat.printHeader(pw);
102- assertEquals(" foo", sw.toString());
103+ assertEquals(String.format(PHEADER_FORMAT, "foo"), sw.toString());
104 sw.getBuffer().setLength(0);
105 stat.printValue(pw, Display.TOTAL);
106- assertEquals(" 2,345", sw.toString());
107+ assertEquals(String.format(PCOUNT_FORMAT, 2345), sw.toString());
108 sw.getBuffer().setLength(0);
109 stat.printValue(pw, Display.CHANGE);
110- assertEquals(" 1,111", sw.toString());
111+ assertEquals(String.format(PCOUNT_FORMAT, 1111), sw.toString());
112 sw.getBuffer().setLength(0);
113 stat.printValue(pw, Display.RATE);
114- assertEquals(" 111.100", sw.toString());
115+ assertEquals(String.format(PRATE_FORMAT, 111.1f), sw.toString());
116
117 }
118
119@@ -73,6 +74,7 @@
120 System.out.println(line);
121 }
122 assertEquals(5, lines);
123+ reader.close();
124 }
125
126 @Override

Subscribers

People subscribed via source and target branches