summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGemini Lasswell <gazally@runbox.com>2018-11-27 12:24:21 -0800
committerGemini Lasswell <gazally@runbox.com>2018-11-27 12:24:21 -0800
commit162a8fa443b9bcbacc391f2f298a440f14710197 (patch)
tree955106aaa406a35612b84db66a0304cd9a027da0
parent8abd7e7d133059e41a5ae71cb254e5a3b2a04e6c (diff)
downloademacs-scratch/benchmarks.tar.gz
Add a selector function as a way to avoid running all the tasksscratch/benchmarks
* lisp/emacs-lisp/erb.el (erb-task-select-function): New variable. (erb--benchmark-one-commit): Use it.
-rw-r--r--lisp/emacs-lisp/erb.el13
1 files changed, 11 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/erb.el b/lisp/emacs-lisp/erb.el
index 7d3f33dcca2..48f81a954c3 100644
--- a/lisp/emacs-lisp/erb.el
+++ b/lisp/emacs-lisp/erb.el
@@ -1013,19 +1013,28 @@ system, remove it."
;;;; Run benchmarks
+;; Todo UI for this
+(defvar erb-task-select-function nil
+ "If non-nil, a function to select the benchmark tasks to run.
+Passed one argument, TASK, an `erb--metadata' structure. Return
+non-nil if TASK should be run.")
+
(defun erb--benchmark-one-commit (commit target-emacs)
"Run the benchmark tasks for one COMMIT and record the results.
The executable to run should be found in the subdirectory
'result' of the directory TARGET-EMACS."
(let* ((tasks (erb--vc-tasks-for-commmit commit))
+ (selected-tasks (seq-filter (or erb-task-select-function
+ #'identity)
+ tasks))
(benchmark-task-files (directory-files-recursively
(erb--benchmark-dir) "\\.el$"))
(all-run-results (make-erb--run-results)))
(when tasks
(dolist (file benchmark-task-files)
- (when-let* ((selected-tasks (erb--filter-by-file tasks file)))
+ (when-let* ((file-tasks (erb--filter-by-file selected-tasks file)))
(let* ((this-run-results (erb--run-tasks target-emacs
- file selected-tasks)))
+ file file-tasks)))
(setq all-run-results
(erb--merge-run-results all-run-results
this-run-results))