/usr/src/blcr-0.8.5/tests/emacslisp_test.sh is in blcr-dkms 0.8.5-2.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #!/bin/sh
# First check that we *have* emacs
emacs -nw -batch 2>/dev/null || exit 77
. ${cr_testsdir:-`dirname $0`}/shellinit
\rm -f Context[123] .Context[123].tmp 2>/dev/null
exec 2>/dev/null # To drop job control messages
echo '#ST_ALARM:120'
$cr_run emacs -nw -q -batch \
-eval '(defun greet (n)
(princ (format "%d Hello\n" n))
(sleep-for 1)
(if (< n 9) (greet (+ n 1))))' \
-eval '(defun getpid-ascii () ;; You would think emacslisp would implement getpid()
(car (split-string ;; Extract 1st whitespace-delimited field of /proc/sef/stat
(with-temp-buffer
(insert-file-contents-literally "/proc/self/stat")
(buffer-string)))))' \
-eval '(progn
(greet 0)
(princ "# Checkpointing self\n")
(call-process (getenv "cr_checkpoint")
nil nil nil
"--file=Context3" "--term" "--tree" (getpid-ascii))
(princ "10 DONE\n"))' \
-kill &
pid=$!
sleep 3
echo "# Checkpoint original child"
$cr_checkpoint --file=Context1 --term $pid 2>&1
wait
sleep 1
echo "# Restart 1"
$cr_restart Context1 2>&1 &
pid=$!
sleep 3
echo "# Checkpoint restarted child"
$cr_checkpoint --file=Context2 --term --tree $pid 2>&1
wait
sleep 1
echo "# Restart^2"
$cr_restart Context2 2>&1 &
wait
echo "# Restart interpreter" # Note entire emacs output still might be bufferd
sleep 2
$cr_restart Context3 2>&1
\rm -f Context[123] .Context[123].tmp 2>/dev/null
|