qmtest 1.1.5 bug

Sven Lundblad svlu at enea.se
Mon Nov 25 15:22:13 UTC 2002


Hi,

There is a problem with tests that have dependencies to unknown tests in 
qmtest 1.1.5. According to the manual such dependencies shall be 
silently ignored but that is not the case if the test is run by "qmtest 
run", instead a KeyError exception is raised from the execution engine. 
Below is a patch that takes care of that exception.

Regards,
Sven Lundblad

diff -ru qmtest-1.1.5-BL237/lib/qm/qm/test/execution_engine.py 
qmtest-1.1.5/lib/qm/qm/test/execution_engine.py
--- qmtest-1.1.5-BL237/lib/qm/qm/test/execution_engine.py       Tue Oct 
  8 13:22:17 2002
+++ qmtest-1.1.5/lib/qm/qm/test/execution_engine.py     Wed Nov 20 
18:16:08 2002
@@ -163,15 +163,19 @@
          # Create the edges.
          for descriptor in self.__descriptors.values():
              prereqs = descriptor.GetPrerequisites()
-            if prereqs:
-                for (prereq_id, outcome) in prereqs.items():
+            added_prereq = 0
+            for (prereq_id, outcome) in prereqs.items():
+                try:
                      prereq_desc = self.__descriptors[prereq_id]
                      self.__descriptor_graph[prereq_desc][1] \
                          .append((descriptor, outcome))
-                self.__descriptor_graph[descriptor][0] = len(prereqs)
-            else:
-                # A node with no prerequisites is ready.
+                    added_prereq = added_prereq + 1
+                except KeyError:
+                    pass # Ignore any non existing dependent
+            if(added_prereq == 0):
                  self.__ready.append(descriptor)
+            else:
+                self.__descriptor_graph[descriptor][0] = len(prereqs)

          # Iterate until there are no more tests to run.
          self.__pending = self.__descriptors.values()




More information about the qmtest mailing list