1425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson/* 2425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * Copyright (C) 2017 The Android Open Source Project 3425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * 4425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * Licensed under the Apache License, Version 2.0 (the "License"); 5425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * you may not use this file except in compliance with the License. 6425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * You may obtain a copy of the License at 7425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * 8425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * http://www.apache.org/licenses/LICENSE-2.0 9425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * 10425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * Unless required by applicable law or agreed to in writing, software 11425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * distributed under the License is distributed on an "AS IS" BASIS, 12425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * See the License for the specific language governing permissions and 14425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * limitations under the License. 15425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson */ 16425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 17425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson/** 18425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * AOSP JFuzz Tester. 19425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * Automatically generated program. 20425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson * jfuzz -s 3674365851 -d 1 -l 8 -i 2 -n 3 (version 1.3) 21425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson */ 22425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 23425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodsonimport java.util.Arrays; 24425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 25a9ce640c36c040b9d2d6df879c71fa3ba38f0cebOrion Hodson@SuppressWarnings("deprecation") 26425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodsonpublic class Test { 27425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 28425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private interface X { 29425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson int x(); 30425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 31425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 32425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private class A { 33425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson public int a() { 34425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson return (mI--); 35425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 36425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 37425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 38425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private class B extends A implements X { 39425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson public int a() { 40425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson return super.a() + ((235022827 >> mI) & 574409782); 41425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 42425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson public int x() { 43425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson return ((mZ) ? mI : ((Math.addExact(852067216, 246625693)) % mI)); 44425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 45425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 46425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 47425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private static class C implements X { 48425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson public static int s() { 49425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson return 1878004320; 50425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 51425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson public int c() { 52425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson return -618864356; 53425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 54425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson public int x() { 55425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson return -556993081; 56425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 57425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 58425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 59425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private A mA = new B(); 60425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private B mB = new B(); 61425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private X mBX = new B(); 62425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private C mC = new C(); 63425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private X mCX = new C(); 64425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 65425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private boolean mZ = false; 66425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private int mI = 0; 67425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private long mJ = 0; 68425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private float mF = 0; 69425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private double mD = 0; 70425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 71425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private float[][][][][][][] mArray = new float[2][2][2][2][2][2][2]; 72425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 73425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private Test() { 74425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson float a = -774156645.0f; 75425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson for (int i0 = 0; i0 < 2; i0++) { 76425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson for (int i1 = 0; i1 < 2; i1++) { 77425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson for (int i2 = 0; i2 < 2; i2++) { 78425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson for (int i3 = 0; i3 < 2; i3++) { 79425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson for (int i4 = 0; i4 < 2; i4++) { 80425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson for (int i5 = 0; i5 < 2; i5++) { 81425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson for (int i6 = 0; i6 < 2; i6++) { 82425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mArray[i0][i1][i2][i3][i4][i5][i6] = a; 83425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson a++; 84425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 85425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 86425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 87425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 88425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 89425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 90425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 91425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 92425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 93425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson private float testMethod() { 94425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson { 95425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson long lJ0 = (Long.MIN_VALUE); 96425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson if (((boolean) new Boolean(mZ))) { 97425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson lJ0 |= ((-609721394L | -601487228L) + (--mJ)); 98425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson for (int i0 = mArray.length - 1; i0 >= 0; i0--) { 99425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mF = ((float) new Float(921021787.0f)); 100425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mZ ^= ((mZ ? (mZ) : (Boolean.logicalXor((Boolean.logicalAnd(mZ, mZ)), mZ))) ^ true); 101425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson for (int i1 = 2 - 1; i1 >= 0; i1--) { 102425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson { 103425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson int i2 = -1; while (++i2 < mArray.length) { 104425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mI = ((int) new Integer(((int) mD))); 105425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mI <<= (mI++); 106425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mZ = ((boolean) new Boolean(true)); 107425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mJ >>= (- (~ (lJ0++))); 108425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 109425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 110425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 111425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mI >>= (Integer.MIN_VALUE); 112425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 113425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mD *= (mC.x()); 114425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mI *= (Math.multiplyExact(61363273, (-1448306837 | mI))); 115425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } else { 116425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mZ = (mZ); 117425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson for (int i0 = 0; i0 < 2; i0++) { 118425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson for (int i1 = 2 - 1; i1 >= 0; i1--) { 119425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mArray[i0][i1][mArray.length - 1][i0][i1][1][i1] *= ((! mZ) ? -1041059197.0f : (mF / -1370212878.0f)); 120425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson lJ0 += (~ mJ); 121425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson for (int i2 = 2 - 1; i2 >= 0; i2--) { 122425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson { 123425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson int i3 = -1; while (++i3 < 2) { 124425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson return ((mZ) ? ((float) new Float((--mF))) : (++mF)); 125425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 126425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 127425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mI = (--mI); 128425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 129425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mJ &= (--lJ0); 130425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 131425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson if (((mZ) ^ false)) { 132425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mI >>>= (mC.c()); 133425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } else { 134425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson if (((+ (Long.reverseBytes(mJ))) >= 1517367973L)) { 135425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mI <<= (mI--); 136425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } else { 137425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson { 138425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson int i1 = 0; do { 139425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mZ |= (true && true); 140425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson if ((Boolean.logicalAnd(mZ, (! true)))) { 141425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mI %= ((mI ^ mI) ^ mI); 142425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } else { 143425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mI = (mI << mI); 144425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 145425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } while (++i1 < 2); 146425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 147425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 148425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 149425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 150425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson switch (mArray.length - 1) { 151425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson case 1: { 152425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mF *= (-1336843462.0f - ((804606312.0f * 1709271074.0f) - (Float.MIN_NORMAL))); 153425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson break; 154425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 155425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson default: { 156425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mF /= (mF--); 157425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson break; 158425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 159425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 160425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 161425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson lJ0 >>>= (lJ0 | mJ); 162425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 163425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson mJ %= ( (-1288553765 ^ mI)); 164425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson return (--mArray[1][0][1][1][0][1][0]); 165425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 166425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 167425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson public static void main(String[] args) { 168425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson Test t = new Test(); 169425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson float r = -985685074.0f; 170425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson try { 171425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson r = t.testMethod(); 172425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } catch (Exception e) { 173425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson // Arithmetic, null pointer, index out of bounds, etc. 174425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson System.out.println("An exception was caught."); 175425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 176425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson System.out.println("r = " + r); 177425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson System.out.println("mZ = " + t.mZ); 178425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson System.out.println("mI = " + t.mI); 179425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson System.out.println("mJ = " + t.mJ); 180425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson System.out.println("mF = " + t.mF); 181425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson System.out.println("mD = " + t.mD); 182425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson System.out.println("mArray = " + Arrays.deepToString(t.mArray)); 183425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson } 184425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson} 185425eee3d735012dacd457e8fbb3fae7175fbf8c8Orion Hodson 186