Reuse JVM box tests for binary operations in JS, excluding those that can't pass now.

This commit is contained in:
Ilya Gorbunov
2016-10-21 04:19:39 +03:00
parent 19922135fd
commit 98f7c61333
7 changed files with 153 additions and 0 deletions
@@ -1,3 +1,5 @@
// TARGET_BACKEND: JVM
// reason - multifile tests are not supported in JS tests
//FILE: Holder.java
class Holder {
@@ -1,3 +1,5 @@
// TARGET_BACKEND: JVM
// reason - multifile tests are not supported in JS tests
//FILE: JavaClass.java
class JavaClass {
@@ -1,3 +1,5 @@
// TARGET_BACKEND: JVM
// reason - no ArithmeticException in JS
fun box(): String {
val a1 = 0
val a2 = try { 1 / 0 } catch(e: ArithmeticException) { 0 }
+2
View File
@@ -1,3 +1,5 @@
// TARGET_BACKEND: JVM
// reason - Int doesn't overflow in JS, TODO: include after KT-7733 is fixed
fun box(): String {
val i1: Int = Int.MAX_VALUE
val i2 = i1 + 1
@@ -1209,6 +1209,10 @@ fun main(args: Array<String>) {
testClass<AbstractTypeAliasesTests>() {
model("codegen/box/typealias/", targetBackend = TargetBackend.JS)
}
testClass<AbstractBinaryOpTests>() {
model("codegen/box/binaryOp", targetBackend = TargetBackend.JS)
}
}
}
@@ -0,0 +1,139 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.js.test.semantics;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/codegen/box/binaryOp")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public class BinaryOpTestsGenerated extends AbstractBinaryOpTests {
@TestMetadata("compareWithBoxedDouble.kt")
public void ignoredCompareWithBoxedDouble() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/compareWithBoxedDouble.kt");
doTest(fileName);
}
@TestMetadata("compareWithBoxedLong.kt")
public void ignoredCompareWithBoxedLong() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/compareWithBoxedLong.kt");
doTest(fileName);
}
@TestMetadata("divisionByZero.kt")
public void ignoredDivisionByZero() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/divisionByZero.kt");
doTest(fileName);
}
@TestMetadata("overflowInt.kt")
public void ignoredOverflowInt() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/overflowInt.kt");
doTest(fileName);
}
public void testAllFilesPresentInBinaryOp() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/binaryOp"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("bitwiseOp.kt")
public void testBitwiseOp() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/bitwiseOp.kt");
doTest(fileName);
}
@TestMetadata("bitwiseOpAny.kt")
public void testBitwiseOpAny() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/bitwiseOpAny.kt");
doTest(fileName);
}
@TestMetadata("bitwiseOpNullable.kt")
public void testBitwiseOpNullable() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/bitwiseOpNullable.kt");
doTest(fileName);
}
@TestMetadata("call.kt")
public void testCall() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/call.kt");
doTest(fileName);
}
@TestMetadata("callAny.kt")
public void testCallAny() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/callAny.kt");
doTest(fileName);
}
@TestMetadata("callNullable.kt")
public void testCallNullable() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/callNullable.kt");
doTest(fileName);
}
@TestMetadata("intrinsic.kt")
public void testIntrinsic() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/intrinsic.kt");
doTest(fileName);
}
@TestMetadata("intrinsicAny.kt")
public void testIntrinsicAny() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/intrinsicAny.kt");
doTest(fileName);
}
@TestMetadata("intrinsicNullable.kt")
public void testIntrinsicNullable() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/intrinsicNullable.kt");
doTest(fileName);
}
@TestMetadata("kt11163.kt")
public void testKt11163() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/kt11163.kt");
doTest(fileName);
}
@TestMetadata("kt6747_identityEquals.kt")
public void testKt6747_identityEquals() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/kt6747_identityEquals.kt");
doTest(fileName);
}
@TestMetadata("overflowChar.kt")
public void testOverflowChar() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/overflowChar.kt");
doTest(fileName);
}
@TestMetadata("overflowLong.kt")
public void testOverflowLong() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/binaryOp/overflowLong.kt");
doTest(fileName);
}
}
@@ -60,3 +60,5 @@ abstract class AbstractLocalClassesTest : BorrowedTest("localClasses/")
abstract class AbstractNonLocalReturnsTest : BorrowedInlineTest("nonLocalReturns/")
abstract class AbstractTypeAliasesTests : BorrowedTest("typealias/")
abstract class AbstractBinaryOpTests : BorrowedTest("binaryOp/")