From b3ac7c49fcdb3a13f8d002a7140f8ff2c67d67fb Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Sun, 20 Oct 2019 14:14:50 +0200 Subject: [PATCH] tests for System.arraycopy --- .../jwebassembly/runtime/ArrayOperations.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/test/de/inetsoftware/jwebassembly/runtime/ArrayOperations.java b/test/de/inetsoftware/jwebassembly/runtime/ArrayOperations.java index 0f8c431..4ac93e3 100644 --- a/test/de/inetsoftware/jwebassembly/runtime/ArrayOperations.java +++ b/test/de/inetsoftware/jwebassembly/runtime/ArrayOperations.java @@ -18,6 +18,7 @@ package de.inetsoftware.jwebassembly.runtime; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.zip.CRC32; import org.junit.Assume; import org.junit.ClassRule; @@ -56,6 +57,8 @@ public class ArrayOperations extends AbstractBaseTest { addParam( list, script, "loopFloat" ); addParam( list, script, "loopDouble" ); addParam( list, script, "loopObject" ); + addParam( list, script, "copyBack2Front" ); + addParam( list, script, "copyFront2Back" ); } rule.setTestParameters( list ); return list; @@ -156,5 +159,31 @@ public class ArrayOperations extends AbstractBaseTest { } return sum; } + + @Export + static double copyBack2Front() { + byte[] a = new byte[50]; + for( int i = 0; i < a.length; i++ ) { + a[i] = (byte)i; + } + + System.arraycopy( a, 20, a, 15, 10 ); + CRC32 crc = new CRC32(); + crc.update( a ); + return crc.getValue(); + } + + @Export + static double copyFront2Back() { + byte[] a = new byte[50]; + for( int i = 0; i < a.length; i++ ) { + a[i] = (byte)i; + } + + System.arraycopy( a, 15, a, 20, 10 ); + CRC32 crc = new CRC32(); + crc.update( a ); + return crc.getValue(); + } } }