branch: externals/elisp-benchmarks
commit e2780d406e7a51162f0584f18192733898363330
Author: Stefan Monnier <monn...@iro.umontreal.ca>
Commit: Stefan Monnier <monn...@iro.umontreal.ca>

    (elb-scroll-entry): Try harder to set the window size
    
    * benchmarks/elb-scroll.el (elb--set-win-size): New function, extracted
    from `elb-scroll-entry`.
    (elb-scroll-entry): Use it.
---
 benchmarks/elb-scroll.el | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/benchmarks/elb-scroll.el b/benchmarks/elb-scroll.el
index 9e5824d62f..d23ff47490 100644
--- a/benchmarks/elb-scroll.el
+++ b/benchmarks/elb-scroll.el
@@ -1,6 +1,6 @@
 ;;; elb-scroll.el --- Benchmark scrolling performance  -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2022  Free Software Foundation, Inc.
+;; Copyright (C) 2022-2025  Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <monn...@iro.umontreal.ca>
 
@@ -35,7 +35,7 @@
   (defun elb-scroll-entry ()
     ;; FIXME: This relies on `elb-smie.el' being compiled already which is
     ;; not necessarily the case if we're only running some of the benchmarks.
-    (load (expand-file-name "elb-smie" elb-bench-directory))
+    (load (expand-file-name "elb-smie" elb-bench-directory) nil 'nomessage)
     (setq redisplay-skip-initial-frame nil)
     (with-temp-buffer
       (rename-buffer (generate-new-buffer-name "elb-scroll"))
@@ -43,13 +43,7 @@
       (insert-file-contents (expand-file-name
                              "../resources/xmenu.c" elb-bench-directory))
       (redisplay 'force) ;; Refresh the window dimensions.
-      (enlarge-window (- 23 (window-height)))
-      (enlarge-window (- 80 (window-width)) 'horiz)
-      (redisplay 'force) ;; Refresh the window dimensions.
-      (message "Window size: %S x %S" (window-height) (window-width))
-      (unless (and (equal 23 (window-height))
-                   (equal 80 (window-width)))
-        (error "Window size not as stipulated by the benchmark"))
+      (elb--set-win-size 23 80)
       (dotimes (_ 10)
         (elb-smie-mode)
         (goto-char (point-min))
@@ -57,5 +51,17 @@
             (while t (scroll-up nil) (redisplay 'force))
           (end-of-buffer nil))))))
 
+(defun elb--set-win-size (height width &optional no-retry)
+  (enlarge-window (- height (window-height)))
+  (enlarge-window (- width (window-width)) 'horiz)
+  (redisplay 'force) ;; Refresh the window dimensions.
+  (unless (and (equal height (window-height))
+               (equal width (window-width)))
+    (if no-retry
+        (error "Window size %S x %S not as stipulated by the benchmark"
+               (window-height) (window-width))
+      (delete-other-windows)
+      (elb--set-win-size height width 'no-retry))))
+
 (provide 'elb-scroll)
 ;;; elb-scroll.el ends here

Reply via email to