On Mon, 23 Nov 2020 15:11:49 GMT, Maurizio Cimadamore <mcimadam...@openjdk.org> wrote:
> Both the Foreign Memory Access and the Foreign Linker APIs leave something to > be desired when it comes to handling NPEs - first, most of the API javadoc is > oblivious to NPEs being thrown. Secondly, not all API method implementations > add expicit NPE checks - with the result of NPE often being thrown very deep > in the call chain - if at all. Third, test for API coverage of nulls is > ad-hoc. > > This patch rectifies all these issues. To increase coverage for null injected > into APIs, this patch introduces a new framework for testing an API in bulk, > so that all methods are reflectively called with some values replaced with > nulls, so that all combinations are tried. > > I've also added, as part of this patch, a test to cover the statics in > MemoryAccess which were not covered throughly. Already looked at this in panama-foreign, but found one minor issue. src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/FunctionDescriptor.java line 152: > 150: * @return the new function descriptor. > 151: * @throws NullPointerException if either {@code addedLayouts == > null}, or any of the > 152: * layouts in {@code addedLayouts} is null.@throws > NullPointerException if any of the new argument layouts is null. Spurious `@throws` tag here ------------- Marked as reviewed by jvernee (Committer). PR: https://git.openjdk.java.net/jdk/pull/1388