提交 029701ce 编写于 作者: C Christoph Kutzinski

Merge pull request #645 from thesam/issue15380

[FIXED JENKINS-15380]. Add some length checking before trying to substring names in ClassResult.
...@@ -80,20 +80,18 @@ public final class ClassResult extends TabulatedResult implements Comparable<Cla ...@@ -80,20 +80,18 @@ public final class ClassResult extends TabulatedResult implements Comparable<Cla
@Override @Override
public hudson.tasks.test.TestResult findCorrespondingResult(String id) { public hudson.tasks.test.TestResult findCorrespondingResult(String id) {
String myID = safe(getName()); String myID = safe(getName());
String caseName = id;
int base = id.indexOf(myID); int base = id.indexOf(myID);
String caseName;
if (base > 0) { if (base > 0) {
int caseNameStart = base + myID.length() + 1; int caseNameStart = base + myID.length() + 1;
caseName = id.substring(caseNameStart); if (id.length() > caseNameStart) {
} else { caseName = id.substring(caseNameStart);
caseName = id; }
} }
CaseResult child = getCaseResult(caseName); CaseResult child = getCaseResult(caseName);
if (child != null) { if (child != null) {
return child; return child;
} }
return null; return null;
} }
......
package hudson.tasks.junit;
import hudson.tasks.test.TestResult;
import junit.framework.TestCase;
public class ClassResultTest extends TestCase {
public void testFindCorrespondingResult() {
ClassResult classResult = new ClassResult(null, "com.example.ExampleTest");
CaseResult caseResult = new CaseResult(null, "testCase", null);
classResult.add(caseResult);
TestResult result = classResult.findCorrespondingResult("extraprefix.com.example.ExampleTest.testCase");
assertEquals(caseResult, result);
}
public void testFindCorrespondingResultWhereClassResultNameIsNotSubstring() {
ClassResult classResult = new ClassResult(null, "aaaa");
CaseResult caseResult = new CaseResult(null, "tc_bbbb", null);
classResult.add(caseResult);
TestResult result = classResult.findCorrespondingResult("tc_bbbb");
assertEquals(caseResult, result);
}
public void testFindCorrespondingResultWhereClassResultNameIsLastInCaseResultName() {
ClassResult classResult = new ClassResult(null, "aaaa");
CaseResult caseResult = new CaseResult(null, "tc_aaaa", null);
classResult.add(caseResult);
TestResult result = classResult.findCorrespondingResult("tc_aaaa");
assertEquals(caseResult, result);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册