Dear Maintainers, test/jdk/java/foreign/TestLayouts.java assumes little endian architecture and hardcoded string representation of int. This results in the following failure: -----cut----- test TestLayouts.testStructToString(): failure java.lang.AssertionError: expected [[i4](struct)] but found [[I4](struct)] -----cut----- as JAVA_INT is represented as 'I4' for big endian.
Would it be possible to consider the attached patch to resolve the issue? Best Regards, Vladimir.
commit 99fe5b698cd75f0e0574ec94d43688aeff7a29da Author: Vladimir Petko <vladimir.pe...@canonical.com> Date: Fri Jun 9 20:51:43 2023 +1200 replace hardcoded i4 with JAVA_INT.toString() diff --git a/test/jdk/java/foreign/TestLayouts.java b/test/jdk/java/foreign/TestLayouts.java index ebb7bcf0585..e733bb8b367 100644 --- a/test/jdk/java/foreign/TestLayouts.java +++ b/test/jdk/java/foreign/TestLayouts.java @@ -259,9 +259,9 @@ public class TestLayouts { @Test public void testStructToString() { StructLayout padding = MemoryLayout.structLayout(JAVA_INT).withName("struct"); - assertEquals(padding.toString(), "[i4](struct)"); + assertEquals(padding.toString(), String.format("[%s](struct)", JAVA_INT)); var toStringUnaligned = padding.withByteAlignment(8).toString(); - assertEquals(toStringUnaligned, "8%[i4](struct)"); + assertEquals(toStringUnaligned, String.format("8%%[%s](struct)", JAVA_INT)); } @Test(dataProvider = "layoutKinds")