From 162a8fa443b9bcbacc391f2f298a440f14710197 Mon Sep 17 00:00:00 2001 From: Gemini Lasswell Date: Tue, 27 Nov 2018 12:24:21 -0800 Subject: [PATCH] Add a selector function as a way to avoid running all the tasks * lisp/emacs-lisp/erb.el (erb-task-select-function): New variable. (erb--benchmark-one-commit): Use it. --- lisp/emacs-lisp/erb.el | 13 +++++++++++-- 1 file 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)) -- 2.39.2