opends-fixes-diff.txt revision 24d6db06810f2ea747f6dff60d483e4fca3aaa13
0N/AIndex: src/main/org/testng/internal/MethodInheritance.java
4756N/A===================================================================
0N/A--- src/main/org/testng/internal/MethodInheritance.java (revision 502)
0N/A+++ src/main/org/testng/internal/MethodInheritance.java (working copy)
0N/A@@ -102,27 +102,19 @@
0N/A // Sort them
2362N/A sortMethodsByInheritance(l, baseClassToChild);
0N/A
2362N/A- // Set methodDependedUpon accordingly
0N/A- if (baseClassToChild) {
0N/A- for (int i = 1; i < l.size(); i++) {
0N/A- ITestNGMethod m1 = l.get(i - 1);
0N/A- ITestNGMethod m2 = l.get(i);
0N/A+ for (int i = 0; i < l.size(); i++) {
0N/A+ ITestNGMethod m1 = l.get(i);
0N/A+ // Look for any method further down that is a subclass of this one.
0N/A+ // This handles the case when there are multiple BeforeClass/AfterClass
0N/A+ // methods in the same class.
0N/A+ for (int j = i + 1; j < l.size(); j++) {
0N/A+ ITestNGMethod m2 = l.get(j);
2362N/A if (! equalsEffectiveClass(m1, m2)) {
2362N/A Utils.log("MethodInheritance", 4, m2 + " DEPENDS ON " + m1);
2362N/A m2.addMethodDependedUpon(MethodHelper.calculateMethodCanonicalName(m1));
0N/A }
0N/A }
0N/A }
0N/A- else {
0N/A- for (int i = 0; i < l.size() - 1; i++) {
0N/A- ITestNGMethod m1 = l.get(i);
0N/A- ITestNGMethod m2 = l.get(i + 1);
0N/A- if (! equalsEffectiveClass(m1, m2)) {
0N/A- m2.addMethodDependedUpon(MethodHelper.calculateMethodCanonicalName(m1));
0N/A- Utils.log("MethodInheritance", 4, m2 + " DEPENDS ON " + m1);
0N/A- }
0N/A- }
0N/A- }
0N/A }
585N/A }
0N/A }
585N/AIndex: src/main/org/testng/TestRunner.java
0N/A===================================================================
0N/A--- src/main/org/testng/TestRunner.java (revision 502)
0N/A+++ src/main/org/testng/TestRunner.java (working copy)
0N/A@@ -536,9 +536,13 @@
0N/A List<ITestNGMethod> parallelList= new ArrayList<ITestNGMethod>();
0N/A
0N/A computeTestLists(sequentialList, parallelList);
0N/A+
0N/A+ int sequentialSize = 0;
0N/A+ for (List<ITestNGMethod> methodList: sequentialList) {
0N/A+ sequentialSize += methodList.size();
0N/A+ }
0N/A+ log(3, "Found " + (sequentialSize + parallelList.size()) + " applicable methods");
0N/A
0N/A- log(3, "Found " + (sequentialList.size() + parallelList.size()) + " applicable methods");
0N/A-
0N/A //
0N/A // Create the workers
0N/A //
0N/A@@ -753,7 +757,9 @@
0N/A findAnnotation(cls, org.testng.internal.annotations.ITest.class);
0N/A if (test != null) {
0N/A if (test.getSequential()) {
0N/A- String className = cls.getName();
0N/A+ // This must not be cls.getName() because that will sort methods in a super class together
0N/A+ // instead of with the instance class itself (i.e. the subclass).
0N/A+ String className = tm.getTestClass().getRealClass().getName();
0N/A List<ITestNGMethod> list = sequentialAttributeList.get(className);
0N/A if (list == null) {
0N/A list = new ArrayList<ITestNGMethod>();
0N/A