提交 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
@Override
public hudson.tasks.test.TestResult findCorrespondingResult(String id) {
String myID = safe(getName());
String caseName = id;
int base = id.indexOf(myID);
String caseName;
if (base > 0) {
int caseNameStart = base + myID.length() + 1;
caseName = id.substring(caseNameStart);
} else {
caseName = id;
}
if (id.length() > caseNameStart) {
caseName = id.substring(caseNameStart);
}
}
CaseResult child = getCaseResult(caseName);
if (child != null) {
return child;
}
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.
先完成此消息的编辑!
想要评论请 注册