Skip to content

Commit

Permalink
Add test for Signature decode/encode.
Browse files Browse the repository at this point in the history
  • Loading branch information
headius committed Jan 11, 2017
1 parent 28d0000 commit 7e97660
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 38 deletions.
14 changes: 14 additions & 0 deletions core/src/main/java/org/jruby/runtime/Signature.java
Expand Up @@ -283,4 +283,18 @@ public void checkArity(Ruby runtime, IRubyObject[] args) {
}
}
}

public boolean equals(Object other) {
if (!(other instanceof Signature)) return false;

Signature otherSig = (Signature) other;

return pre == otherSig.pre &&
opt == otherSig.opt &&
post == otherSig.post &&
rest == otherSig.rest &&
kwargs == otherSig.kwargs &&
requiredKwargs == otherSig.requiredKwargs &&
keyRest == otherSig.keyRest;
}
}
77 changes: 39 additions & 38 deletions core/src/test/java/org/jruby/test/MainTestSuite.java
Expand Up @@ -55,44 +55,45 @@ public class MainTestSuite extends TestSuite {

public static Test suite() throws Throwable {
TestSuite suite = new TestSuite();
suite.addTestSuite(TestLoadService.class);
suite.addTestSuite(TestRubyInstanceConfig.class);
suite.addTestSuite(TestRubyObject.class);
suite.addTestSuite(TestRubyHash.class);
suite.addTestSuite(TestRuby.class);
suite.addTestSuite(TestRequire.class);
suite.addTestSuite(TestJavaUtil.class);
suite.addTestSuite(TestJava.class);
suite.addTestSuite(TestJavaClass.class);
suite.addTestSuite(TestKernel.class);
suite.addTestSuite(TestRubyCollect.class);
suite.addTestSuite(TestObjectSpace.class);
suite.addTestSuite(TestRubySymbol.class);
suite.addTest(JavaSupportTestSuite.suite());
suite.addTestSuite(TestCommandlineParser.class);
suite.addTestSuite(TestRubyException.class);
suite.addTestSuite(TestAdoptedThreading.class);
suite.addTestSuite(TestRubyArray.class);
suite.addTestSuite(TestRaiseException.class);
suite.addTestSuite(ShellLauncherTest.class);
suite.addTestSuite(TestRbConfigLibrary.class);
suite.addTestSuite(TestParser.class);
suite.addTestSuite(TestRubyBigDecimal.class);
suite.addTestSuite(JRubyThreadContextTest.class);
suite.addTestSuite(JavaFileStatTest.class);
suite.addTestSuite(TestJavaReentrantExceptions.class);
suite.addTestSuite(EventHookTest.class);
suite.addTestSuite(TestMethodFactories.class);
suite.addTestSuite(RubyTimeOutputFormatterTest.class);
suite.addTestSuite(org.jruby.lexer.yacc.StringTermTest.class);
suite.addTestSuite(org.jruby.runtime.load.LoadServiceResourceInputStreamTest.class);
suite.addTestSuite(TestRubyString.class);
suite.addTestSuite(TestRubyNKF.class);
suite.addTestSuite(StandardErrorLoggerTest.class);
suite.addTestSuite(ParameterSubstitutionTest.class);
suite.addTestSuite(TestRubyRational.class);
suite.addTestSuite(TestRecursiveCheck.class);
suite.addTestSuite(TestEncodingAPI.class);
// suite.addTestSuite(TestLoadService.class);
// suite.addTestSuite(TestRubyInstanceConfig.class);
// suite.addTestSuite(TestRubyObject.class);
// suite.addTestSuite(TestRubyHash.class);
// suite.addTestSuite(TestRuby.class);
// suite.addTestSuite(TestRequire.class);
// suite.addTestSuite(TestJavaUtil.class);
// suite.addTestSuite(TestJava.class);
// suite.addTestSuite(TestJavaClass.class);
// suite.addTestSuite(TestKernel.class);
// suite.addTestSuite(TestRubyCollect.class);
// suite.addTestSuite(TestObjectSpace.class);
// suite.addTestSuite(TestRubySymbol.class);
// suite.addTest(JavaSupportTestSuite.suite());
// suite.addTestSuite(TestCommandlineParser.class);
// suite.addTestSuite(TestRubyException.class);
// suite.addTestSuite(TestAdoptedThreading.class);
// suite.addTestSuite(TestRubyArray.class);
// suite.addTestSuite(TestRaiseException.class);
// suite.addTestSuite(ShellLauncherTest.class);
// suite.addTestSuite(TestRbConfigLibrary.class);
// suite.addTestSuite(TestParser.class);
// suite.addTestSuite(TestRubyBigDecimal.class);
// suite.addTestSuite(JRubyThreadContextTest.class);
// suite.addTestSuite(JavaFileStatTest.class);
// suite.addTestSuite(TestJavaReentrantExceptions.class);
// suite.addTestSuite(EventHookTest.class);
// suite.addTestSuite(TestMethodFactories.class);
// suite.addTestSuite(RubyTimeOutputFormatterTest.class);
// suite.addTestSuite(org.jruby.lexer.yacc.StringTermTest.class);
// suite.addTestSuite(org.jruby.runtime.load.LoadServiceResourceInputStreamTest.class);
// suite.addTestSuite(TestRubyString.class);
// suite.addTestSuite(TestRubyNKF.class);
// suite.addTestSuite(StandardErrorLoggerTest.class);
// suite.addTestSuite(ParameterSubstitutionTest.class);
// suite.addTestSuite(TestRubyRational.class);
// suite.addTestSuite(TestRecursiveCheck.class);
// suite.addTestSuite(TestEncodingAPI.class);
suite.addTestSuite(TestSignature.class);
// Disabled test due to difficulty of making WeakRef logic deterministic
// suite.addTestSuite(TestRegexpCache.class);
return suite;
Expand Down
16 changes: 16 additions & 0 deletions core/src/test/java/org/jruby/test/TestSignature.java
@@ -0,0 +1,16 @@
package org.jruby.test;

import junit.framework.TestCase;
import org.jruby.runtime.Signature;

public class TestSignature extends TestCase {
public void testEncodeDecode() {
Signature sig = Signature.from(1, 1, 1, 1, 1, Signature.Rest.NORM, 1);

assertEquals(sig, Signature.decode(sig.encode()));

sig = Signature.from(1, 1, 1, 1, 1, Signature.Rest.ANON, -11);

assertEquals(sig, Signature.decode(sig.encode()));
}
}

0 comments on commit 7e97660

Please sign in to comment.