antlr3 icon indicating copy to clipboard operation
antlr3 copied to clipboard

Make test suite deterministic.

Open cscott opened this issue 7 years ago • 0 comments

Avoid using java.util.HashSet/java.util.HashMap, since iteration order in the hash set (even if the keys' hashCode methods are deterministic) is dependent on the exact size of the hash set, bucket organization, etc. This changes for different versions of the JDK, causing tests to have repeatable false failures when run on (eg) openjdk 1.8 (it appears the test suite was written against JDK 5/6).

Use java.util.LinkedHashSet/LinkedHashMap so that the iteration order is always repeatable (and the tests always pass). (Define a few missing hashCode methods while we're at it, although using LinkedHashSet means that isn't necessary in order to get repeatable iteration order.)

cscott avatar Oct 18 '18 15:10 cscott