aboutsummaryrefslogtreecommitdiffstats
path: root/lib/jinterface/test/jinterface_SUITE_data/FunEquals.java
diff options
context:
space:
mode:
authorVlad Dumitrescu <[email protected]>2014-05-19 12:18:58 +0200
committerVlad Dumitrescu <[email protected]>2014-07-21 18:02:17 +0200
commit0725d5cdf30b740b5c90b9fd355401161f14f401 (patch)
tree7f5295fbf8787d08a86a73e48e58ed56db86bafa /lib/jinterface/test/jinterface_SUITE_data/FunEquals.java
parente7e750a40ff875e6d62f1e7904470222ac8de269 (diff)
downloadotp-0725d5cdf30b740b5c90b9fd355401161f14f401.tar.gz
otp-0725d5cdf30b740b5c90b9fd355401161f14f401.tar.bz2
otp-0725d5cdf30b740b5c90b9fd355401161f14f401.zip
jinterface: fix bug in equality for OtpErlangFun
Arrays (here: md5 and freeVars) must not be compared with equals, which is broken.
Diffstat (limited to 'lib/jinterface/test/jinterface_SUITE_data/FunEquals.java')
-rw-r--r--lib/jinterface/test/jinterface_SUITE_data/FunEquals.java71
1 files changed, 71 insertions, 0 deletions
diff --git a/lib/jinterface/test/jinterface_SUITE_data/FunEquals.java b/lib/jinterface/test/jinterface_SUITE_data/FunEquals.java
new file mode 100644
index 0000000000..14f884cee7
--- /dev/null
+++ b/lib/jinterface/test/jinterface_SUITE_data/FunEquals.java
@@ -0,0 +1,71 @@
+/*
+ * %CopyrightBegin%
+ *
+ * Copyright Ericsson AB 2004-2010. All Rights Reserved.
+ *
+ * The contents of this file are subject to the Erlang Public License,
+ * Version 1.1, (the "License"); you may not use this file except in
+ * compliance with the License. You should have received a copy of the
+ * Erlang Public License along with this software. If not, it can be
+ * retrieved online at http://www.erlang.org/.
+ *
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ * the License for the specific language governing rights and limitations
+ * under the License.
+ *
+ * %CopyrightEnd%
+ */
+
+import java.util.Arrays;
+
+import com.ericsson.otp.erlang.*;
+
+public class FunEquals {
+
+ /*
+ Implements test case jinterface_SUITE:fun_equals/1
+
+ Test the function OtpErlangFun.equals()
+ */
+
+ public static void main(String argv[]) {
+
+ OtpErlangPid pid = new OtpErlangPid("here", 4, 5, 0);
+ String module = "mod";
+ int arity = 2;
+ byte[] md5 = new byte[]{3,5,7};
+ int index = 2;
+ long old_index = 1;
+ long uniq= 2;
+ OtpErlangObject[] freeVars = new OtpErlangObject[]{
+ new OtpErlangAtom("hej"), new OtpErlangLong(9)
+ };
+
+ OtpErlangFun f1 = new OtpErlangFun(pid, module, arity, md5,
+ index, old_index, uniq, freeVars);
+ OtpErlangFun f2 = new OtpErlangFun(pid, module, arity, copyArray(md5),
+ index, old_index, uniq, copyArray(freeVars));
+
+ if(!f1.equals(f2))
+ fail(1);
+
+ }
+
+ private static void fail(int reason) {
+ System.exit(reason);
+ }
+
+ private static byte[] copyArray(byte[] source) {
+ byte[] result = new byte[source.length];
+ System.arraycopy(source, 0, result, 0, source.length);
+ return result;
+ }
+
+ private static OtpErlangObject[] copyArray(OtpErlangObject[] source) {
+ OtpErlangObject[] result = new OtpErlangObject[source.length];
+ System.arraycopy(source, 0, result, 0, source.length);
+ return result;
+ }
+
+}