[llvm-commits] [zorg] r151091 - in /zorg/trunk/lnt/lnt/server: db/testsuitedb.py reporting/analysis.py ui/views.py

Daniel Dunbar daniel at zuster.org
Tue Feb 21 13:56:25 PST 2012


Author: ddunbar
Date: Tue Feb 21 15:56:25 2012
New Revision: 151091

URL: http://llvm.org/viewvc/llvm-project?rev=151091&view=rev
Log:
[lnt/v0.4] Change how missing sample values are reported.
 - Previously, we assumed a run would always report values for every subtest. We would default every field to being 0 which was a particularly bad idea.
 - We properly record such values as NULL.
 - Updated report and graph functionality to properly handle possibly-null cases. 
 - I'm not 100% sure I got all the instances, but hopefully they will show up in obvious ways (as opposed to, just, say reporting the wrong data… hmmm…).

Modified:
    zorg/trunk/lnt/lnt/server/db/testsuitedb.py
    zorg/trunk/lnt/lnt/server/reporting/analysis.py
    zorg/trunk/lnt/lnt/server/ui/views.py

Modified: zorg/trunk/lnt/lnt/server/db/testsuitedb.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/server/db/testsuitedb.py?rev=151091&r1=151090&r2=151091&view=diff
==============================================================================
--- zorg/trunk/lnt/lnt/server/db/testsuitedb.py (original)
+++ zorg/trunk/lnt/lnt/server/db/testsuitedb.py Tue Feb 21 15:56:25 2012
@@ -288,7 +288,7 @@
 
                 # Initialize sample fields (defaulting to 0, for now).
                 for item in self.fields:
-                    self.set_field(item, kwargs.get(item.name, 0))
+                    self.set_field(item, kwargs.get(item.name, None))
 
             def __repr__(self):
                 fields = dict((item.name, self.get_field(item))

Modified: zorg/trunk/lnt/lnt/server/reporting/analysis.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/server/reporting/analysis.py?rev=151091&r1=151090&r2=151091&view=diff
==============================================================================
--- zorg/trunk/lnt/lnt/server/reporting/analysis.py (original)
+++ zorg/trunk/lnt/lnt/server/reporting/analysis.py Tue Feb 21 15:56:25 2012
@@ -48,8 +48,10 @@
                 prev_failed |= sample[status_field.index] == FAIL
 
         # Get the current and previous values.
-        run_values = [s[field.index] for s in run_samples]
-        prev_values = [s[field.index] for s in prev_samples]
+        run_values = [s[field.index] for s in run_samples
+                      if s[field.index] is not None]
+        prev_values = [s[field.index] for s in prev_samples
+                       if s[field.index] is not None]
         if run_values:
             run_value = min(run_values)
         else:
@@ -94,16 +96,14 @@
         # noise level from a list of values. Probably better to just find a way
         # to kill this code though.
         if stddev is None:
-            # Get all previous values in the comparison window, for passing
-            # runs.
-            #
-            # FIXME: This is using the wrong status kind. :/
+            # Get all previous values in the comparison window.
             prev_samples = [s for run in comparison_window
-                            for s in self.sample_map.get((run.id, test_id), ())]
+                            for s in self.sample_map.get((run.id, test_id), ())
+                            if s[field.index] is not None]
             # Filter out failing samples.
             if status_field:
                 prev_samples = [s for s in prev_samples
-                                if s[status_field.index] == PASS]
+                                if s[status_field.index] != FAIL]
             if prev_samples:
                 prev_values = [s[field.index]
                                for s in prev_samples]

Modified: zorg/trunk/lnt/lnt/server/ui/views.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/server/ui/views.py?rev=151091&r1=151090&r2=151091&view=diff
==============================================================================
--- zorg/trunk/lnt/lnt/server/ui/views.py (original)
+++ zorg/trunk/lnt/lnt/server/ui/views.py Tue Feb 21 15:56:25 2012
@@ -996,12 +996,14 @@
         q = ts.query(field.column, ts.Order.llvm_project_revision).\
             join(ts.Run).join(ts.Order).\
             filter(ts.Run.machine == run.machine).\
-            filter(ts.Sample.test == test)
+            filter(ts.Sample.test == test).\
+            filter(field.column != None)
 
         # Unless all samples requested, filter out failing tests.
         if not show_failures:
             if field.status_field:
-                q = q.filter(field.status_field.column == PASS)
+                q = q.filter((field.status_field.column == PASS) |
+                             (field.status_field.column == None))
 
         # Aggregate by revision.
         data = util.multidict((int(r),v)





More information about the llvm-commits mailing list