Permalink
Browse files

Merge branch 'dev'

  • Loading branch information...
2 parents a479617 + e33be34 commit 37861e5370456d8677e6dcced67495a6bb5acaad @avodonosov avodonosov committed Oct 1, 2012
View
@@ -137,4 +137,5 @@
1 - cl-routes and cl-closure-template are renamed to routes and closure-template
2 - routes and closure-template are renamed back to cl-routes and cl-closure-template
3 - bknr.datastore is renamed to bknr-datastore, in order to match the Quicklisp release name
+ 4 - the :load-failed status of testsutes is replaced by just :fail
|#
View
@@ -1,5 +1,6 @@
;;;; -*- Mode: org; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*-
* 0.6.0 Reports Improve 2
+** TODO remove the :load-failed status from DB and reporting
** TODO library mainainer page: :report:informer:
with reports about the test statuses
for this single library on various platforms with
@@ -8,7 +9,14 @@
There is some draft (uncommited) code for this task.
-** TODO remove the :load-failed status from DB and reporting
+** TODO make lisp code the main and the easiest interface to the test results:
+ convenient interation, filtering and matching functions.
+ We want to add to every HTML report a secion with lisp
+ code generating this report, so that all the users
+ see and understand how to query data and can follow
+ these examples.
+** TODO document the data format, data access functions, reporting
+ functions and utilities.
** TODO terminology improvement
- db format: rename?
:libname -> :project
@@ -47,7 +55,8 @@
- see what libraries work on your platform
** TODO Prevent HTML injection via test-run-info :report:
-** TODO combine information about load failures with information about system dependencies
+** DONE combine information about load failures with information about system dependencies
+ CLOSED: [2012-10-01 Пн 07:12]
It will allow us to find "root" compilation blockers -
the libraries which do not compile and block other libraries
compilation.
@@ -108,14 +117,6 @@
But the information which IS possible to extract will give us good results
I believe.
-** TODO make lisp code the main and the easiest interface to the test results:
- convenient interation, filtering and matching functions.
- We want to add to every HTML report a secion with lisp
- code generating this report, so that all the users
- see and understand how to query data and can follow
- these examples.
-** TODO document the data format, data access functions, reporting
- functions and utilities.
** TODO the diff report (aka regressions report) - diff along various dimentions
Currently we can only find differences between test statuses
of a library on different quicklisps, when the lisp implementation
@@ -167,7 +168,7 @@
test results.
Do we really need WEB UI for filters? If so, it
- is low priority anyway.
+ is a low priority anyway.
* 0.6.1 Install more lisps on my VPS
I already have acl 8.2a express, ccl 1.8, sbcl 1.57, ecl from git, cmucl 20c
@@ -18,7 +18,7 @@
(defgeneric libname (item)) ;; library name - a keyword, like :babel, :alexandria, etc.
(defgeneric lisp (item)) ;; lisp implementation identifier - a string
(defgeneric lib-world (item)) ;; a string, like "quicklisp 2012-07-03"
-(defgeneric status (item)) ;; test status, like :ok, :fail, :timeout, :crash, :load-failed, :no-resource, (:failed-tests (<list of test case name string>) :known-to-fail (<list of test case names marked by the test suite autor as "known">))
+(defgeneric status (item)) ;; test status, like :ok, :fail, :timeout, :crash, :no-resource, (:failed-tests (<list of test case name string>) :known-to-fail (<list of test case names marked by the test suite autor as "known">))
(defgeneric log-blob-key (item)) ;; the key under which the log produced by this test is stored online at https://cl-test-grid.appspot.com/blob?key=<key>
(defgeneric log-byte-length (item)) ;; length of the log file
(defgeneric load-results (item)) ;; List of load results for every ASDF system provided by that project (see below for the description of load-result object
View
@@ -10,7 +10,7 @@
:runs))
(let ((descr (test-grid-data::run-descr run)))
(when (string= lib-world (getf descr :lib-world))
- (pusn (cons (getf descr :lisp)
+ (push (cons (getf descr :lisp)
(getf descr :run-duration))
duration-alist))))
(setf duration-alist (sort duration-alist #'string< :key #'car))
@@ -21,4 +21,4 @@
60))))))
;; usage:
- (print-test-run-durations "quicklisp 2012-09-09")
+;; (print-test-run-durations "quicklisp 2012-09-09")
View
@@ -1,82 +0,0 @@
-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*-
-;;;; Copyright (C) 2011 Anton Vodonosov (avodonosov@yandex.ru)
-;;;; See LICENSE for details.
-
-(in-package #:test-grid-reporting)
-
-(defparameter *last-ecl-version* "c7faea1d")
-(defparameter *last-ecl-quicklisp* "quicklisp 2012-08-11")
-
-(defun last-ecl-p (result)
- (and (search "ecl" (lisp result))
- (search *last-ecl-version* (lisp result))
- (string= *last-ecl-quicklisp* (lib-world result))))
-
-(defun ecl-abnormal-results (db)
- ;;; select interesting test results from the DB
- (let ((problems (select db :where (lambda (result)
- (and (last-ecl-p result)
- (member (status result) '(:load-failed :crash :timeout)))))))
- ;; order by lisp, status, libname
- (sort problems #'string<
- :key (lambda (record)
- (format nil "~A~A~A"
- (lisp record)
- (status record)
- (libname record))))))
-
-;;; Rendering ECL abnormal results HTML page
-(defun print-ecl-results (destination results)
- (format destination
- "<code><pre>~{~{~A ~A ~A~}~%~}</pre></code>"
- (mapcar (lambda (result)
- (list (lisp result) (status result) (log-link result 'libname)))
- results)))
-
-(defun print-ecl-report (out db)
- (report-page out
- "ECL Abnormal Results"
- (with-output-to-string (s)
- (format s "<h3>Abnormal test results for ECL ~A on quicklisp ~A</h3>~%"
- *last-ecl-version* *last-ecl-quicklisp*)
- (print-ecl-results s (ecl-abnormal-results db)))))
-
-;;; Filtered pivot reports - contain only ECL data,
-;;; or only abnormal ecl data, with various rotations
-
-(defun print-ecl-pivots (db)
- (let ((all-results (build-joined-index db :where #'last-ecl-p))
- (abnormal-results (build-joined-index db :where (lambda (result)
- (and (last-ecl-p result)
- (member (status result) '(:load-failed :crash :timeout)))))))
- (flet ((print-report (result-index
- filename
- row-fields row-fields-sort-predicates
- col-fields col-fields-sort-predicates)
- (with-report-file (out filename)
- (pivot-report-old out
- result-index
- row-fields row-fields-sort-predicates
- col-fields col-fields-sort-predicates))))
-
- (print-report all-results
- "ecl-pivot_lisp_ql-lib.html"
- '(:lisp) (list #'string<)
- '(:lib-world :libname) (list #'string> #'string<))
- (print-report all-results
- "ecl-pivot_lib_ql-lisp.html"
- '(:libname) (list #'string<)
- '(:lib-world :lisp) (list #'string> #'string<))
- (print-report abnormal-results
- "ecl-pivot-abnormal_lisp_ql-lib.html"
- '(:lisp) (list #'string<)
- '(:lib-world :libname) (list #'string> #'string<))
- (print-report abnormal-results
- "ecl-pivot-abnormal_lib_ql-lisp.html"
- '(:libname) (list #'string<)
- '(:lib-world :lisp) (list #'string> #'string<)))))
-
-(defun print-ecl-pages (db)
- (with-report-file (out "ecl-abnormal-results.html")
- (print-ecl-report out db))
- (print-ecl-pivots db))
@@ -10,7 +10,6 @@
((:unexpected-ok :known-fail) "warn-status")
(:fail "fail-status")
(:crash "crash-status")
- (:load-failed "load-failed-status")
(:timeout "timeout-status")
(:no-resource "no-resource-status")
(otherwise "")))
@@ -22,7 +21,6 @@
(:unexpected-ok "U")
(:fail "F")
(:crash "C")
- (:load-failed "L")
(:timeout "T")
(:known-fail "K")
(:no-resource "R")
@@ -65,7 +65,6 @@
$('.ok-status').closest('td').attr('title', 'OK');
$('.no-resource-status').closest('td').attr('title', 'No Resource');
$('.crash-status').closest('td').attr('title', 'Crash');
- $('.load-failed-status').closest('td').attr('title', 'Load Failed');
$('.timeout-status').closest('td').attr('title', 'Timeout');
var warns = $('.warn-status');
for (var i = 0; i < warns.length; i++) {
@@ -75,7 +75,6 @@ the following type hierarchy.
bad-symbol ---------- bad status represended by single keyword symbol
:fail
:crash
- :load-failed
:timeoout
extended-non-empty - extended status with non-empty :failed-tests or :known-to-fail
@@ -107,10 +106,10 @@ The function OF-TYPE-P below implements the described type predicates.
(defun of-type-p (lib-status lib-status-typespec)
(ecase lib-status-typespec
((t) t)
- ((:ok :no-resource :fail :crash :load-failed :timeout)
+ ((:ok :no-resource :fail :crash :timeout)
(eq lib-status lib-status-typespec))
(bad-symbol (member lib-status
- '(:fail :crash :load-failed :timeout)
+ '(:fail :crash :timeout)
:test #'eq))
(extended-empty (and (listp lib-status)
(not (or (getf lib-status :failed-tests)
@@ -131,11 +130,9 @@ The function OF-TYPE-P below implements the described type predicates.
(assert (of-type-p :no-resource :no-resource))
(assert (of-type-p :ok :ok))
(assert (of-type-p :crash :crash))
-(assert (of-type-p :load-failed :load-failed))
(assert (of-type-p :timeout :timeout))
(assert (of-type-p :crash 'bad-symbol))
(assert (of-type-p :timeout 'bad))
-(assert (of-type-p :load-failed t))
(assert (of-type-p :ok t))
(assert (not (of-type-p '() 'extended-non-empty)))
(assert (of-type-p '() 'good))
@@ -177,7 +174,6 @@ The function OF-TYPE-P below implements the described type predicates.
(assert (not (has-regressions-p :ok '(:failed-tests () :known-to-fail ()))))
(assert (not (has-regressions-p :fail :fail)))
(assert (has-regressions-p :crash :fail))
-(assert (has-regressions-p :load-failed :fail))
(assert (has-regressions-p :timeout :fail))
(assert (has-regressions-p :timeout '(:failed-tests ("c"))))
(assert (has-regressions-p :timeout '()))
View
@@ -77,8 +77,6 @@
(format t "Quicklisp diff...~%")
(time (print-quicklisp-diff-report all-failures))
- (my-time ("ECL pages...~%")
- (print-ecl-pages filtered-db))
(my-time ("ECL load failures...~%")
(print-load-failures all-failures
"ecl-12.7.1-ce653d88-linux-x86-lisp-to-c"
@@ -98,7 +96,6 @@
last-abcl
"quicklisp 2012-09-09"
"abcl-load-failures.html")))
-
(my-time ("CCL load failures...~%")
(print-load-failures all-failures
"ccl-1.8-f95-linux-x86"
@@ -28,7 +28,6 @@
<h4>Legend</h4>
<p>Library test statuses:
<ul>
- <li><span class="test-status load-failed-status">L</span> stands for Load Failed. The library can not be loaded (this status is only for the library itself, but not for it's test suite).</li>
<li><span class="test-status timeout-status">T</span> stands for Timeout. The test suite had probably hang.</li>
<li><span class="test-status crash-status">C</span> stands for Crash. The lisp process running the test suite terminated without returning test status.</li>
<li><span class="test-status fail-status">F</span> stands for FAIL</li>
View
@@ -26,7 +26,7 @@
(defun aggregated-status (normalized-status)
"Returns the test result as one symbol, even
if it was an \"extended status\". Possible return
-values: :OK, :UNEXPECTED-OK, :CRASH, :TIMEOUT, :LOAD-FAILED, :FAIL, :NO-RESOURSE, :KNOWN-FAIL."
+values: :OK, :UNEXPECTED-OK, :CRASH, :TIMEOUT, :FAIL, :NO-RESOURSE, :KNOWN-FAIL."
(etypecase normalized-status
(symbol normalized-status)
(list (destructuring-bind (&key failed-tests known-to-fail) normalized-status
@@ -12,10 +12,6 @@
color: blue;
}
-.load-failed-status {
- color: blue;
-}
-
.timeout-status {
color: blue;
}
View
@@ -28,7 +28,6 @@
(:file "meta-info-from-quicklisp")
(:file "dependencies-and-blockers")
(:file "load-failures")
- (:file "ecl-pages")
(:file "compiler-diff")
(:file "durations")
(:file "contributors")))))
View
@@ -72,7 +72,6 @@
(and (eq :ok (test-grid-reporting::aggregated-status :ok))
(eq :fail (test-grid-reporting::aggregated-status :fail))
(eq :no-resource (test-grid-reporting::aggregated-status :no-resource))
- (eq :load-failed (test-grid-reporting::aggregated-status :load-failed))
(eq :crash (test-grid-reporting::aggregated-status :crash))
(eq :timeout (test-grid-reporting::aggregated-status :timeout))
(eq :fail (test-grid-reporting::aggregated-status '(:failed-tests ("a") :known-to-fail ("b"))))

0 comments on commit 37861e5

Please sign in to comment.