From 4e02b3c5250405a65beae8908f2909352e27a947 Mon Sep 17 00:00:00 2001 From: Jeremy Dubreil Date: Tue, 31 Jan 2017 13:37:09 -0800 Subject: [PATCH] [infer][tests] rescue ghost file for Cursor NPE test Reviewed By: sblackshear Differential Revision: D4489558 fbshipit-source-id: b6c9bba --- infer/tests/build_systems/ant/issues.exp | 4 ++++ infer/tests/build_systems/buck/issues.exp | 4 ++++ .../codetoanalyze/java/{errors => infer}/CursorNPEs.java | 4 +--- infer/tests/codetoanalyze/java/infer/issues.exp | 5 +++++ 4 files changed, 14 insertions(+), 3 deletions(-) rename infer/tests/codetoanalyze/java/{errors => infer}/CursorNPEs.java (98%) diff --git a/infer/tests/build_systems/ant/issues.exp b/infer/tests/build_systems/ant/issues.exp index 9339a4b69..fdfe62cad 100644 --- a/infer/tests/build_systems/ant/issues.exp +++ b/infer/tests/build_systems/ant/issues.exp @@ -22,6 +22,10 @@ codetoanalyze/java/infer/CursorLeaks.java, int CursorLeaks.getBucketCountNotClos codetoanalyze/java/infer/CursorLeaks.java, int CursorLeaks.getImageCountHelperNotClosed(String), 13, RESOURCE_LEAK, [start of procedure getImageCountHelperNotClosed(...),Taking true branch] codetoanalyze/java/infer/CursorLeaks.java, void CursorLeaks.loadPrefsFromContentProviderNotClosed(), 11, RESOURCE_LEAK, [start of procedure loadPrefsFromContentProviderNotClosed(),Taking false branch,Taking true branch] codetoanalyze/java/infer/CursorLeaks.java, void CursorLeaks.queryUVMLegacyDbNotClosed(), 4, RESOURCE_LEAK, [start of procedure queryUVMLegacyDbNotClosed(),Taking true branch] +codetoanalyze/java/infer/CursorNPEs.java, int CursorNPEs.cursorFromDownloadManagerNPE(DownloadManager), 5, NULL_DEREFERENCE, [start of procedure cursorFromDownloadManagerNPE(...)] +codetoanalyze/java/infer/CursorNPEs.java, int CursorNPEs.cursorNotClosed(SQLiteDatabase), 7, RESOURCE_LEAK, [start of procedure cursorNotClosed(...),Taking false branch] +codetoanalyze/java/infer/CursorNPEs.java, void CursorNPEs.cursorFromContentResolverNPE(String), 12, NULL_DEREFERENCE, [start of procedure cursorFromContentResolverNPE(...)] +codetoanalyze/java/infer/CursorNPEs.java, void CursorNPEs.cursorFromMediaNPE(), 3, NULL_DEREFERENCE, [start of procedure cursorFromMediaNPE()] codetoanalyze/java/infer/DynamicDispatch.java, void DynamicDispatch.dynamicDispatchCallsWrapperWithSubtypeBad(), 3, NULL_DEREFERENCE, [start of procedure dynamicDispatchCallsWrapperWithSubtypeBad(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure dynamicDispatchWrapperFoo(...),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo(),return from a call to Object DynamicDispatch.dynamicDispatchWrapperFoo(DynamicDispatch$Subtype)] codetoanalyze/java/infer/DynamicDispatch.java, void DynamicDispatch.dynamicDispatchCallsWrapperWithSupertypeBad(), 3, NULL_DEREFERENCE, [start of procedure dynamicDispatchCallsWrapperWithSupertypeBad(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),start of procedure dynamicDispatchWrapperBar(...),start of procedure bar(),return from a call to Object DynamicDispatch$Supertype.bar(),return from a call to Object DynamicDispatch.dynamicDispatchWrapperBar(DynamicDispatch$Supertype)] codetoanalyze/java/infer/DynamicDispatch.java, void DynamicDispatch.dynamicDispatchShouldNotCauseFalseNegativeEasy(), 3, NULL_DEREFERENCE, [start of procedure dynamicDispatchShouldNotCauseFalseNegativeEasy(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo()] diff --git a/infer/tests/build_systems/buck/issues.exp b/infer/tests/build_systems/buck/issues.exp index 4e90894cd..e9ecf2013 100644 --- a/infer/tests/build_systems/buck/issues.exp +++ b/infer/tests/build_systems/buck/issues.exp @@ -22,6 +22,10 @@ infer/tests/codetoanalyze/java/infer/CursorLeaks.java, int CursorLeaks.getBucket infer/tests/codetoanalyze/java/infer/CursorLeaks.java, int CursorLeaks.getImageCountHelperNotClosed(String), 13, RESOURCE_LEAK, [start of procedure getImageCountHelperNotClosed(...),Taking true branch] infer/tests/codetoanalyze/java/infer/CursorLeaks.java, void CursorLeaks.loadPrefsFromContentProviderNotClosed(), 11, RESOURCE_LEAK, [start of procedure loadPrefsFromContentProviderNotClosed(),Taking false branch,Taking true branch] infer/tests/codetoanalyze/java/infer/CursorLeaks.java, void CursorLeaks.queryUVMLegacyDbNotClosed(), 4, RESOURCE_LEAK, [start of procedure queryUVMLegacyDbNotClosed(),Taking true branch] +infer/tests/codetoanalyze/java/infer/CursorNPEs.java, int CursorNPEs.cursorFromDownloadManagerNPE(DownloadManager), 5, NULL_DEREFERENCE, [start of procedure cursorFromDownloadManagerNPE(...)] +infer/tests/codetoanalyze/java/infer/CursorNPEs.java, int CursorNPEs.cursorNotClosed(SQLiteDatabase), 7, RESOURCE_LEAK, [start of procedure cursorNotClosed(...),Taking false branch] +infer/tests/codetoanalyze/java/infer/CursorNPEs.java, void CursorNPEs.cursorFromContentResolverNPE(String), 12, NULL_DEREFERENCE, [start of procedure cursorFromContentResolverNPE(...)] +infer/tests/codetoanalyze/java/infer/CursorNPEs.java, void CursorNPEs.cursorFromMediaNPE(), 3, NULL_DEREFERENCE, [start of procedure cursorFromMediaNPE()] infer/tests/codetoanalyze/java/infer/DynamicDispatch.java, void DynamicDispatch.dynamicDispatchCallsWrapperWithSubtypeBad(), 3, NULL_DEREFERENCE, [start of procedure dynamicDispatchCallsWrapperWithSubtypeBad(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure dynamicDispatchWrapperFoo(...),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo(),return from a call to Object DynamicDispatch.dynamicDispatchWrapperFoo(DynamicDispatch$Subtype)] infer/tests/codetoanalyze/java/infer/DynamicDispatch.java, void DynamicDispatch.dynamicDispatchCallsWrapperWithSupertypeBad(), 3, NULL_DEREFERENCE, [start of procedure dynamicDispatchCallsWrapperWithSupertypeBad(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),start of procedure dynamicDispatchWrapperBar(...),start of procedure bar(),return from a call to Object DynamicDispatch$Supertype.bar(),return from a call to Object DynamicDispatch.dynamicDispatchWrapperBar(DynamicDispatch$Supertype)] infer/tests/codetoanalyze/java/infer/DynamicDispatch.java, void DynamicDispatch.dynamicDispatchShouldNotCauseFalseNegativeEasy(), 3, NULL_DEREFERENCE, [start of procedure dynamicDispatchShouldNotCauseFalseNegativeEasy(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo()] diff --git a/infer/tests/codetoanalyze/java/errors/CursorNPEs.java b/infer/tests/codetoanalyze/java/infer/CursorNPEs.java similarity index 98% rename from infer/tests/codetoanalyze/java/errors/CursorNPEs.java rename to infer/tests/codetoanalyze/java/infer/CursorNPEs.java index 8ec10f4af..65c658685 100644 --- a/infer/tests/codetoanalyze/java/errors/CursorNPEs.java +++ b/infer/tests/codetoanalyze/java/infer/CursorNPEs.java @@ -20,7 +20,7 @@ import android.database.sqlite.SQLiteQueryBuilder; import android.os.RemoteException; import android.provider.MediaStore; -public class CursorLeaks { +public class CursorNPEs { public int cursorNPEfromQuery(SQLiteDatabase sqLiteDatabase) { Cursor cursor = sqLiteDatabase.query( @@ -67,7 +67,6 @@ public class CursorLeaks { Cursor cursor = MediaStore.Images.Media.query( mContentResolver, null, null, null, null, null); cursor.close(); - } } private void cursorFromSQLiteQueryBuilderNPE() { @@ -83,7 +82,6 @@ public class CursorLeaks { try { cursor = downloadManager.query(query); return cursor.getColumnIndex(DownloadManager.COLUMN_STATUS); - } } finally { if (cursor != null) cursor.close(); } diff --git a/infer/tests/codetoanalyze/java/infer/issues.exp b/infer/tests/codetoanalyze/java/infer/issues.exp index 8f062d82b..1c86f29ad 100644 --- a/infer/tests/codetoanalyze/java/infer/issues.exp +++ b/infer/tests/codetoanalyze/java/infer/issues.exp @@ -46,6 +46,11 @@ codetoanalyze/java/infer/CursorLeaks.java, void CursorLeaks.loadPrefsFromContent codetoanalyze/java/infer/CursorLeaks.java, void CursorLeaks.loadPrefsFromContentProviderNotClosed(), 3, NULL_TEST_AFTER_DEREFERENCE, [start of procedure loadPrefsFromContentProviderNotClosed(),Taking false branch] codetoanalyze/java/infer/CursorLeaks.java, void CursorLeaks.loadPrefsFromContentProviderNotClosed(), 11, RESOURCE_LEAK, [start of procedure loadPrefsFromContentProviderNotClosed(),Taking false branch,Taking true branch] codetoanalyze/java/infer/CursorLeaks.java, void CursorLeaks.queryUVMLegacyDbNotClosed(), 4, RESOURCE_LEAK, [start of procedure queryUVMLegacyDbNotClosed(),Taking true branch] +codetoanalyze/java/infer/CursorNPEs.java, int CursorNPEs.cursorFromDownloadManagerNPE(DownloadManager), 5, NULL_DEREFERENCE, [start of procedure cursorFromDownloadManagerNPE(...)] +codetoanalyze/java/infer/CursorNPEs.java, int CursorNPEs.cursorNotClosed(SQLiteDatabase), 7, RESOURCE_LEAK, [start of procedure cursorNotClosed(...),Taking false branch] +codetoanalyze/java/infer/CursorNPEs.java, void CursorNPEs.cursorFromContentProviderClient(), 3, NULL_TEST_AFTER_DEREFERENCE, [start of procedure cursorFromContentProviderClient(),Taking false branch] +codetoanalyze/java/infer/CursorNPEs.java, void CursorNPEs.cursorFromContentResolverNPE(String), 12, NULL_DEREFERENCE, [start of procedure cursorFromContentResolverNPE(...)] +codetoanalyze/java/infer/CursorNPEs.java, void CursorNPEs.cursorFromMediaNPE(), 3, NULL_DEREFERENCE, [start of procedure cursorFromMediaNPE()] codetoanalyze/java/infer/DivideByZero.java, int DivideByZero.callDivideByZeroInterProc(), 1, DIVIDE_BY_ZERO, [start of procedure callDivideByZeroInterProc(),start of procedure divideByZeroInterProc(...)] codetoanalyze/java/infer/DivideByZero.java, int DivideByZero.divByZeroLocal(String), 3, DIVIDE_BY_ZERO, [start of procedure divByZeroLocal(...)] codetoanalyze/java/infer/DivideByZero.java, int DivideByZero.divideByZeroWithStaticField(), 2, DIVIDE_BY_ZERO, [start of procedure divideByZeroWithStaticField(),start of procedure setXToZero(),return from a call to void DivideByZero.setXToZero(),start of procedure divideByZeroInterProc(...)]