branch: elpa/org-drill
commit 6c14bd6c5079bfb384134f4275a5f289f92e4ab5
Author: Phillip Lord <[email protected]>
Commit: Phillip Lord <[email protected]>
Update robot, Fix remaining CL dependencies
The robot test now includes "with-typing" input. This uncovered some
more usages of cl.el which are now gone.
---
.gitignore | 1 +
org-drill.el | 8 ++--
robot/org-drill-launch.el | 41 ++++++++++++++----
robot/robot-test.sh | 105 +++++++++++++++++++++++++++-------------------
4 files changed, 100 insertions(+), 55 deletions(-)
diff --git a/.gitignore b/.gitignore
index 82b11781ea..e6e697f27b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ org-drill.html
/robot/Makefile
/robot/main-test-copy.org
/robot/failure.txt
+/robot/messages.txt
diff --git a/org-drill.el b/org-drill.el
index 649736776b..e3ba4fb9c7 100644
--- a/org-drill.el
+++ b/org-drill.el
@@ -2638,7 +2638,7 @@ maximum number of items."
(*org-drill-again-entries*
(pop *org-drill-again-entries*))
(t ; nothing left -- return nil
- (return-from org-drill-pop-next-pending-entry nil)))))
+ (cl-return-from org-drill-pop-next-pending-entry nil)))))
m)))
@@ -2680,10 +2680,10 @@ RESUMING-P is true if we are resuming a suspended drill
session."
((null result)
(message "Quit")
(setq end-pos :quit)
- (return-from org-drill-entries nil))
+ (cl-return-from org-drill-entries nil))
((eql result 'edit)
(setq end-pos (point-marker))
- (return-from org-drill-entries nil))
+ (cl-return-from org-drill-entries nil))
((eql result 'skip)
(setq *org-drill-current-item* nil)
nil) ; skip this item
@@ -3265,7 +3265,7 @@ the tag 'imported'."
(condition-case nil
(org-find-olp path t)
(error ; path does not exist in DEST
- (return-from org-drill-copy-entry-to-other-buffer
+ (cl-return-from org-drill-copy-entry-to-other-buffer
(cond
((cdr path)
(org-drill-copy-entry-to-other-buffer
diff --git a/robot/org-drill-launch.el b/robot/org-drill-launch.el
index 85f23ff5db..2de92197bc 100644
--- a/robot/org-drill-launch.el
+++ b/robot/org-drill-launch.el
@@ -6,26 +6,53 @@
;; Clean up
(delete-file (concat top-dir "robot/failure.txt"))
+(delete-file (concat top-dir "robot/messages.txt"))
(set-frame-name "emacs-bot")
(setq debug-on-error t)
(setq debug-on-quit t)
+(defun dump-buffer (buffer file)
+ (save-excursion
+ (when (get-buffer buffer)
+ (set-buffer buffer)
+ (write-region (point-min) (point-max)
+ (concat top-dir "robot/" file)
+ nil 'dont-display-wrote-file-message
+ ))))
+
(add-hook 'debugger-mode-hook
'org-drill-launcher-dump-in-a-bit)
+
(defun org-drill-launcher-dump-in-a-bit ()
(run-with-timer 1 nil #'org-drill-launcher-dump))
+(defun org-drill-dump-messages ()
+ (dump-buffer "*Messages*" "messages.txt"))
+
+(run-with-timer 1 1 #'org-drill-dump-messages)
+
+
(defun org-drill-launcher-dump ()
- (save-excursion
- (set-buffer "*Backtrace*")
- (write-region (point-min) (point-max) (concat top-dir
"robot/failure.txt")))
- (kill-emacs))
+ (dump-buffer "*Backtrace*" "failure.txt")
+ (dump-buffer "*Messages*" "messages.txt")
+ (kill-emacs -1))
(load-file "org-drill.el")
-(copy-file "robot/main-test.org" "robot/main-test-copy.org" t)
-(find-file "robot/main-test-copy.org")
+(defun org-drill-do-drill ()
+ (copy-file "robot/main-test.org" "robot/main-test-copy.org" t)
+ (find-file "robot/main-test-copy.org")
+
+ (org-drill)
+ (set-buffer-modified-p nil)
+ (kill-buffer))
+
+(org-drill-do-drill)
+
+(message "First drill complete")
+
+(setq org-drill-presentation-prompt-with-typing t)
-(org-drill)
+(org-drill-do-drill)
diff --git a/robot/robot-test.sh b/robot/robot-test.sh
index 31a6f09a93..c27b94bb5c 100755
--- a/robot/robot-test.sh
+++ b/robot/robot-test.sh
@@ -1,49 +1,66 @@
-#!/bin/sh
+#!/bin/bash
set -e
+function run_drill {
+ ## Org-drill should be running at this point, so give three answers
+ ## with a score of file
+ sleep 1
+ echo answer one
+ #xdotool type --window $window_id answer
+ xdotool key --window $window_id Return
+ sleep 0.25
+ xdotool key --window $window_id 5
+ sleep 0.25
+
+
+ echo answer two
+ #xdotool type --window $window_id answer
+ xdotool key --window $window_id Return
+ sleep 0.25
+ xdotool key --window $window_id 5
+ sleep 0.25
+
+ echo answer three
+ #xdotool type --window $window_id answer
+ xdotool key --window $window_id Return
+ sleep 0.25
+ xdotool key --window $window_id 5
+ sleep 0.25
+
+ ## Press any key to continue
+ echo press any key to continue
+ xdotool key --window $window_id Return
+ sleep 0.25
+
+ echo Save file
+ xdotool key --window $window_id y
+}
+
+function kill_emacs {
+ echo Goodnight Emacs
+ xdotool key --window $window_id alt+x
+ xdotool type --window $window_id kill-emacs
+ xdotool key --window $window_id KP_Enter
+}
+
$EMACS -Q -l ./robot/org-drill-launch.el &
-sleep 1
-
-window_id=`xdotool search --name "emacs-bot"`
-if [ -z "$window_id" ]
-then
- echo "Could not find window ID for Emacs-bot"
- exit 1
-fi
-
-## Org-drill should be running at this point, so give three answers
-## with a score of file
-echo answer one
-xdotool key --window $window_id KP_Enter
-sleep 0.25
-xdotool key --window $window_id 5
-sleep 0.25
-
-
-echo answer two
-xdotool key --window $window_id KP_Enter
-sleep 0.25
-xdotool key --window $window_id 5
-sleep 0.25
-
-echo answer three
-xdotool key --window $window_id KP_Enter
-sleep 0.25
-xdotool key --window $window_id 5
-sleep 0.25
-
-# ## Press any key to continue
-echo press any key to continue
-xdotool key --window $window_id KP_Enter
-sleep 0.25
-
-echo Save file
-xdotool key --window $window_id y
-sleep 0.25
-
-echo Goodnight Emacs
-xdotool key --window $window_id alt+x
-xdotool type --window $window_id kill-emacs
-xdotool key --window $window_id KP_Enter
+{
+ sleep 2
+
+ window_id=`xdotool search --name "emacs-bot"`
+ if [ -z "$window_id" ]
+ then
+ echo "Could not find window ID for Emacs-bot"
+ exit 1
+ fi
+
+ ## Run once with default options
+ run_drill
+
+ ## Run once with presentation-prompt-with-typing
+ run_drill
+
+ kill_emacs
+} || cat robot/failure.txt