-
Bug
-
Resolution: Fixed
-
P4
-
9
-
b123
sun/net/httpclient/hpack/HeaderTableTest.java has the following assertion:
@Test
public void testToString() {
HeaderTable table = new HeaderTable(0);
{
table.setMaxSize(2048);
assertEquals("entries: 0; used 0/2048 (0.0%)", table.toString());
}
... but theHeaderTable has the following toString implementation:
@Override
public String toString() {
double used = maxSize == 0 ? 0 : 100 * (((double) size) / maxSize);
return format("entries: %d; used %s/%s (%.1f%%)", dynamicTable.size(),
size, maxSize, used);
}
... which is locale dependent.
The test should be relaxed, or the toString implementation should use Locale.ROOT.
Note: assertEquals(ACTUAL, EXPECTED), rather than assertEquals(EXPECTED, ACTUAL), but this is probably not worth changing as it occurs consistently in the test.
STDOUT:
new java.util.Random(1465315389025)
[TestNG] Running:
java/net/httpclient/http2/HpackDriver.java
test sun.net.httpclient.hpack.HeaderTableTest.constructorSetsMaxSize(): success
test sun.net.httpclient.hpack.HeaderTableTest.entryPutAfterStaticArea(): success
test sun.net.httpclient.hpack.HeaderTableTest.fifo(): success
test sun.net.httpclient.hpack.HeaderTableTest.indexOf(): success
test sun.net.httpclient.hpack.HeaderTableTest.indexOutsideStaticRange(): success
test sun.net.httpclient.hpack.HeaderTableTest.length(): success
test sun.net.httpclient.hpack.HeaderTableTest.lowerIndexPriority(): success
test sun.net.httpclient.hpack.HeaderTableTest.lowerIndexPriority2(): success
test sun.net.httpclient.hpack.HeaderTableTest.negativeIndex(): success
test sun.net.httpclient.hpack.HeaderTableTest.negativeMaximumSize(): success
test sun.net.httpclient.hpack.HeaderTableTest.stateString(): success
test sun.net.httpclient.hpack.HeaderTableTest.staticData(): success
test sun.net.httpclient.hpack.HeaderTableTest.staticTableHasZeroSize(): success
test sun.net.httpclient.hpack.HeaderTableTest.testToString(): failure
java.lang.AssertionError: expected [entries: 0; used 0/2048 (0,0%)] but found [entries: 0; used 0/2048 (0.0%)]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:176)
at org.testng.Assert.assertEquals(Assert.java:186)
at sun.net.httpclient.hpack.HeaderTableTest.testToString(java.httpclient@9-internal/HeaderTableTest.java:323)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-internal/Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-internal/NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-internal/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@9-internal/Method.java:531)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at com.sun.javatest.regtest.TestNGAction$TestNGRunner.main(TestNGAction.java:220)
at com.sun.javatest.regtest.TestNGAction$TestNGRunner.main(TestNGAction.java:184)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-internal/Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-internal/NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-internal/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@9-internal/Method.java:531)
at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:110)
at java.lang.Thread.run(java.base@9-internal/Thread.java:843)
test sun.net.httpclient.hpack.HeaderTableTest.zeroIndex(): success
test sun.net.httpclient.hpack.HeaderTableTest.zeroMaximumSize(): success
===============================================
java/net/httpclient/http2/HpackDriver.java
Total tests run: 16, Failures: 1, Skips: 0
===============================================
@Test
public void testToString() {
HeaderTable table = new HeaderTable(0);
{
table.setMaxSize(2048);
assertEquals("entries: 0; used 0/2048 (0.0%)", table.toString());
}
... but theHeaderTable has the following toString implementation:
@Override
public String toString() {
double used = maxSize == 0 ? 0 : 100 * (((double) size) / maxSize);
return format("entries: %d; used %s/%s (%.1f%%)", dynamicTable.size(),
size, maxSize, used);
}
... which is locale dependent.
The test should be relaxed, or the toString implementation should use Locale.ROOT.
Note: assertEquals(ACTUAL, EXPECTED), rather than assertEquals(EXPECTED, ACTUAL), but this is probably not worth changing as it occurs consistently in the test.
STDOUT:
new java.util.Random(1465315389025)
[TestNG] Running:
java/net/httpclient/http2/HpackDriver.java
test sun.net.httpclient.hpack.HeaderTableTest.constructorSetsMaxSize(): success
test sun.net.httpclient.hpack.HeaderTableTest.entryPutAfterStaticArea(): success
test sun.net.httpclient.hpack.HeaderTableTest.fifo(): success
test sun.net.httpclient.hpack.HeaderTableTest.indexOf(): success
test sun.net.httpclient.hpack.HeaderTableTest.indexOutsideStaticRange(): success
test sun.net.httpclient.hpack.HeaderTableTest.length(): success
test sun.net.httpclient.hpack.HeaderTableTest.lowerIndexPriority(): success
test sun.net.httpclient.hpack.HeaderTableTest.lowerIndexPriority2(): success
test sun.net.httpclient.hpack.HeaderTableTest.negativeIndex(): success
test sun.net.httpclient.hpack.HeaderTableTest.negativeMaximumSize(): success
test sun.net.httpclient.hpack.HeaderTableTest.stateString(): success
test sun.net.httpclient.hpack.HeaderTableTest.staticData(): success
test sun.net.httpclient.hpack.HeaderTableTest.staticTableHasZeroSize(): success
test sun.net.httpclient.hpack.HeaderTableTest.testToString(): failure
java.lang.AssertionError: expected [entries: 0; used 0/2048 (0,0%)] but found [entries: 0; used 0/2048 (0.0%)]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:176)
at org.testng.Assert.assertEquals(Assert.java:186)
at sun.net.httpclient.hpack.HeaderTableTest.testToString(java.httpclient@9-internal/HeaderTableTest.java:323)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-internal/Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-internal/NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-internal/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@9-internal/Method.java:531)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at com.sun.javatest.regtest.TestNGAction$TestNGRunner.main(TestNGAction.java:220)
at com.sun.javatest.regtest.TestNGAction$TestNGRunner.main(TestNGAction.java:184)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-internal/Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-internal/NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-internal/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@9-internal/Method.java:531)
at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:110)
at java.lang.Thread.run(java.base@9-internal/Thread.java:843)
test sun.net.httpclient.hpack.HeaderTableTest.zeroIndex(): success
test sun.net.httpclient.hpack.HeaderTableTest.zeroMaximumSize(): success
===============================================
java/net/httpclient/http2/HpackDriver.java
Total tests run: 16, Failures: 1, Skips: 0
===============================================