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