private void runTest( String testname, String zipfile_path, String proj_path, String arg_file_paths[]) throws CoreException { LogHandle log = LogFactory.getLogHandle(testname); CoreReleaseTests.clearErrors(); BundleUtils utils = new BundleUtils(SVCoreTestsPlugin.getDefault().getBundle()); cleanupWorkspace(); // Create a new project for the File test_dir = new File(fTmpDir, testname); File db_dir = new File(fTmpDir, "db"); if (test_dir.exists()) { assertTrue(test_dir.delete()); } assertTrue(test_dir.mkdirs()); if (db_dir.exists()) { assertTrue(db_dir.delete()); } assertTrue(db_dir.mkdirs()); utils.unpackBundleZipToFS(zipfile_path, test_dir); File project_path = new File(test_dir, proj_path); fProject = TestUtils.createProject(project_path.getName(), project_path); // Setup appropriate project settings SVDBProjectManager p_mgr = SVCorePlugin.getDefault().getProjMgr(); SVDBProjectData p_data = p_mgr.getProjectData(fProject); // Add an argument-file paths SVProjectFileWrapper p_wrapper = p_data.getProjectFileWrapper().duplicate(); if (arg_file_paths != null) { for (String arg_file : arg_file_paths) { p_wrapper.getArgFilePaths().add(new SVDBPath(arg_file)); p_wrapper.getArgFilePaths().add(new SVDBPath(arg_file)); } } p_data.setProjectFileWrapper(p_wrapper); SVDBIndexCollection project_index = p_data.getProjectIndexMgr(); assertNoErrors(log, project_index); // force index loading project_index.loadIndex(new NullProgressMonitor()); IndexTestUtils.assertNoErrWarn(log, project_index); for (Exception e : CoreReleaseTests.getErrors()) { System.out.println("TEST: " + getName() + " " + e.getMessage()); } assertEquals(0, CoreReleaseTests.getErrors().size()); project_index.dispose(); LogFactory.removeLogHandle(log); }
public void testRemoveErrorIndex() { SVCorePlugin.getDefault().enableDebug(false); List<SVDBMarker> markers; IProject p = TestUtils.createProject("error_index"); addProject(p); String error_argfile = "missing_file1.sv\n" + "subdir/missing_file2.sv\n"; String okay_argfile = "file1.sv\n"; String file1_sv = "`include \"missing_file.svh\"\n" + "module m1;\n" + "endmodule\n"; TestUtils.copy(error_argfile, p.getFile("error_argfile.f")); TestUtils.copy(okay_argfile, p.getFile("okay_argfile.f")); TestUtils.copy(file1_sv, p.getFile("file1.sv")); SVDBProjectData pdata = fProjMgr.getProjectData(p); SVDBIndexCollection p_index = pdata.getProjectIndexMgr(); SVProjectFileWrapper w; w = pdata.getProjectFileWrapper(); w.addArgFilePath("${workspace_loc}/error_index/error_argfile.f"); pdata.setProjectFileWrapper(w); CoreReleaseTests.clearErrors(); p_index.rebuildIndex(new NullProgressMonitor()); p_index.loadIndex(new NullProgressMonitor()); // Ensure that we see errors // assertTrue(CoreReleaseTests.getErrors().size() > 0); markers = p_index.getMarkers("${workspace_loc}/error_index/error_argfile.f"); assertNotNull(markers); assertTrue((markers.size() > 0)); // Now, update the index settings and ensure that // no errors are seen CoreReleaseTests.clearErrors(); w = pdata.getProjectFileWrapper(); w.getArgFilePaths().clear(); w.addArgFilePath("${workspace_loc}/error_index/okay_argfile.f"); pdata.setProjectFileWrapper(w); // p_index.rebuildIndex(new NullProgressMonitor()); fIndexRgy.rebuildIndex(new NullProgressMonitor(), p.getName()); p_index.loadIndex(new NullProgressMonitor()); assertEquals(0, CoreReleaseTests.getErrors().size()); }
public void testRemoveErrorIndex_2() throws CoreException { String testname = "testRemoveErrorIndex_2"; LogHandle log = LogFactory.getLogHandle(testname); SVCorePlugin.getDefault().enableDebug(false); IProject p = TestUtils.createProject("error_index"); String okay_argfile = "file1.sv\n"; String file1_sv = // "`include \"missing_file.svh\"\n" + "module m1;\n" + "endmodule\n"; String file2_sv = // "`include \"missing_file.svh\"\n" + "module m2;\n" + "endmodule\n"; TestUtils.copy(okay_argfile, p.getFile("okay_argfile.f")); TestUtils.copy(file1_sv, p.getFile("file1.sv")); p.getFolder("subdir").create(true, true, new NullProgressMonitor()); TestUtils.copy(file2_sv, p.getFile("subdir/file2.sv")); SVDBProjectData pdata = fProjMgr.getProjectData(p); SVDBIndexCollection p_index = pdata.getProjectIndexMgr(); SVProjectFileWrapper w; w = pdata.getProjectFileWrapper(); w.getLibraryPaths().add(new SVDBPath("c:\\foo\\bar\\missing\\dir")); pdata.setProjectFileWrapper(w); CoreReleaseTests.clearErrors(); p_index.rebuildIndex(new NullProgressMonitor()); p_index.loadIndex(new NullProgressMonitor()); // Ensure that we see errors assertTrue(CoreReleaseTests.getErrors().size() > 0); // Now, update the index settings and ensure that // no errors are seen CoreReleaseTests.clearErrors(); w = pdata.getProjectFileWrapper(); w.getLibraryPaths().clear(); w.getArgFilePaths().clear(); w.addArgFilePath("${workspace_loc}/error_index/okay_argfile.f"); pdata.setProjectFileWrapper(w); fIndexRgy.rebuildIndex(new NullProgressMonitor(), p.getName()); p_index.loadIndex(new NullProgressMonitor()); assertEquals(0, CoreReleaseTests.getErrors().size()); for (ISVDBIndex i : fIndexRgy.getAllProjectLists()) { log.debug("Index: " + i.getBaseLocation()); } // Expect the project index plus the built-in index assertEquals(2, fIndexRgy.getAllProjectLists().size()); assertEquals(1, fIndexRgy.getProjectIndexList("error_index").size()); }