From df967e4408be41553efe1e42ba44be65c3300d71 Mon Sep 17 00:00:00 2001 From: Alena Laskavaia Date: Wed, 30 Jun 2010 01:20:52 +0000 Subject: [PATCH] fixed tests - only tested problems should be turned on --- .../AssignmentInConditionCheckerTest.java | 11 ++++++++ .../checkers/CatchByReferenceTest.java | 6 +++++ .../StatementHasNoEffectCheckerTest.java | 6 +++++ .../cdt/codan/core/test/CheckerTestCase.java | 25 ++++++++++++++++++- 4 files changed, 47 insertions(+), 1 deletion(-) diff --git a/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/internal/checkers/AssignmentInConditionCheckerTest.java b/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/internal/checkers/AssignmentInConditionCheckerTest.java index e115373abad..ab72410151f 100644 --- a/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/internal/checkers/AssignmentInConditionCheckerTest.java +++ b/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/internal/checkers/AssignmentInConditionCheckerTest.java @@ -19,6 +19,17 @@ import org.eclipse.core.resources.IMarker; * */ public class AssignmentInConditionCheckerTest extends CheckerTestCase { + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.codan.core.test.CodanTestCase#setUp() + */ + @Override + public void setUp() throws Exception { + super.setUp(); + enableProblems("org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem"); + } + // main() { // int a=1,b=3; // if (a=b) b=4; // error here on line 3 diff --git a/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/internal/checkers/CatchByReferenceTest.java b/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/internal/checkers/CatchByReferenceTest.java index e12c616a86d..58237fa62c0 100644 --- a/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/internal/checkers/CatchByReferenceTest.java +++ b/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/internal/checkers/CatchByReferenceTest.java @@ -23,6 +23,12 @@ public class CatchByReferenceTest extends CheckerTestCase { return true; } + @Override + public void setUp() throws Exception { + super.setUp(); + enableProblems(CatchByReference.ER_ID); + } + // void main() { // try { // foo(); diff --git a/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/internal/checkers/StatementHasNoEffectCheckerTest.java b/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/internal/checkers/StatementHasNoEffectCheckerTest.java index da2be06386b..7d36d0e5db4 100644 --- a/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/internal/checkers/StatementHasNoEffectCheckerTest.java +++ b/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/internal/checkers/StatementHasNoEffectCheckerTest.java @@ -23,6 +23,12 @@ import org.eclipse.core.resources.IMarker; * */ public class StatementHasNoEffectCheckerTest extends CheckerTestCase { + @Override + public void setUp() throws Exception { + super.setUp(); + enableProblems(StatementHasNoEffectChecker.ER_ID); + } + // main() { // int a; // +a; // error here on line 3 diff --git a/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/test/CheckerTestCase.java b/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/test/CheckerTestCase.java index 113094821bc..f3241122e7a 100644 --- a/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/test/CheckerTestCase.java +++ b/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/test/CheckerTestCase.java @@ -15,9 +15,11 @@ import java.io.IOException; import org.eclipse.cdt.codan.core.CodanRuntime; import org.eclipse.cdt.codan.core.model.IProblem; +import org.eclipse.cdt.codan.core.model.IProblemProfile; import org.eclipse.cdt.codan.core.model.IProblemReporter; import org.eclipse.cdt.codan.core.param.IProblemPreference; import org.eclipse.cdt.codan.core.param.MapProblemPreference; +import org.eclipse.cdt.codan.internal.core.model.CodanProblem; import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.NullProgressMonitor; @@ -129,7 +131,8 @@ public class CheckerTestCase extends CodanTestCase { */ protected IProblemPreference getPreference(String problemId, String paramId) { IProblem problem = CodanRuntime.getInstance().getCheckersRegistry() - .getWorkspaceProfile().findProblem(problemId); + .getResourceProfile(cproject.getResource()) + .findProblem(problemId); IProblemPreference pref = ((MapProblemPreference) problem .getPreference()).getChildDescriptor(paramId); return pref; @@ -157,4 +160,24 @@ public class CheckerTestCase extends CodanTestCase { fail(e.getMessage()); } } + + protected void enableProblems(String... ids) { + IProblemProfile profile = CodanRuntime.getInstance() + .getCheckersRegistry().getWorkspaceProfile(); + IProblem[] problems = profile.getProblems(); + for (int i = 0; i < problems.length; i++) { + IProblem p = problems[i]; + for (int j = 0; j < ids.length; j++) { + String pid = ids[j]; + if (p.getId().equals(pid)) { + ((CodanProblem) p).setEnabled(true); + } else { + ((CodanProblem) p).setEnabled(false); + } + } + } + CodanRuntime.getInstance().getCheckersRegistry() + .updateProfile(cproject.getProject(), profile); + return; + } }