From 9d4ff8c389b5df11431b7047f4ed302cf1ded101 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Fri, 8 Apr 2016 19:41:24 +0200 Subject: [PATCH] [tests] numeric overflow inspection test migrated --- .../inspection/numericOverflow/Simple.java | 88 +++ .../numericOverflow/simple/expected.xml | 650 ------------------ .../numericOverflow/simple/src/Foo.java | 88 --- .../codeInspection/NumericOverflowTest.java | 35 +- 4 files changed, 112 insertions(+), 749 deletions(-) create mode 100644 java/java-tests/testData/inspection/numericOverflow/Simple.java delete mode 100644 java/java-tests/testData/inspection/numericOverflow/simple/expected.xml delete mode 100644 java/java-tests/testData/inspection/numericOverflow/simple/src/Foo.java diff --git a/java/java-tests/testData/inspection/numericOverflow/Simple.java b/java/java-tests/testData/inspection/numericOverflow/Simple.java new file mode 100644 index 000000000000..416c5eaaa0ef --- /dev/null +++ b/java/java-tests/testData/inspection/numericOverflow/Simple.java @@ -0,0 +1,88 @@ +// overflows in const expressions + + +class c { + // @*#$& ! references do not work in JRE + static final long LONG_MIN_VALUE = 0x8000000000000000L; + static final long LONG_MAX_VALUE = 0x7fffffffffffffffL; + static final int INTEGER_MIN_VALUE = 0x80000000; + static final int INTEGER_MAX_VALUE = 0x7fffffff; + static final float FLOAT_MIN_VALUE = 1.4e-45f; + static final float FLOAT_MAX_VALUE = 3.4028235e+38f; + static final double DOUBLE_MIN_VALUE = 4.9e-324; + static final double DOUBLE_MAX_VALUE = 1.7976931348623157e+308; + + void f() { + float f1 = 1.0f / 0.0f; + f1 = FLOAT_MAX_VALUE + FLOAT_MAX_VALUE; + f1 = FLOAT_MAX_VALUE * 2; + f1 = 2 / FLOAT_MIN_VALUE; + f1 = FLOAT_MIN_VALUE + 1; + f1 = - FLOAT_MIN_VALUE; + f1 = -FLOAT_MAX_VALUE; + System.out.println(f1); + + double d1 = DOUBLE_MAX_VALUE - -DOUBLE_MAX_VALUE; + d1 = DOUBLE_MAX_VALUE + 1; + d1 = 2 * DOUBLE_MAX_VALUE; + d1 = 2 / DOUBLE_MIN_VALUE; + d1 = 2 / 0.0d; + d1 = 2 / 0.0; + System.out.println(d1); + + + int i1 = INTEGER_MAX_VALUE + 1; + i1 = INTEGER_MAX_VALUE - 1 + 2; + i1 = INTEGER_MAX_VALUE - INTEGER_MIN_VALUE; + i1 = -INTEGER_MIN_VALUE; + i1 = INTEGER_MIN_VALUE - 1; + i1 = INTEGER_MIN_VALUE - INTEGER_MAX_VALUE; + i1 = INTEGER_MIN_VALUE + INTEGER_MAX_VALUE; + i1 = - INTEGER_MAX_VALUE; + i1 = - -INTEGER_MAX_VALUE; + i1 = INTEGER_MIN_VALUE * -1; + i1 = INTEGER_MIN_VALUE * 2; + i1 = INTEGER_MAX_VALUE * -2; + i1 = INTEGER_MAX_VALUE * -1; + i1 = 2 / 0; + i1 = INTEGER_MIN_VALUE / -1; + System.out.println(i1); + + long l1 = LONG_MAX_VALUE + 1; + l1 = LONG_MAX_VALUE - 1 + 2; + l1 = LONG_MAX_VALUE - LONG_MIN_VALUE; + l1 = -LONG_MIN_VALUE; + l1 = LONG_MIN_VALUE - 1; + l1 = LONG_MIN_VALUE - LONG_MAX_VALUE; + l1 = LONG_MIN_VALUE + LONG_MAX_VALUE; + l1 = - LONG_MAX_VALUE; + l1 = - -LONG_MAX_VALUE; + l1 = -INTEGER_MIN_VALUE; + l1 = -1L + INTEGER_MIN_VALUE; + l1 = LONG_MIN_VALUE * INTEGER_MIN_VALUE; + l1 = LONG_MIN_VALUE * -1; + l1 = LONG_MIN_VALUE * 2; + l1 = LONG_MAX_VALUE * -2; + l1 = INTEGER_MIN_VALUE * -1L; + l1 = 2 / 0L; + l1 = 2 % 0L; + l1 = LONG_MIN_VALUE / -1; + + l1 = 30 * 24 * 60 * 60 * 1000; + l1 = 30000000 * 243232323 * (LONG_MAX_VALUE +3) / 5; + + System.out.println(l1); + + + + } + + private static final long MILLIS_PER_DAY = 24 * 3600 * 1000; + private static final long _7DAYS = 7 * MILLIS_PER_DAY; + private static final long _30DAYS = 30 * MILLIS_PER_DAY; + private static final long _1000DAYS = 1000 * MILLIS_PER_DAY; + { + System.out.println(_1000DAYS + _30DAYS + _7DAYS); + } + int iii = 2 % 0; +} diff --git a/java/java-tests/testData/inspection/numericOverflow/simple/expected.xml b/java/java-tests/testData/inspection/numericOverflow/simple/expected.xml deleted file mode 100644 index 78d22bf6d352..000000000000 --- a/java/java-tests/testData/inspection/numericOverflow/simple/expected.xml +++ /dev/null @@ -1,650 +0,0 @@ - - - - Foo.java - 87 - Numeric overflow in expression - - - - - - Foo.java - 16 - Numeric overflow in expression - - - - - - Foo.java - 17 - - Numeric overflow in expression - - - - - - Foo.java - 17 - - Numeric overflow in expression - - - - - - Foo.java - 18 - - Numeric overflow in expression - - - - - - Foo.java - 18 - - Numeric overflow in expression - - - - - - Foo.java - 19 - - Numeric overflow in expression - - - - - - Foo.java - 19 - - Numeric overflow in expression - - - - - - Foo.java - 25 - - Numeric overflow in expression - - - - - - Foo.java - 27 - - Numeric overflow in expression - - - - - - Foo.java - 27 - - Numeric overflow in expression - - - - - - Foo.java - 28 - - Numeric overflow in expression - - - - - - Foo.java - 28 - - Numeric overflow in expression - - - - - - Foo.java - 29 - - Numeric overflow in expression - - - - - - Foo.java - 29 - - Numeric overflow in expression - - - - - - Foo.java - 30 - - Numeric overflow in expression - - - - - - Foo.java - 30 - - Numeric overflow in expression - - - - - - Foo.java - 34 - - Numeric overflow in expression - - - - - - Foo.java - 35 - - Numeric overflow in expression - - - - - - Foo.java - 35 - - Numeric overflow in expression - - - - - - Foo.java - 36 - - Numeric overflow in expression - - - - - - Foo.java - 36 - - Numeric overflow in expression - - - - - - Foo.java - 37 - - Numeric overflow in expression - - - - - - Foo.java - 37 - - Numeric overflow in expression - - - - - - Foo.java - 38 - - Numeric overflow in expression - - - - - - Foo.java - 38 - - Numeric overflow in expression - - - - - - Foo.java - 39 - - Numeric overflow in expression - - - - - - Foo.java - 39 - - Numeric overflow in expression - - - - - - Foo.java - 43 - - Numeric overflow in expression - - - - - - Foo.java - 43 - - Numeric overflow in expression - - - - - - Foo.java - 44 - - Numeric overflow in expression - - - - - - Foo.java - 44 - - Numeric overflow in expression - - - - - - Foo.java - 45 - - Numeric overflow in expression - - - - - - Foo.java - 45 - - Numeric overflow in expression - - - - - - Foo.java - 47 - - Numeric overflow in expression - - - - - - Foo.java - 47 - - Numeric overflow in expression - - - - - - Foo.java - 48 - - Numeric overflow in expression - - - - - - Foo.java - 48 - - Numeric overflow in expression - - - - - - Foo.java - 51 - - Numeric overflow in expression - - - - - - Foo.java - 52 - - Numeric overflow in expression - - - - - - Foo.java - 52 - - Numeric overflow in expression - - - - - - Foo.java - 53 - - Numeric overflow in expression - - - - - - Foo.java - 53 - - Numeric overflow in expression - - - - - - Foo.java - 54 - - Numeric overflow in expression - - - - - - Foo.java - 54 - - Numeric overflow in expression - - - - - - Foo.java - 55 - - Numeric overflow in expression - - - - - - Foo.java - 55 - - Numeric overflow in expression - - - - - - Foo.java - 56 - - Numeric overflow in expression - - - - - - Foo.java - 56 - - Numeric overflow in expression - - - - - - Foo.java - 60 - - Numeric overflow in expression - - - - - - Foo.java - 60 - - Numeric overflow in expression - - - - - - Foo.java - 62 - - Numeric overflow in expression - - - - - - Foo.java - 62 - - Numeric overflow in expression - - - - - - Foo.java - 63 - - Numeric overflow in expression - - - - - - Foo.java - 63 - - Numeric overflow in expression - - - - - - Foo.java - 64 - - Numeric overflow in expression - - - - - - Foo.java - 64 - - Numeric overflow in expression - - - - - - Foo.java - 65 - - Numeric overflow in expression - - - - - - Foo.java - 65 - - Numeric overflow in expression - - - - - - Foo.java - 67 - - Numeric overflow in expression - - - - - - Foo.java - 67 - - Numeric overflow in expression - - - - - - Foo.java - 68 - - Numeric overflow in expression - - - - - - Foo.java - 68 - - Numeric overflow in expression - - - - - - Foo.java - 69 - - Numeric overflow in expression - - - - - - Foo.java - 69 - - Numeric overflow in expression - - - - - - Foo.java - 71 - - Numeric overflow in expression - - - - - - Foo.java - 71 - - Numeric overflow in expression - - - - - - Foo.java - 72 - - Numeric overflow in expression - - - - - - Foo.java - 72 - - Numeric overflow in expression - - - - - - Foo.java - 72 - - Numeric overflow in expression - - - - - - Foo.java - 72 - - Numeric overflow in expression - - - - - - Foo.java - 72 - - Numeric overflow in expression - - - - - - diff --git a/java/java-tests/testData/inspection/numericOverflow/simple/src/Foo.java b/java/java-tests/testData/inspection/numericOverflow/simple/src/Foo.java deleted file mode 100644 index 1aed3c6bcf46..000000000000 --- a/java/java-tests/testData/inspection/numericOverflow/simple/src/Foo.java +++ /dev/null @@ -1,88 +0,0 @@ -// overflows in const expressions - - -class c { - // @*#$& ! references do not work in JRE - static final long LONG_MIN_VALUE = 0x8000000000000000L; - static final long LONG_MAX_VALUE = 0x7fffffffffffffffL; - static final int INTEGER_MIN_VALUE = 0x80000000; - static final int INTEGER_MAX_VALUE = 0x7fffffff; - static final float FLOAT_MIN_VALUE = 1.4e-45f; - static final float FLOAT_MAX_VALUE = 3.4028235e+38f; - static final double DOUBLE_MIN_VALUE = 4.9e-324; - static final double DOUBLE_MAX_VALUE = 1.7976931348623157e+308; - - void f() { - float f1 = 1.0f / 0.0f; - f1 = FLOAT_MAX_VALUE + FLOAT_MAX_VALUE; - f1 = FLOAT_MAX_VALUE * 2; - f1 = 2 / FLOAT_MIN_VALUE; - f1 = FLOAT_MIN_VALUE + 1; - f1 = - FLOAT_MIN_VALUE; - f1 = -FLOAT_MAX_VALUE; - System.out.println(f1); - - double d1 = DOUBLE_MAX_VALUE - -DOUBLE_MAX_VALUE; - d1 = DOUBLE_MAX_VALUE + 1; - d1 = 2 * DOUBLE_MAX_VALUE; - d1 = 2 / DOUBLE_MIN_VALUE; - d1 = 2 / 0.0d; - d1 = 2 / 0.0; - System.out.println(d1); - - - int i1 = INTEGER_MAX_VALUE + 1; - i1 = INTEGER_MAX_VALUE - 1 + 2; - i1 = INTEGER_MAX_VALUE - INTEGER_MIN_VALUE; - i1 = -INTEGER_MIN_VALUE; - i1 = INTEGER_MIN_VALUE - 1; - i1 = INTEGER_MIN_VALUE - INTEGER_MAX_VALUE; - i1 = INTEGER_MIN_VALUE + INTEGER_MAX_VALUE; - i1 = - INTEGER_MAX_VALUE; - i1 = - -INTEGER_MAX_VALUE; - i1 = INTEGER_MIN_VALUE * -1; - i1 = INTEGER_MIN_VALUE * 2; - i1 = INTEGER_MAX_VALUE * -2; - i1 = INTEGER_MAX_VALUE * -1; - i1 = 2 / 0; - i1 = INTEGER_MIN_VALUE / -1; - System.out.println(i1); - - long l1 = LONG_MAX_VALUE + 1; - l1 = LONG_MAX_VALUE - 1 + 2; - l1 = LONG_MAX_VALUE - LONG_MIN_VALUE; - l1 = -LONG_MIN_VALUE; - l1 = LONG_MIN_VALUE - 1; - l1 = LONG_MIN_VALUE - LONG_MAX_VALUE; - l1 = LONG_MIN_VALUE + LONG_MAX_VALUE; - l1 = - LONG_MAX_VALUE; - l1 = - -LONG_MAX_VALUE; - l1 = -INTEGER_MIN_VALUE; - l1 = -1L + INTEGER_MIN_VALUE; - l1 = LONG_MIN_VALUE * INTEGER_MIN_VALUE; - l1 = LONG_MIN_VALUE * -1; - l1 = LONG_MIN_VALUE * 2; - l1 = LONG_MAX_VALUE * -2; - l1 = INTEGER_MIN_VALUE * -1L; - l1 = 2 / 0L; - l1 = 2 % 0L; - l1 = LONG_MIN_VALUE / -1; - - l1 = 30 * 24 * 60 * 60 * 1000; - l1 = 30000000 * 243232323 * (LONG_MAX_VALUE +3) / 5; - - System.out.println(l1); - - - - } - - private static final long MILLIS_PER_DAY = 24 * 3600 * 1000; - private static final long _7DAYS = 7 * MILLIS_PER_DAY; - private static final long _30DAYS = 30 * MILLIS_PER_DAY; - private static final long _1000DAYS = 1000 * MILLIS_PER_DAY; - { - System.out.println(_1000DAYS + _30DAYS + _7DAYS); - } - int iii = 2 % 0; -} diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/NumericOverflowTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/NumericOverflowTest.java index 55a71ecbf829..c60fcbcb0181 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/NumericOverflowTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/NumericOverflowTest.java @@ -1,20 +1,33 @@ +/* + * Copyright 2000-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 com.intellij.codeInspection; import com.intellij.JavaTestUtil; -import com.intellij.testFramework.InspectionTestCase; +import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; -public class NumericOverflowTest extends InspectionTestCase { +public class NumericOverflowTest extends LightCodeInsightFixtureTestCase { @Override - protected String getTestDataPath() { - return JavaTestUtil.getJavaTestDataPath() + "/inspection"; + protected String getBasePath() { + return JavaTestUtil.getRelativeJavaTestDataPath() + "/inspection/numericOverflow"; } - private void doTest() throws Exception { - doTest("numericOverflow/" + getTestName(true), new NumericOverflowInspection()); - } + public void testSimple() { doTest(); } - - public void testSimple() throws Exception { - doTest(); + private void doTest() { + myFixture.enableInspections(new NumericOverflowInspection()); + myFixture.testHighlighting(getTestName(false) + ".java"); } -} +} \ No newline at end of file