From c597985175d465318b6036b1a0094da31f1d015b Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dgrove" Date: Wed, 16 May 2018 16:18:15 -0400 Subject: [PATCH 1/5] Partial implementation. --- .../autopsy/ingest/EmbeddedFileTest.java | 11 +--- .../autopsy/ingest/IngestFileFiltersTest.java | 23 +++------ .../EncryptionDetectionTest.java | 24 ++++----- .../autopsy/testutils/CaseUtils.java | 51 +++++++++++++------ 4 files changed, 57 insertions(+), 52 deletions(-) diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/ingest/EmbeddedFileTest.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/ingest/EmbeddedFileTest.java index 6af0ec81f9..1321d80213 100755 --- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/ingest/EmbeddedFileTest.java +++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/ingest/EmbeddedFileTest.java @@ -62,17 +62,10 @@ public class EmbeddedFileTest extends NbTestCase { @Override public void setUp() { - CaseUtils.createCase(CASE_NAME); + openCase = CaseUtils.createAsCurrentCase(CASE_NAME); ImageDSProcessor dataSourceProcessor = new ImageDSProcessor(); IngestUtils.addDataSource(dataSourceProcessor, IMAGE_PATH); - try { - openCase = Case.getCurrentCaseThrows(); - } catch (NoCurrentCaseException ex) { - Exceptions.printStackTrace(ex); - Assert.fail(ex); - } - IngestModuleTemplate embeddedTemplate = IngestUtils.getIngestModuleTemplate(new EmbeddedFileExtractorModuleFactory()); IngestModuleTemplate hashLookupTemplate = IngestUtils.getIngestModuleTemplate(new HashLookupModuleFactory()); @@ -91,7 +84,7 @@ public class EmbeddedFileTest extends NbTestCase { @Override public void tearDown() { - CaseUtils.closeCase(); + CaseUtils.closeCurrentCase(); } public void testEncryption() { diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/ingest/IngestFileFiltersTest.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/ingest/IngestFileFiltersTest.java index 7be3e4f794..8b99052295 100644 --- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/ingest/IngestFileFiltersTest.java +++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/ingest/IngestFileFiltersTest.java @@ -68,11 +68,11 @@ public class IngestFileFiltersTest extends NbTestCase { @Override public void tearDown() { - CaseUtils.closeCase(); + CaseUtils.closeCurrentCase(); } public void testBasicDir() { - CaseUtils.createCase("testBasicDir"); + Case currentCase = CaseUtils.createAsCurrentCase("testBasicDir"); ImageDSProcessor dataSourceProcessor = new ImageDSProcessor(); IngestUtils.addDataSource(dataSourceProcessor, IMAGE_PATH); @@ -82,7 +82,6 @@ public class IngestFileFiltersTest extends NbTestCase { FilesSet dirFilter = new FilesSet("Filter", "Filter to find all files in dir1.", false, true, rule); try { - Case currentCase = Case.getCurrentCase(); ArrayList templates = new ArrayList<>(); templates.add(IngestUtils.getIngestModuleTemplate(new FileTypeIdModuleFactory())); IngestJobSettings ingestJobSettings = new IngestJobSettings(IngestFileFiltersTest.class.getCanonicalName(), IngestJobSettings.IngestType.FILES_ONLY, templates, dirFilter); @@ -114,7 +113,7 @@ public class IngestFileFiltersTest extends NbTestCase { } public void testExtAndDirWithOneRule() { - CaseUtils.createCase("testExtAndDirWithOneRule"); + Case currentCase = CaseUtils.createAsCurrentCase("testExtAndDirWithOneRule"); ImageDSProcessor dataSourceProcessor = new ImageDSProcessor(); IngestUtils.addDataSource(dataSourceProcessor, IMAGE_PATH); @@ -124,7 +123,6 @@ public class IngestFileFiltersTest extends NbTestCase { FilesSet filesExtDirsFilter = new FilesSet("Filter", "Filter to find all jpg files in dir1.", false, true, rules); try { - Case currentCase = Case.getCurrentCase(); ArrayList templates = new ArrayList<>(); templates.add(IngestUtils.getIngestModuleTemplate(new FileTypeIdModuleFactory())); IngestJobSettings ingestJobSettings = new IngestJobSettings(IngestFileFiltersTest.class.getCanonicalName(), IngestJobSettings.IngestType.FILES_ONLY, templates, filesExtDirsFilter); @@ -149,7 +147,7 @@ public class IngestFileFiltersTest extends NbTestCase { } public void testExtAndDirWithTwoRules() { - CaseUtils.createCase("testExtAndDirWithTwoRules"); + Case currentCase = CaseUtils.createAsCurrentCase("testExtAndDirWithTwoRules"); ImageDSProcessor dataSourceProcessor = new ImageDSProcessor(); IngestUtils.addDataSource(dataSourceProcessor, IMAGE_PATH); @@ -160,7 +158,6 @@ public class IngestFileFiltersTest extends NbTestCase { FilesSet filesExtDirsFilter = new FilesSet("Filter", "Filter to find all files in dir1 and all files with jpg extention.", false, true, rules); try { - Case currentCase = Case.getCurrentCase(); ArrayList templates = new ArrayList<>(); templates.add(IngestUtils.getIngestModuleTemplate(new FileTypeIdModuleFactory())); IngestJobSettings ingestJobSettings = new IngestJobSettings(IngestFileFiltersTest.class.getCanonicalName(), IngestJobSettings.IngestType.FILES_ONLY, templates, filesExtDirsFilter); @@ -193,7 +190,7 @@ public class IngestFileFiltersTest extends NbTestCase { } public void testFullFileNameRule() { - CaseUtils.createCase("testFullFileNameRule"); + Case currentCase = CaseUtils.createAsCurrentCase("testFullFileNameRule"); ImageDSProcessor dataSourceProcessor = new ImageDSProcessor(); IngestUtils.addDataSource(dataSourceProcessor, IMAGE_PATH); @@ -203,7 +200,6 @@ public class IngestFileFiltersTest extends NbTestCase { FilesSet fullNameFilter = new FilesSet("Filter", "Filter to find file.docx.", false, true, rules); try { - Case currentCase = Case.getCurrentCase(); ArrayList templates = new ArrayList<>(); templates.add(IngestUtils.getIngestModuleTemplate(new FileTypeIdModuleFactory())); IngestJobSettings ingestJobSettings = new IngestJobSettings(IngestFileFiltersTest.class.getCanonicalName(), IngestJobSettings.IngestType.FILES_ONLY, templates, fullNameFilter); @@ -228,7 +224,7 @@ public class IngestFileFiltersTest extends NbTestCase { } public void testCarvingWithExtRuleAndUnallocSpace() { - CaseUtils.createCase("testCarvingWithExtRuleAndUnallocSpace"); + Case currentCase = CaseUtils.createAsCurrentCase("testCarvingWithExtRuleAndUnallocSpace"); ImageDSProcessor dataSourceProcessor = new ImageDSProcessor(); IngestUtils.addDataSource(dataSourceProcessor, IMAGE_PATH); @@ -240,7 +236,6 @@ public class IngestFileFiltersTest extends NbTestCase { FilesSet extensionFilter = new FilesSet("Filter", "Filter to files with .jpg and .gif extension.", false, false, rules); try { - Case currentCase = Case.getCurrentCase(); ArrayList templates = new ArrayList<>(); templates.add(IngestUtils.getIngestModuleTemplate(new FileTypeIdModuleFactory())); templates.add(IngestUtils.getIngestModuleTemplate(new PhotoRecCarverIngestModuleFactory())); @@ -276,7 +271,7 @@ public class IngestFileFiltersTest extends NbTestCase { } public void testCarvingNoUnallocatedSpace() { - CaseUtils.createCase("testCarvingNoUnallocatedSpace"); + Case currentCase = CaseUtils.createAsCurrentCase("testCarvingNoUnallocatedSpace"); ImageDSProcessor dataSourceProcessor = new ImageDSProcessor(); IngestUtils.addDataSource(dataSourceProcessor, IMAGE_PATH); @@ -288,7 +283,6 @@ public class IngestFileFiltersTest extends NbTestCase { FilesSet extensionFilter = new FilesSet("Filter", "Filter to files with .jpg and .gif extension.", false, true, rules); try { - Case currentCase = Case.getCurrentCase(); ArrayList templates = new ArrayList<>(); templates.add(IngestUtils.getIngestModuleTemplate(new FileTypeIdModuleFactory())); templates.add(IngestUtils.getIngestModuleTemplate(new PhotoRecCarverIngestModuleFactory())); @@ -309,7 +303,7 @@ public class IngestFileFiltersTest extends NbTestCase { } public void testEmbeddedModule() { - CaseUtils.createCase("testEmbeddedModule"); + Case currentCase = CaseUtils.createAsCurrentCase("testEmbeddedModule"); LocalFilesDSProcessor dataSourceProcessor = new LocalFilesDSProcessor(); IngestUtils.addDataSource(dataSourceProcessor, ZIPFILE_PATH); @@ -322,7 +316,6 @@ public class IngestFileFiltersTest extends NbTestCase { FilesSet embeddedFilter = new FilesSet("Filter", "Filter to files with .jpg extension.", false, false, rules); try { - Case currentCase = Case.getCurrentCase(); ArrayList templates = new ArrayList<>(); templates.add(IngestUtils.getIngestModuleTemplate(new FileTypeIdModuleFactory())); templates.add(IngestUtils.getIngestModuleTemplate(new EmbeddedFileExtractorModuleFactory())); diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/modules/encryptiondetection/EncryptionDetectionTest.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/modules/encryptiondetection/EncryptionDetectionTest.java index cd55b16f82..726a0e5439 100755 --- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/modules/encryptiondetection/EncryptionDetectionTest.java +++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/modules/encryptiondetection/EncryptionDetectionTest.java @@ -18,6 +18,7 @@ */ package org.sleuthkit.autopsy.modules.encryptiondetection; +import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; @@ -78,7 +79,11 @@ public class EncryptionDetectionTest extends NbTestCase { @Override public void tearDown() { - CaseUtils.closeCase(); + File keepCaseData = new File(".keepCaseData"); + if (keepCaseData.exists()) { + System.out.println("!"); + } + CaseUtils.closeCurrentCase(); } /** @@ -86,10 +91,9 @@ public class EncryptionDetectionTest extends NbTestCase { */ public void testBitlockerEncryption() { try { - CaseUtils.createCase(BITLOCKER_CASE_NAME); + Case openCase = CaseUtils.createAsCurrentCase(BITLOCKER_CASE_NAME); ImageDSProcessor dataSourceProcessor = new ImageDSProcessor(); IngestUtils.addDataSource(dataSourceProcessor, BITLOCKER_IMAGE_PATH); - Case openCase = Case.getCurrentCaseThrows(); /* * Create ingest job settings. @@ -146,7 +150,7 @@ public class EncryptionDetectionTest extends NbTestCase { errorMessage = "Expected to find 'vol2', but no such volume exists."; assertEquals(errorMessage, true, vol2Found); - } catch (NoCurrentCaseException | TskCoreException ex) { + } catch (TskCoreException ex) { Exceptions.printStackTrace(ex); Assert.fail(ex); } @@ -157,13 +161,10 @@ public class EncryptionDetectionTest extends NbTestCase { */ public void testPasswordProtection() { try { - CaseUtils.createCase(PASSWORD_DETECTION_CASE_NAME); - + Case openCase = CaseUtils.createAsCurrentCase(PASSWORD_DETECTION_CASE_NAME); ImageDSProcessor dataSourceProcessor = new ImageDSProcessor(); IngestUtils.addDataSource(dataSourceProcessor, PASSWORD_DETECTION_IMAGE_PATH); - Case openCase = Case.getCurrentCaseThrows(); - /* * Create ingest job settings. */ @@ -235,7 +236,7 @@ public class EncryptionDetectionTest extends NbTestCase { } } } - } catch (NoCurrentCaseException | TskCoreException ex) { + } catch (TskCoreException ex) { Exceptions.printStackTrace(ex); Assert.fail(ex); } @@ -256,11 +257,10 @@ public class EncryptionDetectionTest extends NbTestCase { */ public void testVeraCryptSupport() { try { - CaseUtils.createCase(VERACRYPT_DETECTION_CASE_NAME); + Case openCase = CaseUtils.createAsCurrentCase(VERACRYPT_DETECTION_CASE_NAME); ImageDSProcessor dataSourceProcessor = new ImageDSProcessor(); IngestUtils.addDataSource(dataSourceProcessor, VERACRYPT_DETECTION_IMAGE_PATH); - Case openCase = Case.getCurrentCaseThrows(); ArrayList templates = new ArrayList<>(); templates.add(IngestUtils.getIngestModuleTemplate(new EncryptionDetectionModuleFactory())); //image includes an encrypted container file with size greater than 5 mb so default settings detect it @@ -289,7 +289,7 @@ public class EncryptionDetectionTest extends NbTestCase { numberOfEncryptedContainers += file.getArtifacts(BlackboardArtifact.ARTIFACT_TYPE.TSK_ENCRYPTION_SUSPECTED).size(); } assertEquals("Encrypted Container file should have one encyption suspected artifact", 1, numberOfEncryptedContainers); - } catch (NoCurrentCaseException | TskCoreException ex) { + } catch (TskCoreException ex) { Exceptions.printStackTrace(ex); Assert.fail(ex); } diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java index 17b0c2168b..7e0a9f9799 100755 --- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java +++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java @@ -30,6 +30,7 @@ import org.python.icu.impl.Assert; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.CaseActionException; import org.sleuthkit.autopsy.casemodule.CaseDetails; +import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException; /** * Class with common methods for testing related to the creation and elimination @@ -40,9 +41,12 @@ public final class CaseUtils { /** * Create a case case directory and case for the given case name. * - * @param caseName the name for the case and case directory to have + * @param caseName The name for the case and case directory to have + * + * @return The new case */ - public static void createCase(String caseName) { + public static Case createAsCurrentCase(String caseName) { + Case currentCase = null; //Make sure the case is starting with a clean state. So delete the case directory, if it exists. Path caseDirectoryPath = Paths.get(System.getProperty("java.io.tmpdir"), caseName); File caseDir = new File(caseDirectoryPath.toString()); @@ -59,27 +63,42 @@ public final class CaseUtils { try { Case.createAsCurrentCase(Case.CaseType.SINGLE_USER_CASE, caseDirectoryPath.toString(), new CaseDetails(caseName)); - } catch (CaseActionException ex) { + currentCase = Case.getCurrentCaseThrows(); + } catch (CaseActionException | NoCurrentCaseException ex) { Exceptions.printStackTrace(ex); Assert.fail(ex); } assertTrue(caseDir.exists()); + + return currentCase; } /** - * Close the current case, fails test if case was unable to be closed. + * Close and delete the current case. This will fail the test if the case + * was unable to be closed. + * + * Note: This method will skip case deletion if '//DLG:' exists in the class + * folder. */ - public static void closeCase() { + public static void closeCurrentCase() { try { - Case.closeCurrentCase(); - //Seems like we need some time to close the case, so file handler later can delete the case directory. - try { - Thread.sleep(20000); - } catch (Exception ex) { - + if (Case.isCaseOpen()) { + String currentCaseDirectory = Case.getCurrentCase().getCaseDirectory(); + Case.closeCurrentCase(); + File keepCaseData = new File(".keepCaseData"); + if (keepCaseData.exists()) { + deleteCaseDir(new File(currentCaseDirectory)); + } } - } catch (CaseActionException ex) { + System.gc(); + //DLG: //Seems like we need some time to close the case, so file handler later can delete the case directory. + //DLG: try { + //DLG: Thread.sleep(20000); + //DLG: } catch (Exception ex) { + //DLG: + //DLG: } + } catch (CaseActionException | IOException ex) { Exceptions.printStackTrace(ex); Assert.fail(ex); } @@ -89,9 +108,9 @@ public final class CaseUtils { * Delete the case directory if it exists, thows exception if unable to * delete case dir to allow the user to determine failure with. * - * @param caseDirectory the case directory to delete + * @param caseDirectory The case directory to delete * - * @throws IOException thrown if there was an problem deleting the case + * @throws IOException Thrown if there was an problem deleting the case * directory */ public static void deleteCaseDir(File caseDirectory) throws IOException { @@ -105,6 +124,6 @@ public final class CaseUtils { * Private constructor to prevent utility class instantiation. */ private CaseUtils() { - } - + } + } From fe1a278efacfe24e67792d86d522980f4babc0b8 Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dgrove" Date: Thu, 17 May 2018 00:55:10 -0400 Subject: [PATCH 2/5] CaseUtils API improved. --- .gitignore | 1 + .../EncryptionDetectionTest.java | 21 +++---------- .../autopsy/testutils/CaseUtils.java | 30 ++++++++++++------- 3 files changed, 25 insertions(+), 27 deletions(-) diff --git a/.gitignore b/.gitignore index 0f00c6c00f..cd8db0d520 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ /Core/dist/ /Core/nbproject/* /Core/test/qa-functional/data/* +/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/.preserve !/Core/nbproject/project.xml !/Core/nbproject/project.properties diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/modules/encryptiondetection/EncryptionDetectionTest.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/modules/encryptiondetection/EncryptionDetectionTest.java index 726a0e5439..bb590c0109 100755 --- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/modules/encryptiondetection/EncryptionDetectionTest.java +++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/modules/encryptiondetection/EncryptionDetectionTest.java @@ -18,7 +18,6 @@ */ package org.sleuthkit.autopsy.modules.encryptiondetection; -import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; @@ -30,7 +29,6 @@ import org.netbeans.junit.NbTestCase; import org.openide.util.Exceptions; import org.python.icu.impl.Assert; import org.sleuthkit.autopsy.casemodule.ImageDSProcessor; -import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException; import org.sleuthkit.autopsy.casemodule.services.FileManager; import org.sleuthkit.autopsy.ingest.IngestJobSettings; import org.sleuthkit.autopsy.ingest.IngestJobSettings.IngestType; @@ -51,18 +49,11 @@ import org.sleuthkit.datamodel.VolumeSystem; public class EncryptionDetectionTest extends NbTestCase { - private static final String BITLOCKER_CASE_NAME = "testBitlockerEncryption"; - private static final String PASSWORD_CASE_NAME = "testPasswordProtection"; - - private static final Path BITLOCKER_CASE_DIRECTORY_PATH = Paths.get(System.getProperty("java.io.tmpdir"), BITLOCKER_CASE_NAME); - private static final Path PASSWORD_CASE_DIRECTORY_PATH = Paths.get(System.getProperty("java.io.tmpdir"), PASSWORD_CASE_NAME); - - private final Path BITLOCKER_IMAGE_PATH = Paths.get(this.getDataDir().toString(), "encryption_detection_bitlocker_test.vhd"); - private final Path PASSWORD_IMAGE_PATH = Paths.get(this.getDataDir().toString(), "password_detection_test.img"); - + private static final String BITLOCKER_DETECTION_CASE_NAME = "testBitlockerEncryption"; private static final String PASSWORD_DETECTION_CASE_NAME = "PasswordDetectionTest"; private static final String VERACRYPT_DETECTION_CASE_NAME = "VeraCryptDetectionTest"; + private final Path BITLOCKER_DETECTION_IMAGE_PATH = Paths.get(this.getDataDir().toString(), "encryption_detection_bitlocker_test.vhd"); private final Path PASSWORD_DETECTION_IMAGE_PATH = Paths.get(this.getDataDir().toString(), "password_detection_test.img"); private final Path VERACRYPT_DETECTION_IMAGE_PATH = Paths.get(this.getDataDir().toString(), "veracrypt_detection_test.vhd"); @@ -79,10 +70,6 @@ public class EncryptionDetectionTest extends NbTestCase { @Override public void tearDown() { - File keepCaseData = new File(".keepCaseData"); - if (keepCaseData.exists()) { - System.out.println("!"); - } CaseUtils.closeCurrentCase(); } @@ -91,9 +78,9 @@ public class EncryptionDetectionTest extends NbTestCase { */ public void testBitlockerEncryption() { try { - Case openCase = CaseUtils.createAsCurrentCase(BITLOCKER_CASE_NAME); + Case openCase = CaseUtils.createAsCurrentCase(BITLOCKER_DETECTION_CASE_NAME); ImageDSProcessor dataSourceProcessor = new ImageDSProcessor(); - IngestUtils.addDataSource(dataSourceProcessor, BITLOCKER_IMAGE_PATH); + IngestUtils.addDataSource(dataSourceProcessor, BITLOCKER_DETECTION_IMAGE_PATH); /* * Create ingest job settings. diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java index 7e0a9f9799..f0f8783896 100755 --- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java +++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java @@ -22,6 +22,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.Scanner; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; import org.apache.commons.io.FileUtils; @@ -38,6 +39,8 @@ import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException; */ public final class CaseUtils { + private static final String PRESERVE_CASE_DATA_LIST_FILE_NAME = ".preserve"; + /** * Create a case case directory and case for the given case name. * @@ -78,26 +81,33 @@ public final class CaseUtils { * Close and delete the current case. This will fail the test if the case * was unable to be closed. * - * Note: This method will skip case deletion if '//DLG:' exists in the class - * folder. + * Note: This method will skip case deletion if '.preserve' exists with the + * functional test data and includes the current case path. */ public static void closeCurrentCase() { try { if (Case.isCaseOpen()) { String currentCaseDirectory = Case.getCurrentCase().getCaseDirectory(); Case.closeCurrentCase(); - File keepCaseData = new File(".keepCaseData"); - if (keepCaseData.exists()) { + + boolean deleteCase = true; + File preserveListFile = new File( + CaseUtils.class.getResource(PRESERVE_CASE_DATA_LIST_FILE_NAME).toExternalForm() + .substring(6)); // Use substring to remove "file:\" from path. + if (preserveListFile.exists()) { + Scanner scanner = new Scanner(preserveListFile); + while (scanner.hasNext()) { + if (scanner.nextLine().equalsIgnoreCase(currentCaseDirectory)) { + deleteCase = false; + break; + } + } + } + if (deleteCase) { deleteCaseDir(new File(currentCaseDirectory)); } } System.gc(); - //DLG: //Seems like we need some time to close the case, so file handler later can delete the case directory. - //DLG: try { - //DLG: Thread.sleep(20000); - //DLG: } catch (Exception ex) { - //DLG: - //DLG: } } catch (CaseActionException | IOException ex) { Exceptions.printStackTrace(ex); Assert.fail(ex); From ea73615a248723b0adee6f028607fd5d0b4d00eb Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dgrove" Date: Thu, 17 May 2018 01:02:16 -0400 Subject: [PATCH 3/5] Fixed documentation typo. --- .../src/org/sleuthkit/autopsy/testutils/CaseUtils.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java index f0f8783896..15024a44ae 100755 --- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java +++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java @@ -81,8 +81,9 @@ public final class CaseUtils { * Close and delete the current case. This will fail the test if the case * was unable to be closed. * - * Note: This method will skip case deletion if '.preserve' exists with the - * functional test data and includes the current case path. + * Note: This method will skip case deletion if '.preserve' exists in the + * 'org.sleuthkit.autopsy.testutils' package and includes the current case + * path. */ public static void closeCurrentCase() { try { From f741ceabe10d617bacea6eb5b5520659ef1cf6a1 Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dgrove" Date: Thu, 17 May 2018 01:05:30 -0400 Subject: [PATCH 4/5] Improved documentation. --- .../src/org/sleuthkit/autopsy/testutils/CaseUtils.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java index 15024a44ae..6f52c2a1f0 100755 --- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java +++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java @@ -91,6 +91,10 @@ public final class CaseUtils { String currentCaseDirectory = Case.getCurrentCase().getCaseDirectory(); Case.closeCurrentCase(); + /* + * Look for the current case directory in '.preserved'. If + * found, skip case deletion. + */ boolean deleteCase = true; File preserveListFile = new File( CaseUtils.class.getResource(PRESERVE_CASE_DATA_LIST_FILE_NAME).toExternalForm() From 7baa8a8176f31fc968aea868df7542040aae7630 Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dgrove" Date: Thu, 17 May 2018 02:19:24 -0400 Subject: [PATCH 5/5] Fixed issue affecting EmbeddedFileTest. --- .../src/org/sleuthkit/autopsy/testutils/CaseUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java index 6f52c2a1f0..2aa737e6c6 100755 --- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java +++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/testutils/CaseUtils.java @@ -90,6 +90,7 @@ public final class CaseUtils { if (Case.isCaseOpen()) { String currentCaseDirectory = Case.getCurrentCase().getCaseDirectory(); Case.closeCurrentCase(); + System.gc(); /* * Look for the current case directory in '.preserved'. If @@ -112,7 +113,6 @@ public final class CaseUtils { deleteCaseDir(new File(currentCaseDirectory)); } } - System.gc(); } catch (CaseActionException | IOException ex) { Exceptions.printStackTrace(ex); Assert.fail(ex);