RFR: JDK-8326389: [test] improve assertEquals failure output [v3]
Jaikiran Pai
jpai at openjdk.org
Sat Feb 24 11:47:53 UTC 2024
On Thu, 22 Feb 2024 16:01:19 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:
>> Currently assertEquals has in the failure case sometimes confusing output like :
>>
>> java.lang.RuntimeException: VM output should contain exactly one RTM locking statistics entry for method compiler.rtm.locking.TestRTMTotalCountIncrRate$Test:🔒 expected 0 to equal 1
>> at jdk.test.lib.Asserts.fail(Asserts.java:634)
>> at jdk.test.lib.Asserts.assertEquals(Asserts.java:205)
>>
>> (I don't think we really expected that for some reason 0 equals 1)
>> This should be improved.
>
> Matthias Baesken has updated the pull request incrementally with one additional commit since the last revision:
>
> assertEquals adjust output
Hello Matthias, the proposal to improve that failure message looks OK to me. However, I feel that the newly proposed error message isn't too different than what it was earlier. Perhaps, we could do something like:
diff --git a/test/lib/jdk/test/lib/Asserts.java b/test/lib/jdk/test/lib/Asserts.java
index d503ea8e544..3b45d7f4129 100644
--- a/test/lib/jdk/test/lib/Asserts.java
+++ b/test/lib/jdk/test/lib/Asserts.java
@@ -199,10 +199,11 @@ public static void assertEquals(Object lhs, Object rhs) {
*/
public static void assertEquals(Object lhs, Object rhs, String msg) {
if ((lhs != rhs) && ((lhs == null) || !(lhs.equals(rhs)))) {
- msg = Objects.toString(msg, "assertEquals")
- + ": expected " + Objects.toString(lhs)
- + " to equal " + Objects.toString(rhs);
- fail(msg);
+ if (msg != null) {
+ fail(msg);
+ } else {
+ fail("assertEquals expected: " + lhs + " but was: " + rhs);
+ }
}
}
This is similar to what other test libraries usually report for such failures.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/17952#issuecomment-1962337015
More information about the core-libs-dev
mailing list