Releases: ls1intum/Ares
Releases · ls1intum/Ares
1.5.4
User-Side Changes
- Fix issue that StrictTimeout does not apply to nested classes (ea5fe80)
- Add a few missing localization entries (such as the one for strict timeout and some in output lines matching)
- Many bug fixes for the (experimental) dynamics framework, mostly related to bad failure messages which are better now. This includes
- The removal of the pointless
DynamicMethod
...Cast methods, see dbb55b6 for an explanation and solution in case those were really used somewhere. - Not counting synthetic and bridge methods in
DynamicClass.checkForPublicOrProtectedMethods
. (0a1bcb5) - Making the
exists()
method part ofCheckable
and add implementation forDynamicField
. (dc80bb0) - Fixing that
DynamicMethod
sometimes reported failures with the wrong argument types. (bd26d77)
- The removal of the pointless
Developer-Side Changes
- Many tests for
de.tum.in.test.api.dynamic
(fixed #74) and more tests for other components as well - More consistent code style and formatting, removing unused code
- Test dependency updates (spotless)
1.5.3
User-Side Changes
- Implement optional tags for modifiers in the test.json of the structural tests. See #94 (credits to @JohannesStoehr).
The behavior for existing structural test JSON containing the expected structure is not changed. But Ares now allows making modifiers optional like e.g.optional: final
as modifier name. The structural tests now also support setting expected class modifiers. - Fix wrong sanitization of the expected and actual value of
org.opentest4j.AssertionFailedError
.
This bug had no effect on the message as it is e.g. displayed in Artemis, and neither does the introduced change. This only affected tools such as IDEs, which sometimes showed confusing or wrong information in detail views forAssertionFailedError
s.
Developer-Side Changes
- More and better tests for structural tests and for the Throwable sanitization.
1.5.2
User-Side Changes
- Fix accidental invocation of
fillInStackTrace()
This resolves the problem that reported test failures sometimes didn't come with the correct stack traces and thus the potential problem location was not added to the exception message.
1.5.1
User-Side Changes
- Fix missing usages of
MessageTransformer
forThrowable
sanitization
This resolves the problem that the potential problem location was not added to the exception message in many cases.
1.5.0
User-Side Changes
- Add support for Java 16 (JEP-396, see #88 and #68).
This may cause a slight change in behavior for some specific test failures by exceptions, but the API stays unchanged and the new behavior should not affect the usability. Therefore, this is released as a new minor. - Make timeout failures privileged if they are used in a
@PrivilegedExceptionOnly
context (see #91).
This also changes the behavior, but from our point of view only in a positive way. Timeouts should not be hidden because they don't give any solution away and might help to find the timeout issue, reduce frustration of everyone involved and lower the load on the build systems.
Developer-Side Changes
artemis-java-test-sandbox
tests are now run in an JDK 16 environment every time.
Dependency updates
org.json:json
updated to version20210307
1.4.7
User-Side Changes
- Take care of more
FilePermission
formats. See #78 (credits to @ColoredCarrot for reporting the issue)
This should not have any effect on common use cases, as the formats are not or rarely used.
Developer-Side Changes
- Add small protection against missing localization in the test conditions (see 0d3a106)
Dependency updates
org.assertj:assertj-core
updated to version3.19.0
org.junit.jupiter:junit-jupiter-...
updated to version5.7.1
org.junit.jupiter:junit-platform-...
updated to version1.7.1
1.4.6
User-Side Changes
- Improve SecurityManager to accept
doPrivileged
.
This improves usability by preventing some undesired security exceptions being thrown, e.g. if students useThread
by extending the class. The change should solve similar problems as well.
1.4.5
User-Side Changes
- Include the "Dynamics Framework", see #71 (credits to @MDK5)
The "Dynamics Framework" is a set of classes that wrap reflective operations so that they are almost as usable as the direct usage. The structure is defined is the first place by creating genericDynamicClass
es,DynamicMethod
s,DynamicConstructor
s andDynamicField
s. This reduces the need for casting, and due to the precise definition of the expected structure, we can produce a clear error message if something cannot be found or is ill-defined. Because the reflective operations are encapsulated in theDynamic...
objects, the code stays compact and readable and even testing large exercises purely via reflective operations is feasible.
1.4.4
User-Side Changes
- Simple and canonical name support for Structure Test Oracle files. See #67 (credits to @niclasschuemann)
This improves thede.tum.in.test.api.structural
classes by adding support for canonical class names in addition to simple names, and this is also supported for generic type declarations, which are now supported in more places of the expected structure JSON.
1.4.3
User-Side Changes
- Fix line number parsing in
tryCleanUpAssertionFailedError
causing broken error messages coming fromOutputTester.assertLinesMatch
.