Skip to content

Commit 5cfe5f6

Browse files
committed
Fixed behavior of division by 0 on doubles (should be Infinity), added tests.
1 parent 55f4f09 commit 5cfe5f6

File tree

3 files changed

+76
-5
lines changed

3 files changed

+76
-5
lines changed

src/main/gov/nasa/jpf/jvm/bytecode/DDIV.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,6 @@ public Instruction execute (ThreadInfo ti) {
3434

3535
double v1 = frame.popDouble();
3636
double v2 = frame.popDouble();
37-
38-
if (v1 == 0) {
39-
return ti.createAndThrowException("java.lang.ArithmeticException",
40-
"division by zero");
41-
}
4237

4338
double r = v2 / v1;
4439

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*
2+
* Copyright (C) 2018, United States Government, as represented by the
3+
* Administrator of the National Aeronautics and Space Administration.
4+
* All rights reserved.
5+
*
6+
* The Java Pathfinder core (jpf-core) platform is licensed under the
7+
* Apache License, Version 2.0 (the "License"); you may not use this file except
8+
* in compliance with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0.
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*/
18+
19+
package gov.nasa.jpf.test.java.lang;
20+
21+
import gov.nasa.jpf.util.test.TestJPF;
22+
23+
import org.junit.Test;
24+
25+
/**
26+
* double related tests
27+
*/
28+
public class DoubleTest extends TestJPF {
29+
30+
@Test
31+
public void testDivision() {
32+
if (verifyNoPropertyViolation()) {
33+
double i = 0;
34+
double j = 10 / i;
35+
assert(Double.valueOf(j).isInfinite());
36+
}
37+
}
38+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*
2+
* Copyright (C) 2018, United States Government, as represented by the
3+
* Administrator of the National Aeronautics and Space Administration.
4+
* All rights reserved.
5+
*
6+
* The Java Pathfinder core (jpf-core) platform is licensed under the
7+
* Apache License, Version 2.0 (the "License"); you may not use this file except
8+
* in compliance with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0.
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*/
18+
19+
package gov.nasa.jpf.test.java.lang;
20+
21+
import gov.nasa.jpf.util.test.TestJPF;
22+
23+
import org.junit.Test;
24+
25+
/**
26+
* float related tests
27+
*/
28+
public class FloatTest extends TestJPF {
29+
30+
@Test
31+
public void testDivision() {
32+
if (verifyNoPropertyViolation()) {
33+
float i = 0;
34+
float j = 10 / i;
35+
assert(Float.valueOf(j).isInfinite());
36+
}
37+
}
38+
}

0 commit comments

Comments
 (0)