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")

Reply via email to