CTS/STS Add kernel pointer leak assertions
Usage:
assertNotKernelPointer(() -> {
return runPoc("myKernelLeakPoc")
}, getDevice() /* device to reboot if needed */);
Bug: 115528015
Test: as follows:
boolean pass = false;
assertNotKernelPointer(() -> {return "BFFFFFFF";}, null);
assertNotKernelPointer(() -> {return "bfffffff";}, null);
try {assertNotKernelPointer(() -> {return "C0000000";}, null);} catch (junit.framework.AssertionFailedError e){pass = true;} finally {assertTrue(pass); pass = false;}
try {assertNotKernelPointer(() -> {return "c0000000";}, null);} catch (junit.framework.AssertionFailedError e){pass = true;} finally {assertTrue(pass); pass = false;}
try {assertNotKernelPointer(() -> {return "C0000001";}, null);} catch (junit.framework.AssertionFailedError e){pass = true;} finally {assertTrue(pass); pass = false;}
try {assertNotKernelPointer(() -> {return "c0000001";}, null);} catch (junit.framework.AssertionFailedError e){pass = true;} finally {assertTrue(pass); pass = false;}
assertNotKernelPointer(() -> {return "BFFFFFFF fdjksal;";}, null);
assertNotKernelPointer(() -> {return "bfffffff fdjksal;";}, null);
try {assertNotKernelPointer(() -> {return "C0000000 fdsa";}, null);} catch (junit.framework.AssertionFailedError e){pass = true;} finally {assertTrue(pass); pass = false;}
try {assertNotKernelPointer(() -> {return "C0000001 fdsiaoe";}, null);} catch (junit.framework.AssertionFailedError e){pass = true;} finally {assertTrue(pass); pass = false;}
try {assertNotKernelPointer(() -> {return "ffff800000000000";}, null);} catch (junit.framework.AssertionFailedError e){pass = true;} finally {assertTrue(pass); pass = false;}
try {assertNotKernelPointer(() -> {return "FFFF800000000000";}, null);} catch (junit.framework.AssertionFailedError e){pass = true;} finally {assertTrue(pass); pass = false;}
assertNotKernelPointer(() -> {return "7fffffffffffffff";}, null);
assertNotKernelPointer(() -> {return "7FFFFFFFFFFFFFFF";}, null);
try {assertNotKernelPointer(() -> {return "ffff800000000001";}, null);} catch (junit.framework.AssertionFailedError e){pass = true;} finally {assertTrue(pass); pass = false;}
try {assertNotKernelPointer(() -> {return "FFFF800000000001";}, null);} catch (junit.framework.AssertionFailedError e){pass = true;} finally {assertTrue(pass); pass = false;}
assertNotKernelPointer(() -> {return "not a pointer at all";}, null);
assertNotKernelPointer(() -> {return "0";}, null);
assertNotKernelPointer(() -> {return "00000000";}, null);
assertNotKernelPointer(() -> {return "0000000000000000";}, null);
assertNotKernelPointer(() -> {return " (null)";}, null);
assertNotKernelPointer(() -> {return " (null)";}, null);
assertNotKernelPointer(() -> {return " (nil)";}, null);
assertNotKernelPointer(() -> {return " (nil)";}, null);
Change-Id: If6eba3457d543b24fcfb4429992a2fee573e0b3b
1 file changed