unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#37202: shadowfile-tests: two failures on macOS
@ 2019-08-28  0:41 Stefan Kangas
  2019-08-28  8:18 ` Michael Albinus
  0 siblings, 1 reply; 25+ messages in thread
From: Stefan Kangas @ 2019-08-28  0:41 UTC (permalink / raw)
  To: 37202

I'm seeing two test failures in shadowfile-tests on macOS on current master.

Running 10 tests (2019-08-28 02:27:08+0200, selector `(not (or (tag
:expensive-test) (tag :unstable)))')
   passed   1/10  shadow-test00-clusters (4.016950 sec)
   passed   2/10  shadow-test01-sites (0.001616 sec)
   passed   3/10  shadow-test02-files (0.002011 sec)
   passed   4/10  shadow-test03-expand-cluster-in-file-name (0.016575 sec)
   passed   5/10  shadow-test04-contract-file-name (0.105286 sec)
   passed   6/10  shadow-test05-file-match (0.001446 sec)
   passed   7/10  shadow-test06-literal-groups (0.005732 sec)
   passed   8/10  shadow-test07-regexp-groups (0.001333 sec)
Test shadow-test08-shadow-todo backtrace:
  signal(ert-test-failed (((should (member (cons file (shadow-contract
  ert-fail(((should (member (cons file (shadow-contract-file-name (con
  #f(compiled-function () #<bytecode 0x1ffc602329d1>)()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name shadow-test08-shadow-todo :documentat
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or ... ...)) :te
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests" "-
  command-line()
  normal-top-level()
Test shadow-test08-shadow-todo condition:
    (ert-test-failed
     ((should
       (member
    (cons file ...)
    shadow-files-to-copy))
      :form
      (member
       ("/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-tests6rxEJv"
. "/cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-tests6rxEJv")
       nil)
      :value nil))
   FAILED   9/10  shadow-test08-shadow-todo (0.231305 sec)


Test shadow-test09-shadow-copy-files backtrace:
  signal(ert-test-failed (((should (looking-at (regexp-quote "(setq sh
  ert-fail(((should (looking-at (regexp-quote "(setq shadow-files-to-c
  #f(compiled-function () #<bytecode 0x1ffc60232b79>)()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name shadow-test09-shadow-copy-files :docu
  ert-run-or-rerun-test(#s(ert--stats :selector (not (or ... ...)) :te
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests" "-
  command-line()
  normal-top-level()
Test shadow-test09-shadow-copy-files condition:
    (ert-test-failed
     ((should
       (looking-at
    (regexp-quote "(setq shadow-files-to-copy nil)")))
      :form
      (looking-at "(setq shadow-files-to-copy nil)")
      :value nil))
   FAILED  10/10  shadow-test09-shadow-copy-files (0.756282 sec)

Ran 10 tests, 8 results as expected, 2 unexpected (2019-08-28
02:27:13+0200, 5.665292 sec)

2 unexpected results:
   FAILED  shadow-test08-shadow-todo
   FAILED  shadow-test09-shadow-copy-files

Best regards,
Stefan Kangas

In GNU Emacs 27.0.50 (build 10, x86_64-apple-darwin16.7.0, NS
appkit-1504.83 Version 10.12.6 (Build 16G2128))
 of 2019-08-28 built on Stefans-MBP
Repository revision: 4118297ae2fab4886b20d193ba511a229637aea3
Repository branch: master
Windowing system distributor 'Apple', version 10.3.1504
System Description:  Mac OS X 10.12.6

Configured features:
NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS THREADS
PDUMPER LCMS2 GMP

Important settings:
  value of $LC_CTYPE: UTF-8
  value of $LANG: en_SE@calendar=iso8601.UTF-8
  locale-coding-system: utf-8-unix





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-08-28  0:41 bug#37202: shadowfile-tests: two failures on macOS Stefan Kangas
@ 2019-08-28  8:18 ` Michael Albinus
  2019-08-29 13:51   ` Michael Albinus
  0 siblings, 1 reply; 25+ messages in thread
From: Michael Albinus @ 2019-08-28  8:18 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 37202

Stefan Kangas <stefan@marxist.se> writes:

Hi Stefan,

> I'm seeing two test failures in shadowfile-tests on macOS on current master.

> 2 unexpected results:
>    FAILED  shadow-test08-shadow-todo
>    FAILED  shadow-test09-shadow-copy-files

So you've hit me, again :-(

Will check later today what's up.

> Best regards,
> Stefan Kangas

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-08-28  8:18 ` Michael Albinus
@ 2019-08-29 13:51   ` Michael Albinus
       [not found]     ` <CADwFkmkxp+NhTTuUg_kja-768nskD4JhbhTwTMKkwh4=QxfKjw@mail.gmail.com>
  0 siblings, 1 reply; 25+ messages in thread
From: Michael Albinus @ 2019-08-29 13:51 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 37202

Michael Albinus <michael.albinus@gmx.de> writes:

Hi Stefan,

>> I'm seeing two test failures in shadowfile-tests on macOS on current master.
>
>> 2 unexpected results:
>>    FAILED  shadow-test08-shadow-todo
>>    FAILED  shadow-test09-shadow-copy-files
>
> Will check later today what's up.

After adding some trace messages (intended for you, originally), the
error happens also to me. Looks like some race conditions. I still don't
understand what happens, but I'm able now to debug myself.

>> Best regards,
>> Stefan Kangas

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
       [not found]     ` <CADwFkmkxp+NhTTuUg_kja-768nskD4JhbhTwTMKkwh4=QxfKjw@mail.gmail.com>
@ 2019-09-03 12:12       ` Michael Albinus
  2019-09-03 13:13         ` Stefan Kangas
  0 siblings, 1 reply; 25+ messages in thread
From: Michael Albinus @ 2019-09-03 12:12 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 37202

Stefan Kangas <stefan@marxist.se> writes:

Hi Stefan,

>> After adding some trace messages (intended for you, originally), the
>> error happens also to me. Looks like some race conditions. I still don't
>> understand what happens, but I'm able now to debug myself.
>
> Thanks.  As usual, let me know if you would like me to run any tests.

I've pushed some changes to master, which fix the problem at least for
me. Major change is to improve the cleanup of internal shadowfile
variables between the tests.

Could you, pls, check? In case it still fails, pls set shadow-debug to t
(in shadowfile-tests.el, line 67), and rerun the test.

> Best regards,
> Stefan Kangas

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-03 12:12       ` Michael Albinus
@ 2019-09-03 13:13         ` Stefan Kangas
  2019-09-03 15:04           ` Michael Albinus
  2019-09-04 12:16           ` Michael Albinus
  0 siblings, 2 replies; 25+ messages in thread
From: Stefan Kangas @ 2019-09-03 13:13 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 37202

[-- Attachment #1: Type: text/plain, Size: 527 bytes --]

Michael Albinus <michael.albinus@gmx.de> writes:

Hi Michael,

> Could you, pls, check? In case it still fails, pls set shadow-debug to t
> (in shadowfile-tests.el, line 67), and rerun the test.

Thanks for looking into this.  Unfortunately, I'm still seeing
failures on latest master (commit ea5d591f29):

2 unexpected results:
   FAILED  shadow-test08-shadow-todo
   FAILED  shadow-test09-shadow-copy-files

I've attached the output of "make -C test shadowfile-tests" with
shadow-debug set to t.

Best regards,
Stefan Kangas

[-- Attachment #2: shadowfile-tests.log --]
[-- Type: application/octet-stream, Size: 4424 bytes --]

  GEN      lisp/shadowfile-tests.log
Running 10 tests (2019-09-03 15:09:00+0200, selector `(not (tag :unstable))')
   passed   1/10  shadow-test00-clusters (4.038487 sec)
   passed   2/10  shadow-test01-sites (0.028111 sec)
   passed   3/10  shadow-test02-files (0.011824 sec)
   passed   4/10  shadow-test03-expand-cluster-in-file-name (0.012810 sec)
   passed   5/10  shadow-test04-contract-file-name (0.134683 sec)
   passed   6/10  shadow-test05-file-match (0.015192 sec)
   passed   7/10  shadow-test06-literal-groups (0.034533 sec)
   passed   8/10  shadow-test07-regexp-groups (0.030164 sec)
cluster1 /Stefans-MBP: \`/Stefans-MBP:\' ((shadow-cluster cluster1 /Stefans-MBP: \`/Stefans-MBP:\'))
cluster2 /mock:Stefans-MBP: \`/mock:Stefans-MBP:\' ((shadow-cluster cluster2 /mock:Stefans-MBP: \`/mock:Stefans-MBP:\') (shadow-cluster cluster1 /Stefans-MBP: \`/Stefans-MBP:\'))
/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsMVv1V3 ((/cluster1:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsMVv1V3 /cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsMVv1V3))
(/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsMVv1V3 . /cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsMVv1V3) nil
Test shadow-test08-shadow-todo backtrace:
  signal(ert-test-failed (((should (member (cons file (shadow-contract
  ert-fail(((should (member (cons file (shadow-contract-file-name (con
  (if (unwind-protect (setq value-549 (apply fn-547 args-548)) (setq f
  (let (form-description-551) (if (unwind-protect (setq value-549 (app
  (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-descr
  (let* ((fn-547 #'member) (args-548 (condition-case err (let ((signal
  (progn (shadow--tests-cleanup) (setq cluster1 "cluster1" primary sha
  (unwind-protect (progn (shadow--tests-cleanup) (setq cluster1 "clust
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) 
  (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err (let
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name shadow-test08-shadow-todo :documentat
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) 
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el"
  command-line()
  normal-top-level()
Test shadow-test08-shadow-todo condition:
    (ert-test-failed
     ((should
       (member
	(cons file ...)
	shadow-files-to-copy))
      :form
      (member
       ("/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsMVv1V3" . "/cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsMVv1V3")
       nil)
      :value nil))
   FAILED   9/10  shadow-test08-shadow-todo (0.134735 sec)


Test shadow-test09-shadow-copy-files backtrace:
  set-buffer(nil)
  (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (poi
  (progn (shadow--tests-cleanup) (setq cluster1 "cluster1" primary sha
  (unwind-protect (progn (shadow--tests-cleanup) (setq cluster1 "clust
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) 
  (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name shadow-test09-shadow-copy-files :docu
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) 
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el"
  command-line()
  normal-top-level()
Test shadow-test09-shadow-copy-files condition:
    (wrong-type-argument stringp nil)
   FAILED  10/10  shadow-test09-shadow-copy-files (0.580559 sec)

Ran 10 tests, 8 results as expected, 2 unexpected (2019-09-03 15:09:06+0200, 5.780896 sec)

2 unexpected results:
   FAILED  shadow-test08-shadow-todo
   FAILED  shadow-test09-shadow-copy-files

make[1]: *** [lisp/shadowfile-tests.log] Error 1
make: *** [lisp/shadowfile-tests] Error 2

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-03 13:13         ` Stefan Kangas
@ 2019-09-03 15:04           ` Michael Albinus
  2019-09-04 12:16           ` Michael Albinus
  1 sibling, 0 replies; 25+ messages in thread
From: Michael Albinus @ 2019-09-03 15:04 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 37202

Stefan Kangas <stefan@marxist.se> writes:

> Hi Michael,

Hi Stefan,

>> Could you, pls, check? In case it still fails, pls set shadow-debug to t
>> (in shadowfile-tests.el, line 67), and rerun the test.
>
> Thanks for looking into this.  Unfortunately, I'm still seeing
> failures on latest master (commit ea5d591f29):
>
> 2 unexpected results:
>    FAILED  shadow-test08-shadow-todo
>    FAILED  shadow-test09-shadow-copy-files
>
> I've attached the output of "make -C test shadowfile-tests" with
> shadow-debug set to t.

Thanks. It's a pity that the error doesn't happen anymore to me after
the recent changes. Will investigate further.

> Best regards,
> Stefan Kangas

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-03 13:13         ` Stefan Kangas
  2019-09-03 15:04           ` Michael Albinus
@ 2019-09-04 12:16           ` Michael Albinus
  2019-09-05 15:07             ` Stefan Kangas
  1 sibling, 1 reply; 25+ messages in thread
From: Michael Albinus @ 2019-09-04 12:16 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 37202

Stefan Kangas <stefan@marxist.se> writes:

> Hi Michael,

Hi Stefan,

> Thanks for looking into this.  Unfortunately, I'm still seeing
> failures on latest master (commit ea5d591f29):
>
> 2 unexpected results:
>    FAILED  shadow-test08-shadow-todo
>    FAILED  shadow-test09-shadow-copy-files
>
> I've attached the output of "make -C test shadowfile-tests" with
> shadow-debug set to t.

I've made some changes in shadowfile-tests.el in order to improve
robustness. Since I cannot reproduce locally, I don't know whether it
solves the problem. But it might be worth to check,

> Best regards,
> Stefan Kangas

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-04 12:16           ` Michael Albinus
@ 2019-09-05 15:07             ` Stefan Kangas
  2019-09-07 10:33               ` Michael Albinus
  0 siblings, 1 reply; 25+ messages in thread
From: Stefan Kangas @ 2019-09-05 15:07 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 37202

[-- Attachment #1: Type: text/plain, Size: 579 bytes --]

Michael Albinus <michael.albinus@gmx.de> writes:

> > 2 unexpected results:
> >    FAILED  shadow-test08-shadow-todo
> >    FAILED  shadow-test09-shadow-copy-files
> >
> > I've attached the output of "make -C test shadowfile-tests" with
> > shadow-debug set to t.
>
> I've made some changes in shadowfile-tests.el in order to improve
> robustness. Since I cannot reproduce locally, I don't know whether it
> solves the problem. But it might be worth to check,

Thanks.  I tried your changes, but I still see the same failures.
I've attached the log.

Best regards,
Stefan Kangas

[-- Attachment #2: shadowfile-tests.log --]
[-- Type: application/octet-stream, Size: 5021 bytes --]

  ELC      lisp/shadowfile-tests.elc
  GEN      lisp/shadowfile-tests.log
Running 10 tests (2019-09-04 18:22:11+0200, selector `(not (tag :unstable))')
   passed   1/10  shadow-test00-clusters (4.057109 sec)
   passed   2/10  shadow-test01-sites (0.026418 sec)
   passed   3/10  shadow-test02-files (0.045824 sec)
   passed   4/10  shadow-test03-expand-cluster-in-file-name (0.020070 sec)
   passed   5/10  shadow-test04-contract-file-name (0.213844 sec)
   passed   6/10  shadow-test05-file-match (0.035365 sec)
   passed   7/10  shadow-test06-literal-groups (0.044261 sec)
   passed   8/10  shadow-test07-regexp-groups (0.022294 sec)
cluster1 /Stefans-MBP: \`/Stefans-MBP:\' ((shadow-cluster cluster1 /Stefans-MBP: \`/Stefans-MBP:\'))
cluster2 /mock:Stefans-MBP: \`/mock:Stefans-MBP:\' ((shadow-cluster cluster2 /mock:Stefans-MBP: \`/mock:Stefans-MBP:\') (shadow-cluster cluster1 /Stefans-MBP: \`/Stefans-MBP:\'))
/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsr3ds3A ((/cluster1:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsr3ds3A /cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsr3ds3A))
(/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsr3ds3A . /cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsr3ds3A) nil
Test shadow-test08-shadow-todo backtrace:
  signal(ert-test-failed (((should (member (cons file (shadow-contract
  ert-fail(((should (member (cons file (shadow-contract-file-name (con
  (if (unwind-protect (setq value-549 (apply fn-547 args-548)) (setq f
  (let (form-description-551) (if (unwind-protect (setq value-549 (app
  (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-descr
  (let* ((fn-547 #'member) (args-548 (condition-case err (let ((signal
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "c
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) 
  (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err (let
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name shadow-test08-shadow-todo :documentat
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) 
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el"
  command-line()
  normal-top-level()
Test shadow-test08-shadow-todo condition:
    (ert-test-failed
     ((should
       (member
	(cons file ...)
	shadow-files-to-copy))
      :form
      (member
       ("/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsr3ds3A" . "/cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsr3ds3A")
       nil)
      :value nil))
   FAILED   9/10  shadow-test08-shadow-todo (0.415743 sec)


Test shadow-test09-shadow-copy-files backtrace:
  signal(ert-test-failed (((should (looking-at (regexp-quote "(setq sh
  ert-fail(((should (looking-at (regexp-quote "(setq shadow-files-to-c
  (if (unwind-protect (setq value-591 (apply fn-589 args-590)) (setq f
  (let (form-description-593) (if (unwind-protect (setq value-591 (app
  (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-descr
  (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let ((si
  (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (poi
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "c
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) 
  (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name shadow-test09-shadow-copy-files :docu
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) 
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el"
  command-line()
  normal-top-level()
Test shadow-test09-shadow-copy-files condition:
    (ert-test-failed
     ((should
       (looking-at
	(regexp-quote "(setq shadow-files-to-copy nil)")))
      :form
      (looking-at "(setq shadow-files-to-copy nil)")
      :value nil))
   FAILED  10/10  shadow-test09-shadow-copy-files (0.715995 sec)

Ran 10 tests, 8 results as expected, 2 unexpected (2019-09-04 18:22:18+0200, 6.632163 sec)

2 unexpected results:
   FAILED  shadow-test08-shadow-todo
   FAILED  shadow-test09-shadow-copy-files

make[1]: *** [lisp/shadowfile-tests.log] Error 1
make: *** [lisp/shadowfile-tests] Error 2

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-05 15:07             ` Stefan Kangas
@ 2019-09-07 10:33               ` Michael Albinus
  2019-09-07 12:45                 ` Stefan Kangas
  0 siblings, 1 reply; 25+ messages in thread
From: Michael Albinus @ 2019-09-07 10:33 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 37202

Stefan Kangas <stefan@marxist.se> writes:

> Thanks.  I tried your changes, but I still see the same failures.
> I've attached the log.

So I've added more traces, since it doesn't happen to me. Pls run.

> Best regards,
> Stefan Kangas

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-07 10:33               ` Michael Albinus
@ 2019-09-07 12:45                 ` Stefan Kangas
  2019-09-08  8:21                   ` Michael Albinus
  0 siblings, 1 reply; 25+ messages in thread
From: Stefan Kangas @ 2019-09-07 12:45 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 37202

[-- Attachment #1: Type: text/plain, Size: 167 bytes --]

Michael Albinus <michael.albinus@gmx.de> writes:

> So I've added more traces, since it doesn't happen to me. Pls run.

OK.  Log file attached.

Thanks,
Stefan Kangas

[-- Attachment #2: shadowfile-tests.log --]
[-- Type: application/octet-stream, Size: 74052 bytes --]

  ELC      lisp/shadowfile-tests.elc
  GEN      lisp/shadowfile-tests.log
Running 10 tests (2019-09-07 14:42:49+0200, selector `(not (tag :unstable))')
   passed   1/10  shadow-test00-clusters (4.052964 sec)
   passed   2/10  shadow-test01-sites (0.022327 sec)
   passed   3/10  shadow-test02-files (0.041241 sec)
   passed   4/10  shadow-test03-expand-cluster-in-file-name (0.027411 sec)
   passed   5/10  shadow-test04-contract-file-name (0.385955 sec)
   passed   6/10  shadow-test05-file-match (0.060554 sec)
   passed   7/10  shadow-test06-literal-groups (0.068872 sec)
   passed   8/10  shadow-test07-regexp-groups (0.032929 sec)
shadow-test08-shadow-todo: cluster1 /Stefans-MBP: \`/Stefans-MBP:\' ((shadow-cluster cluster1 /Stefans-MBP: \`/Stefans-MBP:\'))
shadow-test08-shadow-todo: cluster2 /mock:Stefans-MBP: \`/mock:Stefans-MBP:\' ((shadow-cluster cluster2 /mock:Stefans-MBP: \`/mock:Stefans-MBP:\') (shadow-cluster cluster1 /Stefans-MBP: \`/Stefans-MBP:\'))
shadow-test08-shadow-todo: /var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsmTKsYe ((/cluster1:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsmTKsYe /cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsmTKsYe))
shadow-add-to-todo: nil nil
  backtrace()
  shadow-add-to-todo()
  run-hook-with-args-until-success(shadow-add-to-todo)
  basic-save-buffer(nil)
  save-buffer()
  (progn (set-visited-file-name file) (insert "foo") (save-buffer))
  (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster1 primary regexp shadow-clusters))) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster2 primary regexp shadow-clusters))) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-literal-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name (concat "/cluster2:" file))) shadow-files-to-copy))) (let* ((fn-547 #'member) (args-548 (condition-case err (let ((signal-hook-function ...)) (list (cons file ...) shadow-files-to-copy)) (error (progn (setq fn-547 ...) (list ... ...)))))) (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-description-551) (if (unwind-protect (setq value-549 (apply fn-547 args-548)) (setq form-description-551 (nconc ... ... ... ...)) (ert--signal-should-execution form-description-551)) nil (ert-fail form-description-551))) value-549)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat (shadow-site-primary cluster2) file) (shadow-contract-file-name (concat "/cluster1:" file))) shadow-files-to-copy))) (let* ((fn-552 #'member) (args-553 (condition-case err (let ((signal-hook-function ...)) (list (cons ... ...) shadow-files-to-copy)) (error (progn (setq fn-552 ...) (list ... ...)))))) (let ((value-554 'ert-form-evaluation-aborted-555)) (let (form-description-556) (if (unwind-protect (setq value-554 (apply fn-552 args-553)) (setq form-description-556 (nconc ... ... ... ...)) (ert--signal-should-execution form-description-556)) nil (ert-fail form-description-556))) value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-regexp-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name (concat "/cluster2:" file))) shadow-files-to-copy))) (let* ((fn-557 #'member) (args-558 (condition-case err (let ((signal-hook-function ...)) (list (cons file ...) shadow-files-to-copy)) (error (progn (setq fn-557 ...) (list ... ...)))))) (let ((value-559 'ert-form-evaluation-aborted-560)) (let (form-description-561) (if (unwind-protect (setq value-559 (apply fn-557 args-558)) (setq form-description-561 (nconc ... ... ... ...)) (ert--signal-should-execution form-description-561)) nil (ert-fail form-description-561))) value-559)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat (shadow-site-primary cluster2) file) (shadow-contract-file-name (concat "/cluster1:" file))) shadow-files-to-copy))) (let* ((fn-562 #'member) (args-563 (condition-case err (let ((signal-hook-function ...)) (list (cons ... ...) shadow-files-to-copy)) (error (progn (setq fn-562 ...) (list ... ...)))))) (let ((value-564 'ert-form-evaluation-aborted-565)) (let (form-description-566) (if (unwind-protect (setq value-564 (apply fn-562 args-563)) (setq form-description-566 (nconc ... ... ... ...)) (ert--signal-should-execution form-description-566)) nil (ert-fail form-description-566))) value-564)))
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster1 primary regexp shadow-clusters))) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster2 primary regexp shadow-clusters))) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-literal-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name (concat "/cluster2:" file))) shadow-files-to-copy))) (let* ((fn-547 #'member) (args-548 (condition-case err (let (...) (list ... shadow-files-to-copy)) (error (progn ... ...))))) (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-description-551) (if (unwind-protect (setq value-549 ...) (setq form-description-551 ...) (ert--signal-should-execution form-description-551)) nil (ert-fail form-description-551))) value-549)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat ... file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat (shadow-site-primary cluster2) file) (shadow-contract-file-name (concat "/cluster1:" file))) shadow-files-to-copy))) (let* ((fn-552 #'member) (args-553 (condition-case err (let (...) (list ... shadow-files-to-copy)) (error (progn ... ...))))) (let ((value-554 'ert-form-evaluation-aborted-555)) (let (form-description-556) (if (unwind-protect (setq value-554 ...) (setq form-description-556 ...) (ert--signal-should-execution form-description-556)) nil (ert-fail form-description-556))) value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-regexp-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name (concat "/cluster2:" file))) shadow-files-to-copy))) (let* ((fn-557 #'member) (args-558 (condition-case err (let (...) (list ... shadow-files-to-copy)) (error (progn ... ...))))) (let ((value-559 'ert-form-evaluation-aborted-560)) (let (form-description-561) (if (unwind-protect (setq value-559 ...) (setq form-description-561 ...) (ert--signal-should-execution form-description-561)) nil (ert-fail form-description-561))) value-559)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat ... file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat (shadow-site-primary cluster2) file) (shadow-contract-file-name (concat "/cluster1:" file))) shadow-files-to-copy))) (let* ((fn-562 #'member) (args-563 (condition-case err (let (...) (list ... shadow-files-to-copy)) (error (progn ... ...))))) (let ((value-564 'ert-form-evaluation-aborted-565)) (let (form-description-566) (if (unwind-protect (setq value-564 ...) (setq form-description-566 ...) (ert--signal-should-execution form-description-566)) nil (ert-fail form-description-566))) value-564))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer (get-file-buffer elt)) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) shadow-clusters shadow-literal-groups shadow-regexp-groups shadow-files-to-copy cluster1 cluster2 primary regexp file) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster1 primary regexp shadow-clusters))) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster2 primary regexp shadow-clusters))) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-literal-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name ...)) shadow-files-to-copy))) (let* ((fn-547 #'member) (args-548 (condition-case err (let ... ...) (error ...)))) (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-description-551) (if (unwind-protect ... ... ...) nil (ert-fail form-description-551))) value-549)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name ...) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat ... file) (shadow-contract-file-name ...)) shadow-files-to-copy))) (let* ((fn-552 #'member) (args-553 (condition-case err (let ... ...) (error ...)))) (let ((value-554 'ert-form-evaluation-aborted-555)) (let (form-description-556) (if (unwind-protect ... ... ...) nil (ert-fail form-description-556))) value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-regexp-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name ...)) shadow-files-to-copy))) (let* ((fn-557 #'member) (args-558 (condition-case err (let ... ...) (error ...)))) (let ((value-559 'ert-form-evaluation-aborted-560)) (let (form-description-561) (if (unwind-protect ... ... ...) nil (ert-fail form-description-561))) value-559)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name ...) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat ... file) (shadow-contract-file-name ...)) shadow-files-to-copy))) (let* ((fn-562 #'member) (args-563 (condition-case err (let ... ...) (error ...)))) (let ((value-564 'ert-form-evaluation-aborted-565)) (let (form-description-566) (if (unwind-protect ... ... ...) nil (ert-fail form-description-566))) value-564))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer ...) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup)))
  (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err (let ((signal-hook-function ...)) (list (memq system-type ...))) (error (progn (setq fn-532 ...) (list ... ...)))))) (let ((value-534 'ert-form-evaluation-aborted-535)) (let (form-description-536) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-536))) value-534)) (let* ((fn-537 #'file-remote-p) (args-538 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-537 ...) (list ... ...)))))) (let ((value-539 'ert-form-evaluation-aborted-540)) (let (form-description-541) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-541))) value-539)) (let* ((fn-542 #'file-writable-p) (args-543 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-542 ...) (list ... ...)))))) (let ((value-544 'ert-form-evaluation-aborted-545)) (let (form-description-546) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-546))) value-544)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) shadow-clusters shadow-literal-groups shadow-regexp-groups shadow-files-to-copy cluster1 cluster2 primary regexp file) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster1 primary regexp shadow-clusters))) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster2 primary regexp shadow-clusters))) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-literal-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file ...) shadow-files-to-copy))) (let* ((fn-547 #'member) (args-548 (condition-case err ... ...))) (let ((value-549 ...)) (let (form-description-551) (if ... nil ...)) value-549)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons ... ...) shadow-files-to-copy))) (let* ((fn-552 #'member) (args-553 (condition-case err ... ...))) (let ((value-554 ...)) (let (form-description-556) (if ... nil ...)) value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list (list (concat ... ...) (concat ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-regexp-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file ...) shadow-files-to-copy))) (let* ((fn-557 #'member) (args-558 (condition-case err ... ...))) (let ((value-559 ...)) (let (form-description-561) (if ... nil ...)) value-559)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons ... ...) shadow-files-to-copy))) (let* ((fn-562 #'member) (args-563 (condition-case err ... ...))) (let ((value-564 ...)) (let (form-description-566) (if ... nil ...)) value-564))) (let ((--dolist-tail-- (list file (concat ... file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer ... ... ...)) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))))()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows are added to todo." :body (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err ... ...))) (let ((value-534 ...)) (let (form-description-536) (if ... nil ...)) value-534)) (let* ((fn-537 #'file-remote-p) (args-538 (condition-case err ... ...))) (let ((value-539 ...)) (let (form-description-541) (if ... nil ...)) value-539)) (let* ((fn-542 #'file-writable-p) (args-543 (condition-case err ... ...))) (let ((value-544 ...)) (let (form-description-546) (if ... nil ...)) value-544)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) shadow-clusters shadow-literal-groups shadow-regexp-groups shadow-files-to-copy cluster1 cluster2 primary regexp file) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp ...) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug ...) (setq cluster2 "cluster2" primary ... regexp ...) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug ...) (setq file ... shadow-literal-groups ...) (if shadow-debug ...) (let ... ...) (if shadow-debug ...) (let* ... ...) (let ... ...) (if shadow-debug ...) (let* ... ...) (setq shadow-files-to-copy nil shadow-regexp-groups ...) (if shadow-debug ...) (let ... ...) (if shadow-debug ...) (let* ... ...) (let ... ...) (if shadow-debug ...) (let* ... ...)) (let (... elt) (while --dolist-tail-- ... ... ... ...)) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil) :result #s(ert-test-aborted-with-non-local-exit :messages nil :should-forms nil :duration 0) :exit-continuation #f(compiled-function () #<bytecode 0x1feec261194d>) :next-debugger debug :ert-debug-on-error nil))
  ert-run-test(#s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows are added to todo." :body (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err (let ... ...) (error ...)))) (let ((value-534 'ert-form-evaluation-aborted-535)) (let (form-description-536) (if (condition-case nil ... ...) nil (ert-skip form-description-536))) value-534)) (let* ((fn-537 #'file-remote-p) (args-538 (condition-case err (let ... ...) (error ...)))) (let ((value-539 'ert-form-evaluation-aborted-540)) (let (form-description-541) (if (condition-case nil ... ...) nil (ert-skip form-description-541))) value-539)) (let* ((fn-542 #'file-writable-p) (args-543 (condition-case err (let ... ...) (error ...)))) (let ((value-544 'ert-form-evaluation-aborted-545)) (let (form-description-546) (if (condition-case nil ... ...) nil (ert-skip form-description-546))) value-544)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) shadow-clusters shadow-literal-groups shadow-regexp-groups shadow-files-to-copy cluster1 cluster2 primary regexp file) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn ...)) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn ...)) (setq file (make-temp-name ...) shadow-literal-groups (list ...)) (if shadow-debug (progn ...)) (let (...) (save-current-buffer ... ...)) (if shadow-debug (progn ...)) (let* (... ...) (let ... ... value-549)) (let (...) (save-current-buffer ... ...)) (if shadow-debug (progn ...)) (let* (... ...) (let ... ... value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list ...)) (if shadow-debug (progn ...)) (let (...) (save-current-buffer ... ...)) (if shadow-debug (progn ...)) (let* (... ...) (let ... ... value-559)) (let (...) (save-current-buffer ... ...)) (if shadow-debug (progn ...)) (let* (... ...) (let ... ... value-564))) (let ((--dolist-tail-- ...) elt) (while --dolist-tail-- (setq elt ...) (condition-case nil ... ...) (condition-case nil ... ...) (setq --dolist-tail-- ...))) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil))
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) :tests [#s(ert-test :name shadow-test00-clusters :documentation "Check cluster definitions...." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test01-sites :documentation "Check site definitions.\nPe..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test02-files :documentation "Check file manipulation fu..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test03-expand-cluster-in-file-name :documentation "Check canonical file name ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test04-contract-file-name :documentation "Check canonical file name ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test05-file-match :documentation "Check `shadow-same-site' a..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test06-literal-groups :documentation "Check literal group defini..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test07-regexp-groups :documentation "Check regexp group definit..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows ..." :body ... :most-recent-result nil :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body ... :most-recent-result nil :expected-result-type :passed :tags nil)] :test-map #<hash-table eql 10/10 0x1feec284444d> :test-results [#s(ert-test-passed :messages "Not a valid primary!\nRegex..." :should-forms ... :duration 4.052964) #s(ert-test-passed :messages "" :should-forms ... :duration 0.022327) #s(ert-test-passed :messages "" :should-forms ... :duration 0.041241) #s(ert-test-passed :messages "" :should-forms ... :duration 0.027411) #s(ert-test-passed :messages "" :should-forms ... :duration 0.385955) #s(ert-test-passed :messages "" :should-forms ... :duration 0.060554) #s(ert-test-passed :messages "" :should-forms ... :duration 0.068872) #s(ert-test-passed :messages "" :should-forms ... :duration 0.032929) nil nil] :test-start-times [(23923 42441 364081 0) (23923 42445 417171 0) (23923 42445 439606 0) (23923 42445 480959 0) (23923 42445 508466 0) (23923 42445 894546 0) (23923 42445 955208 0) (23923 42446 24181 0) (23923 42446 57179 0) nil] :test-end-times [(23923 42445 417045 0) (23923 42445 439498 0) (23923 42445 480847 0) (23923 42445 508370 0) (23923 42445 894421 0) (23923 42445 955100 0) (23923 42446 24080 0) (23923 42446 57110 0) nil nil] :passed-expected 8 :passed-unexpected 0 :failed-expected 0 :failed-unexpected 0 :skipped 0 :start-time (23923 42441 363945 0) :end-time nil :aborted-p nil :current-test #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows ..." :body (lambda nil ... ... ... ...) :most-recent-result nil :expected-result-type :passed :tags nil) :next-redisplay 0.0) #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows ..." :body (lambda nil (let* ... ...) (let* ... ...) (let* ... ...) (let ... ...)) :most-recent-result nil :expected-result-type :passed :tags nil) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1feec2621d0d>))
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1feec2621d0d>) nil)
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el" "--eval" "(ert-run-tests-batch-and-exit (quote (not (tag :un..."))
  command-line()
  normal-top-level()

shadow-test08-shadow-todo: (/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsmTKsYe . /cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsmTKsYe) nil
Test shadow-test08-shadow-todo backtrace:
  signal(ert-test-failed (((should (member (cons file (shadow-contract
  ert-fail(((should (member (cons file (shadow-contract-file-name (con
  (if (unwind-protect (setq value-549 (apply fn-547 args-548)) (setq f
  (let (form-description-551) (if (unwind-protect (setq value-549 (app
  (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-descr
  (let* ((fn-547 #'member) (args-548 (condition-case err (let ((signal
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "c
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) 
  (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err (let
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name shadow-test08-shadow-todo :documentat
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) 
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el"
  command-line()
  normal-top-level()
Test shadow-test08-shadow-todo condition:
    (ert-test-failed
     ((should
       (member
	(cons file ...)
	shadow-files-to-copy))
      :form
      (member
       ("/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsmTKsYe" . "/cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsmTKsYe")
       nil)
      :value nil))
   FAILED   9/10  shadow-test08-shadow-todo (0.627951 sec)
shadow-add-to-todo: nil nil
  backtrace()
  shadow-add-to-todo()
  run-hook-with-args-until-success(shadow-add-to-todo)
  basic-save-buffer(nil)
  save-buffer()
  (progn (set-visited-file-name file) (insert "foo") (save-buffer))
  (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function #'write-region)) #'(lambda (gv--val) (fset #'write-region gv--val))) #'(lambda (&rest args) (if (and (buffer-file-name) mocked-input) (progn (let* (... ...) (let ... ... value-584))))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect (setq value-587 shadow-files-to-copy) (setq form-description-588 (list ... :form ... :value value-587)) (ert--signal-should-execution form-description-588))) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let (...) (list ...)) (error (progn ... ...))))) (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-description-593) (if (unwind-protect (setq value-591 ...) (setq form-description-593 ...) (ert--signal-should-execution form-description-593)) nil (ert-fail form-description-593))) value-591))))
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat ... file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function #'write-region)) #'(lambda (gv--val) (fset #'write-region gv--val))) #'(lambda (&rest args) (if (and (buffer-file-name) mocked-input) (progn (let* ... ...)))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect (setq value-587 shadow-files-to-copy) (setq form-description-588 ...) (ert--signal-should-execution form-description-588))) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let ... ...) (error ...)))) (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-description-593) (if (unwind-protect ... ... ...) nil (ert-fail form-description-593))) value-591)))) (let* ((new (advice--remove-function (symbol-function #'write-region) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer (get-file-buffer elt)) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name ...) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function ...)) #'(lambda (gv--val) (fset ... gv--val))) #'(lambda (&rest args) (if (and ... mocked-input) (progn ...))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect ... ... ...)) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err ... ...))) (let ((value-591 ...)) (let (form-description-593) (if ... nil ...)) value-591)))) (let* ((new (advice--remove-function (symbol-function #'write-region) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer ...) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup)))
  (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let ((signal-hook-function ...)) (list (memq system-type ...))) (error (progn (setq fn-567 ...) (list ... ...)))))) (let ((value-569 'ert-form-evaluation-aborted-570)) (let (form-description-571) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-571))) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-572 ...) (list ... ...)))))) (let ((value-574 'ert-form-evaluation-aborted-575)) (let (form-description-576) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-576))) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-577 ...) (list ... ...)))))) (let ((value-579 'ert-form-evaluation-aborted-580)) (let (form-description-581) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-581))) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat ... ...) (concat ... ...))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (advice--add-function :before (cons #'(lambda nil ...) #'(lambda ... ...)) #'(lambda (&rest args) (if ... ...)) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not ...) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 ...) (args-590 ...)) (let (...) (let ... ...) value-591)))) (let* ((new (advice--remove-function (symbol-function ...) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat ... file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer ... ... ...)) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))))()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow files are copied." :body (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err ... ...))) (let ((value-569 ...)) (let (form-description-571) (if ... nil ...)) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err ... ...))) (let ((value-574 ...)) (let (form-description-576) (if ... nil ...)) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err ... ...))) (let ((value-579 ...)) (let (form-description-581) (if ... nil ...)) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp ...) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary ... regexp ...) (shadow-set-cluster cluster2 primary regexp) (setq file ... shadow-literal-groups ... shadow-regexp-groups ... mocked-input ...) (let ... ...) (let ... ...) (advice--add-function :before ... ... ...) (shadow-copy-files ...) (let ... ... value-587) (save-current-buffer ... ... ...)) (let* (...) (if ... nil ...)) (let (... elt) (while --dolist-tail-- ... ... ... ...)) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil) :result #s(ert-test-aborted-with-non-local-exit :messages nil :should-forms nil :duration 0) :exit-continuation #f(compiled-function () #<bytecode 0x1feec261194d>) :next-debugger debug :ert-debug-on-error nil))
  ert-run-test(#s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow files are copied." :body (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let ... ...) (error ...)))) (let ((value-569 'ert-form-evaluation-aborted-570)) (let (form-description-571) (if (condition-case nil ... ...) nil (ert-skip form-description-571))) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err (let ... ...) (error ...)))) (let ((value-574 'ert-form-evaluation-aborted-575)) (let (form-description-576) (if (condition-case nil ... ...) nil (ert-skip form-description-576))) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err (let ... ...) (error ...)))) (let ((value-579 'ert-form-evaluation-aborted-580)) (let (form-description-581) (if (condition-case nil ... ...) nil (ert-skip form-description-581))) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name ...) shadow-literal-groups (list ...) shadow-regexp-groups (list ...) mocked-input (list ... file)) (let (...) (save-current-buffer ... ...)) (let (...) (save-current-buffer ... ...)) (advice--add-function :before (cons ... ...) #'... '...) (shadow-copy-files 'noquery) (let (...) (let ... ...) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char ...) (let* ... ...))) (let* ((new ...)) (if (eq new ...) nil (fset ... new))) (let ((--dolist-tail-- ...) elt) (while --dolist-tail-- (setq elt ...) (condition-case nil ... ...) (condition-case nil ... ...) (setq --dolist-tail-- ...))) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil))
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) :tests [#s(ert-test :name shadow-test00-clusters :documentation "Check cluster definitions...." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test01-sites :documentation "Check site definitions.\nPe..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test02-files :documentation "Check file manipulation fu..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test03-expand-cluster-in-file-name :documentation "Check canonical file name ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test04-contract-file-name :documentation "Check canonical file name ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test05-file-match :documentation "Check `shadow-same-site' a..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test06-literal-groups :documentation "Check literal group defini..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test07-regexp-groups :documentation "Check regexp group definit..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body ... :most-recent-result nil :expected-result-type :passed :tags nil)] :test-map #<hash-table eql 10/10 0x1feec284444d> :test-results [#s(ert-test-passed :messages "Not a valid primary!\nRegex..." :should-forms ... :duration 4.052964) #s(ert-test-passed :messages "" :should-forms ... :duration 0.022327) #s(ert-test-passed :messages "" :should-forms ... :duration 0.041241) #s(ert-test-passed :messages "" :should-forms ... :duration 0.027411) #s(ert-test-passed :messages "" :should-forms ... :duration 0.385955) #s(ert-test-passed :messages "" :should-forms ... :duration 0.060554) #s(ert-test-passed :messages "" :should-forms ... :duration 0.068872) #s(ert-test-passed :messages "" :should-forms ... :duration 0.032929) #s(ert-test-failed :messages "shadow-test08-shadow-todo:..." :should-forms ... :duration 0.627951 :condition ... :backtrace ... :infos nil) nil] :test-start-times [(23923 42441 364081 0) (23923 42445 417171 0) (23923 42445 439606 0) (23923 42445 480959 0) (23923 42445 508466 0) (23923 42445 894546 0) (23923 42445 955208 0) (23923 42446 24181 0) (23923 42446 57179 0) (23923 42447 141451 0)] :test-end-times [(23923 42445 417045 0) (23923 42445 439498 0) (23923 42445 480847 0) (23923 42445 508370 0) (23923 42445 894421 0) (23923 42445 955100 0) (23923 42446 24080 0) (23923 42446 57110 0) (23923 42446 685130 0) nil] :passed-expected 8 :passed-unexpected 0 :failed-expected 0 :failed-unexpected 1 :skipped 0 :start-time (23923 42441 363945 0) :end-time nil :aborted-p nil :current-test #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body (lambda nil ... ... ... ...) :most-recent-result nil :expected-result-type :passed :tags nil) :next-redisplay 0.0) #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body (lambda nil (let* ... ...) (let* ... ...) (let* ... ...) (let ... ...)) :most-recent-result nil :expected-result-type :passed :tags nil) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1feec2621d0d>))
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1feec2621d0d>) nil)
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el" "--eval" "(ert-run-tests-batch-and-exit (quote (not (tag :un..."))
  command-line()
  normal-top-level()



shadow-add-to-todo: nil nil
  backtrace()
  shadow-add-to-todo()
  run-hook-with-args-until-success(shadow-add-to-todo)
  basic-save-buffer(nil)
  save-buffer()
  (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer))
  (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function #'write-region)) #'(lambda (gv--val) (fset #'write-region gv--val))) #'(lambda (&rest args) (if (and (buffer-file-name) mocked-input) (progn (let* (... ...) (let ... ... value-584))))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect (setq value-587 shadow-files-to-copy) (setq form-description-588 (list ... :form ... :value value-587)) (ert--signal-should-execution form-description-588))) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let (...) (list ...)) (error (progn ... ...))))) (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-description-593) (if (unwind-protect (setq value-591 ...) (setq form-description-593 ...) (ert--signal-should-execution form-description-593)) nil (ert-fail form-description-593))) value-591))))
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat ... file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function #'write-region)) #'(lambda (gv--val) (fset #'write-region gv--val))) #'(lambda (&rest args) (if (and (buffer-file-name) mocked-input) (progn (let* ... ...)))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect (setq value-587 shadow-files-to-copy) (setq form-description-588 ...) (ert--signal-should-execution form-description-588))) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let ... ...) (error ...)))) (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-description-593) (if (unwind-protect ... ... ...) nil (ert-fail form-description-593))) value-591)))) (let* ((new (advice--remove-function (symbol-function #'write-region) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer (get-file-buffer elt)) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name ...) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function ...)) #'(lambda (gv--val) (fset ... gv--val))) #'(lambda (&rest args) (if (and ... mocked-input) (progn ...))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect ... ... ...)) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err ... ...))) (let ((value-591 ...)) (let (form-description-593) (if ... nil ...)) value-591)))) (let* ((new (advice--remove-function (symbol-function #'write-region) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer ...) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup)))
  (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let ((signal-hook-function ...)) (list (memq system-type ...))) (error (progn (setq fn-567 ...) (list ... ...)))))) (let ((value-569 'ert-form-evaluation-aborted-570)) (let (form-description-571) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-571))) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-572 ...) (list ... ...)))))) (let ((value-574 'ert-form-evaluation-aborted-575)) (let (form-description-576) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-576))) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-577 ...) (list ... ...)))))) (let ((value-579 'ert-form-evaluation-aborted-580)) (let (form-description-581) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-581))) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat ... ...) (concat ... ...))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (advice--add-function :before (cons #'(lambda nil ...) #'(lambda ... ...)) #'(lambda (&rest args) (if ... ...)) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not ...) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 ...) (args-590 ...)) (let (...) (let ... ...) value-591)))) (let* ((new (advice--remove-function (symbol-function ...) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat ... file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer ... ... ...)) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))))()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow files are copied." :body (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err ... ...))) (let ((value-569 ...)) (let (form-description-571) (if ... nil ...)) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err ... ...))) (let ((value-574 ...)) (let (form-description-576) (if ... nil ...)) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err ... ...))) (let ((value-579 ...)) (let (form-description-581) (if ... nil ...)) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp ...) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary ... regexp ...) (shadow-set-cluster cluster2 primary regexp) (setq file ... shadow-literal-groups ... shadow-regexp-groups ... mocked-input ...) (let ... ...) (let ... ...) (advice--add-function :before ... ... ...) (shadow-copy-files ...) (let ... ... value-587) (save-current-buffer ... ... ...)) (let* (...) (if ... nil ...)) (let (... elt) (while --dolist-tail-- ... ... ... ...)) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil) :result #s(ert-test-aborted-with-non-local-exit :messages nil :should-forms nil :duration 0) :exit-continuation #f(compiled-function () #<bytecode 0x1feec261194d>) :next-debugger debug :ert-debug-on-error nil))
  ert-run-test(#s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow files are copied." :body (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let ... ...) (error ...)))) (let ((value-569 'ert-form-evaluation-aborted-570)) (let (form-description-571) (if (condition-case nil ... ...) nil (ert-skip form-description-571))) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err (let ... ...) (error ...)))) (let ((value-574 'ert-form-evaluation-aborted-575)) (let (form-description-576) (if (condition-case nil ... ...) nil (ert-skip form-description-576))) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err (let ... ...) (error ...)))) (let ((value-579 'ert-form-evaluation-aborted-580)) (let (form-description-581) (if (condition-case nil ... ...) nil (ert-skip form-description-581))) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name ...) shadow-literal-groups (list ...) shadow-regexp-groups (list ...) mocked-input (list ... file)) (let (...) (save-current-buffer ... ...)) (let (...) (save-current-buffer ... ...)) (advice--add-function :before (cons ... ...) #'... '...) (shadow-copy-files 'noquery) (let (...) (let ... ...) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char ...) (let* ... ...))) (let* ((new ...)) (if (eq new ...) nil (fset ... new))) (let ((--dolist-tail-- ...) elt) (while --dolist-tail-- (setq elt ...) (condition-case nil ... ...) (condition-case nil ... ...) (setq --dolist-tail-- ...))) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil))
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) :tests [#s(ert-test :name shadow-test00-clusters :documentation "Check cluster definitions...." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test01-sites :documentation "Check site definitions.\nPe..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test02-files :documentation "Check file manipulation fu..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test03-expand-cluster-in-file-name :documentation "Check canonical file name ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test04-contract-file-name :documentation "Check canonical file name ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test05-file-match :documentation "Check `shadow-same-site' a..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test06-literal-groups :documentation "Check literal group defini..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test07-regexp-groups :documentation "Check regexp group definit..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body ... :most-recent-result nil :expected-result-type :passed :tags nil)] :test-map #<hash-table eql 10/10 0x1feec284444d> :test-results [#s(ert-test-passed :messages "Not a valid primary!\nRegex..." :should-forms ... :duration 4.052964) #s(ert-test-passed :messages "" :should-forms ... :duration 0.022327) #s(ert-test-passed :messages "" :should-forms ... :duration 0.041241) #s(ert-test-passed :messages "" :should-forms ... :duration 0.027411) #s(ert-test-passed :messages "" :should-forms ... :duration 0.385955) #s(ert-test-passed :messages "" :should-forms ... :duration 0.060554) #s(ert-test-passed :messages "" :should-forms ... :duration 0.068872) #s(ert-test-passed :messages "" :should-forms ... :duration 0.032929) #s(ert-test-failed :messages "shadow-test08-shadow-todo:..." :should-forms ... :duration 0.627951 :condition ... :backtrace ... :infos nil) nil] :test-start-times [(23923 42441 364081 0) (23923 42445 417171 0) (23923 42445 439606 0) (23923 42445 480959 0) (23923 42445 508466 0) (23923 42445 894546 0) (23923 42445 955208 0) (23923 42446 24181 0) (23923 42446 57179 0) (23923 42447 141451 0)] :test-end-times [(23923 42445 417045 0) (23923 42445 439498 0) (23923 42445 480847 0) (23923 42445 508370 0) (23923 42445 894421 0) (23923 42445 955100 0) (23923 42446 24080 0) (23923 42446 57110 0) (23923 42446 685130 0) nil] :passed-expected 8 :passed-unexpected 0 :failed-expected 0 :failed-unexpected 1 :skipped 0 :start-time (23923 42441 363945 0) :end-time nil :aborted-p nil :current-test #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body (lambda nil ... ... ... ...) :most-recent-result nil :expected-result-type :passed :tags nil) :next-redisplay 0.0) #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body (lambda nil (let* ... ...) (let* ... ...) (let* ... ...) (let ... ...)) :most-recent-result nil :expected-result-type :passed :tags nil) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1feec2621d0d>))
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1feec2621d0d>) nil)
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el" "--eval" "(ert-run-tests-batch-and-exit (quote (not (tag :un..."))
  command-line()
  normal-top-level()

Test shadow-test09-shadow-copy-files backtrace:
  signal(ert-test-failed (((should (looking-at (regexp-quote "(setq sh
  ert-fail(((should (looking-at (regexp-quote "(setq shadow-files-to-c
  (if (unwind-protect (setq value-591 (apply fn-589 args-590)) (setq f
  (let (form-description-593) (if (unwind-protect (setq value-591 (app
  (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-descr
  (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let ((si
  (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (poi
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "c
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) 
  (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name shadow-test09-shadow-copy-files :docu
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) 
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el"
  command-line()
  normal-top-level()
Test shadow-test09-shadow-copy-files condition:
    (ert-test-failed
     ((should
       (looking-at
	(regexp-quote "(setq shadow-files-to-copy nil)")))
      :form
      (looking-at "(setq shadow-files-to-copy nil)")
      :value nil))
   FAILED  10/10  shadow-test09-shadow-copy-files (1.161314 sec)

Ran 10 tests, 8 results as expected, 2 unexpected (2019-09-07 14:42:56+0200, 7.313746 sec)

2 unexpected results:
   FAILED  shadow-test08-shadow-todo
   FAILED  shadow-test09-shadow-copy-files

make[1]: *** [lisp/shadowfile-tests.log] Error 1
make: *** [lisp/shadowfile-tests] Error 2

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-07 12:45                 ` Stefan Kangas
@ 2019-09-08  8:21                   ` Michael Albinus
  2019-09-08 20:23                     ` Stefan Kangas
  0 siblings, 1 reply; 25+ messages in thread
From: Michael Albinus @ 2019-09-08  8:21 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 37202

Stefan Kangas <stefan@marxist.se> writes:

Hi Stefan,

>> So I've added more traces, since it doesn't happen to me. Pls run.
>
> OK.  Log file attached.

That helped, indeed.

>    passed   8/10  shadow-test07-regexp-groups (0.032929 sec)
> shadow-test08-shadow-todo: cluster1 /Stefans-MBP: \`/Stefans-MBP:\' ((shadow-cluster cluster1 /Stefans-MBP: \`/Stefans-MBP:\'))
> shadow-test08-shadow-todo: cluster2 /mock:Stefans-MBP: \`/mock:Stefans-MBP:\' ((shadow-cluster cluster2 /mock:Stefans-MBP: \`/mock:Stefans-MBP:\') (shadow-cluster cluster1 /Stefans-MBP: \`/Stefans-MBP:\'))
> shadow-test08-shadow-todo: /var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsmTKsYe ((/cluster1:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsmTKsYe /cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsmTKsYe))
> shadow-add-to-todo: nil nil

That's the first difference to my traces. Locally, I have here

shadow-add-to-todo: ((/tmp/shadowfile-tests0mPIFq . /cluster2:/tmp/shadowfile-tests0mPIFq)) nil

So you have a nil value of `shadows' in that trace. Looking at the code,
I see that `file-truename' is used to compute `shadows'. That rings a
bell - `temporary-file-directory' on macOS is located on a symlink. I
ran into this trap earlier already.

I hope, that my fix, pushed to master, fixes this now.

> Thanks,
> Stefan Kangas

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-08  8:21                   ` Michael Albinus
@ 2019-09-08 20:23                     ` Stefan Kangas
  2019-09-13 12:29                       ` Michael Albinus
  0 siblings, 1 reply; 25+ messages in thread
From: Stefan Kangas @ 2019-09-08 20:23 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 37202

[-- Attachment #1: Type: text/plain, Size: 757 bytes --]

Michael Albinus <michael.albinus@gmx.de> writes:

> That's the first difference to my traces. Locally, I have here
>
> shadow-add-to-todo: ((/tmp/shadowfile-tests0mPIFq . /cluster2:/tmp/shadowfile-tests0mPIFq)) nil
>
> So you have a nil value of `shadows' in that trace. Looking at the code,
> I see that `file-truename' is used to compute `shadows'. That rings a
> bell - `temporary-file-directory' on macOS is located on a symlink. I
> ran into this trap earlier already.
>
> I hope, that my fix, pushed to master, fixes this now.

I'm still seing failures on current master on these tests, including
the line you noted above:

shadow-add-to-todo: nil nil

I've attached the complete log of the latest run (commit 034f9363e).

Thanks again,
Stefan Kangas

[-- Attachment #2: shadowfile-tests.log --]
[-- Type: application/octet-stream, Size: 75336 bytes --]

  ELC      lisp/shadowfile-tests.elc
  GEN      lisp/shadowfile-tests.log
Running 10 tests (2019-09-08 22:18:08+0200, selector `(not (tag :unstable))')
   passed   1/10  shadow-test00-clusters (4.054058 sec)
   passed   2/10  shadow-test01-sites (0.019025 sec)
   passed   3/10  shadow-test02-files (0.031444 sec)
   passed   4/10  shadow-test03-expand-cluster-in-file-name (0.017081 sec)
   passed   5/10  shadow-test04-contract-file-name (0.188851 sec)
   passed   6/10  shadow-test05-file-match (0.034957 sec)
   passed   7/10  shadow-test06-literal-groups (0.040878 sec)
   passed   8/10  shadow-test07-regexp-groups (0.017809 sec)
shadow-test08-shadow-todo: cluster1 /Stefans-MBP: \`/Stefans-MBP:\' ((shadow-cluster cluster1 /Stefans-MBP: \`/Stefans-MBP:\'))
shadow-test08-shadow-todo: cluster2 /mock:Stefans-MBP: \`/mock:Stefans-MBP:\' ((shadow-cluster cluster2 /mock:Stefans-MBP: \`/mock:Stefans-MBP:\') (shadow-cluster cluster1 /Stefans-MBP: \`/Stefans-MBP:\'))
shadow-test08-shadow-todo: /var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsQbhZHe ((/cluster1:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsQbhZHe /cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsQbhZHe))
shadow-add-to-todo: nil nil
  backtrace()
  shadow-add-to-todo()
  run-hook-with-args-until-success(shadow-add-to-todo)
  basic-save-buffer(nil)
  save-buffer()
  (progn (set-visited-file-name file) (insert "foo") (save-buffer))
  (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster1 primary regexp shadow-clusters))) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster2 primary regexp shadow-clusters))) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-literal-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name (concat "/cluster2:" file))) shadow-files-to-copy))) (let* ((fn-547 #'member) (args-548 (condition-case err (let ((signal-hook-function ...)) (list (cons file ...) shadow-files-to-copy)) (error (progn (setq fn-547 ...) (list ... ...)))))) (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-description-551) (if (unwind-protect (setq value-549 (apply fn-547 args-548)) (setq form-description-551 (nconc ... ... ... ...)) (ert--signal-should-execution form-description-551)) nil (ert-fail form-description-551))) value-549)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat (shadow-site-primary cluster2) file) (shadow-contract-file-name (concat "/cluster1:" file))) shadow-files-to-copy))) (let* ((fn-552 #'member) (args-553 (condition-case err (let ((signal-hook-function ...)) (list (cons ... ...) shadow-files-to-copy)) (error (progn (setq fn-552 ...) (list ... ...)))))) (let ((value-554 'ert-form-evaluation-aborted-555)) (let (form-description-556) (if (unwind-protect (setq value-554 (apply fn-552 args-553)) (setq form-description-556 (nconc ... ... ... ...)) (ert--signal-should-execution form-description-556)) nil (ert-fail form-description-556))) value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-regexp-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name (concat "/cluster2:" file))) shadow-files-to-copy))) (let* ((fn-557 #'member) (args-558 (condition-case err (let ((signal-hook-function ...)) (list (cons file ...) shadow-files-to-copy)) (error (progn (setq fn-557 ...) (list ... ...)))))) (let ((value-559 'ert-form-evaluation-aborted-560)) (let (form-description-561) (if (unwind-protect (setq value-559 (apply fn-557 args-558)) (setq form-description-561 (nconc ... ... ... ...)) (ert--signal-should-execution form-description-561)) nil (ert-fail form-description-561))) value-559)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat (shadow-site-primary cluster2) file) (shadow-contract-file-name (concat "/cluster1:" file))) shadow-files-to-copy))) (let* ((fn-562 #'member) (args-563 (condition-case err (let ((signal-hook-function ...)) (list (cons ... ...) shadow-files-to-copy)) (error (progn (setq fn-562 ...) (list ... ...)))))) (let ((value-564 'ert-form-evaluation-aborted-565)) (let (form-description-566) (if (unwind-protect (setq value-564 (apply fn-562 args-563)) (setq form-description-566 (nconc ... ... ... ...)) (ert--signal-should-execution form-description-566)) nil (ert-fail form-description-566))) value-564)))
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster1 primary regexp shadow-clusters))) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster2 primary regexp shadow-clusters))) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-literal-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name (concat "/cluster2:" file))) shadow-files-to-copy))) (let* ((fn-547 #'member) (args-548 (condition-case err (let (...) (list ... shadow-files-to-copy)) (error (progn ... ...))))) (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-description-551) (if (unwind-protect (setq value-549 ...) (setq form-description-551 ...) (ert--signal-should-execution form-description-551)) nil (ert-fail form-description-551))) value-549)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat ... file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat (shadow-site-primary cluster2) file) (shadow-contract-file-name (concat "/cluster1:" file))) shadow-files-to-copy))) (let* ((fn-552 #'member) (args-553 (condition-case err (let (...) (list ... shadow-files-to-copy)) (error (progn ... ...))))) (let ((value-554 'ert-form-evaluation-aborted-555)) (let (form-description-556) (if (unwind-protect (setq value-554 ...) (setq form-description-556 ...) (ert--signal-should-execution form-description-556)) nil (ert-fail form-description-556))) value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-regexp-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name (concat "/cluster2:" file))) shadow-files-to-copy))) (let* ((fn-557 #'member) (args-558 (condition-case err (let (...) (list ... shadow-files-to-copy)) (error (progn ... ...))))) (let ((value-559 'ert-form-evaluation-aborted-560)) (let (form-description-561) (if (unwind-protect (setq value-559 ...) (setq form-description-561 ...) (ert--signal-should-execution form-description-561)) nil (ert-fail form-description-561))) value-559)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat ... file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat (shadow-site-primary cluster2) file) (shadow-contract-file-name (concat "/cluster1:" file))) shadow-files-to-copy))) (let* ((fn-562 #'member) (args-563 (condition-case err (let (...) (list ... shadow-files-to-copy)) (error (progn ... ...))))) (let ((value-564 'ert-form-evaluation-aborted-565)) (let (form-description-566) (if (unwind-protect (setq value-564 ...) (setq form-description-566 ...) (ert--signal-should-execution form-description-566)) nil (ert-fail form-description-566))) value-564))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer (get-file-buffer elt)) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) shadow-clusters shadow-literal-groups shadow-regexp-groups shadow-files-to-copy cluster1 cluster2 primary regexp file) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster1 primary regexp shadow-clusters))) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster2 primary regexp shadow-clusters))) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-literal-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name ...)) shadow-files-to-copy))) (let* ((fn-547 #'member) (args-548 (condition-case err (let ... ...) (error ...)))) (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-description-551) (if (unwind-protect ... ... ...) nil (ert-fail form-description-551))) value-549)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name ...) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat ... file) (shadow-contract-file-name ...)) shadow-files-to-copy))) (let* ((fn-552 #'member) (args-553 (condition-case err (let ... ...) (error ...)))) (let ((value-554 'ert-form-evaluation-aborted-555)) (let (form-description-556) (if (unwind-protect ... ... ...) nil (ert-fail form-description-556))) value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-regexp-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name ...)) shadow-files-to-copy))) (let* ((fn-557 #'member) (args-558 (condition-case err (let ... ...) (error ...)))) (let ((value-559 'ert-form-evaluation-aborted-560)) (let (form-description-561) (if (unwind-protect ... ... ...) nil (ert-fail form-description-561))) value-559)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name ...) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat ... file) (shadow-contract-file-name ...)) shadow-files-to-copy))) (let* ((fn-562 #'member) (args-563 (condition-case err (let ... ...) (error ...)))) (let ((value-564 'ert-form-evaluation-aborted-565)) (let (form-description-566) (if (unwind-protect ... ... ...) nil (ert-fail form-description-566))) value-564))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer ...) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup)))
  (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err (let ((signal-hook-function ...)) (list (memq system-type ...))) (error (progn (setq fn-532 ...) (list ... ...)))))) (let ((value-534 'ert-form-evaluation-aborted-535)) (let (form-description-536) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-536))) value-534)) (let* ((fn-537 #'file-remote-p) (args-538 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-537 ...) (list ... ...)))))) (let ((value-539 'ert-form-evaluation-aborted-540)) (let (form-description-541) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-541))) value-539)) (let* ((fn-542 #'file-writable-p) (args-543 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-542 ...) (list ... ...)))))) (let ((value-544 'ert-form-evaluation-aborted-545)) (let (form-description-546) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-546))) value-544)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) shadow-clusters shadow-literal-groups shadow-regexp-groups shadow-files-to-copy cluster1 cluster2 primary regexp file) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster1 primary regexp shadow-clusters))) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster2 primary regexp shadow-clusters))) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-literal-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file ...) shadow-files-to-copy))) (let* ((fn-547 #'member) (args-548 (condition-case err ... ...))) (let ((value-549 ...)) (let (form-description-551) (if ... nil ...)) value-549)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons ... ...) shadow-files-to-copy))) (let* ((fn-552 #'member) (args-553 (condition-case err ... ...))) (let ((value-554 ...)) (let (form-description-556) (if ... nil ...)) value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list (list (concat ... ...) (concat ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-regexp-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file ...) shadow-files-to-copy))) (let* ((fn-557 #'member) (args-558 (condition-case err ... ...))) (let ((value-559 ...)) (let (form-description-561) (if ... nil ...)) value-559)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons ... ...) shadow-files-to-copy))) (let* ((fn-562 #'member) (args-563 (condition-case err ... ...))) (let ((value-564 ...)) (let (form-description-566) (if ... nil ...)) value-564))) (let ((--dolist-tail-- (list file (concat ... file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer ... ... ...)) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))))()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows are added to todo." :body (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err ... ...))) (let ((value-534 ...)) (let (form-description-536) (if ... nil ...)) value-534)) (let* ((fn-537 #'file-remote-p) (args-538 (condition-case err ... ...))) (let ((value-539 ...)) (let (form-description-541) (if ... nil ...)) value-539)) (let* ((fn-542 #'file-writable-p) (args-543 (condition-case err ... ...))) (let ((value-544 ...)) (let (form-description-546) (if ... nil ...)) value-544)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) shadow-clusters shadow-literal-groups shadow-regexp-groups shadow-files-to-copy cluster1 cluster2 primary regexp file) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp ...) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug ...) (setq cluster2 "cluster2" primary ... regexp ...) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug ...) (setq file ... shadow-literal-groups ...) (if shadow-debug ...) (let ... ...) (if shadow-debug ...) (let* ... ...) (let ... ...) (if shadow-debug ...) (let* ... ...) (setq shadow-files-to-copy nil shadow-regexp-groups ...) (if shadow-debug ...) (let ... ...) (if shadow-debug ...) (let* ... ...) (let ... ...) (if shadow-debug ...) (let* ... ...)) (let (... elt) (while --dolist-tail-- ... ... ... ...)) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil) :result #s(ert-test-aborted-with-non-local-exit :messages nil :should-forms nil :duration 0) :exit-continuation #f(compiled-function () #<bytecode 0x1ff5b961d3cd>) :next-debugger debug :ert-debug-on-error nil))
  ert-run-test(#s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows are added to todo." :body (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err (let ... ...) (error ...)))) (let ((value-534 'ert-form-evaluation-aborted-535)) (let (form-description-536) (if (condition-case nil ... ...) nil (ert-skip form-description-536))) value-534)) (let* ((fn-537 #'file-remote-p) (args-538 (condition-case err (let ... ...) (error ...)))) (let ((value-539 'ert-form-evaluation-aborted-540)) (let (form-description-541) (if (condition-case nil ... ...) nil (ert-skip form-description-541))) value-539)) (let* ((fn-542 #'file-writable-p) (args-543 (condition-case err (let ... ...) (error ...)))) (let ((value-544 'ert-form-evaluation-aborted-545)) (let (form-description-546) (if (condition-case nil ... ...) nil (ert-skip form-description-546))) value-544)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) shadow-clusters shadow-literal-groups shadow-regexp-groups shadow-files-to-copy cluster1 cluster2 primary regexp file) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn ...)) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn ...)) (setq file (make-temp-name ...) shadow-literal-groups (list ...)) (if shadow-debug (progn ...)) (let (...) (save-current-buffer ... ...)) (if shadow-debug (progn ...)) (let* (... ...) (let ... ... value-549)) (let (...) (save-current-buffer ... ...)) (if shadow-debug (progn ...)) (let* (... ...) (let ... ... value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list ...)) (if shadow-debug (progn ...)) (let (...) (save-current-buffer ... ...)) (if shadow-debug (progn ...)) (let* (... ...) (let ... ... value-559)) (let (...) (save-current-buffer ... ...)) (if shadow-debug (progn ...)) (let* (... ...) (let ... ... value-564))) (let ((--dolist-tail-- ...) elt) (while --dolist-tail-- (setq elt ...) (condition-case nil ... ...) (condition-case nil ... ...) (setq --dolist-tail-- ...))) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil))
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) :tests [#s(ert-test :name shadow-test00-clusters :documentation "Check cluster definitions...." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test01-sites :documentation "Check site definitions.\nPe..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test02-files :documentation "Check file manipulation fu..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test03-expand-cluster-in-file-name :documentation "Check canonical file name ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test04-contract-file-name :documentation "Check canonical file name ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test05-file-match :documentation "Check `shadow-same-site' a..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test06-literal-groups :documentation "Check literal group defini..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test07-regexp-groups :documentation "Check regexp group definit..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows ..." :body ... :most-recent-result nil :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body ... :most-recent-result nil :expected-result-type :passed :tags nil)] :test-map #<hash-table eql 10/10 0x1ff5b943554d> :test-results [#s(ert-test-passed :messages "Not a valid primary!\nRegex..." :should-forms ... :duration 4.054058) #s(ert-test-passed :messages "" :should-forms ... :duration 0.019025) #s(ert-test-passed :messages "" :should-forms ... :duration 0.031444) #s(ert-test-passed :messages "" :should-forms ... :duration 0.017081) #s(ert-test-passed :messages "" :should-forms ... :duration 0.188851) #s(ert-test-passed :messages "" :should-forms ... :duration 0.034957) #s(ert-test-passed :messages "" :should-forms ... :duration 0.040878) #s(ert-test-passed :messages "" :should-forms ... :duration 0.017809) nil nil] :test-start-times [(23925 25088 333098 0) (23925 25092 387309 0) (23925 25092 406397 0) (23925 25092 437905 0) (23925 25092 455050 0) (23925 25092 643982 0) (23925 25092 679003 0) (23925 25092 719950 0) (23925 25092 737824 0) nil] :test-end-times [(23925 25092 387156 0) (23925 25092 406334 0) (23925 25092 437841 0) (23925 25092 454986 0) (23925 25092 643901 0) (23925 25092 678939 0) (23925 25092 719881 0) (23925 25092 737759 0) nil nil] :passed-expected 8 :passed-unexpected 0 :failed-expected 0 :failed-unexpected 0 :skipped 0 :start-time (23925 25088 332964 0) :end-time nil :aborted-p nil :current-test #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows ..." :body (lambda nil ... ... ... ...) :most-recent-result nil :expected-result-type :passed :tags nil) :next-redisplay 0.0) #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows ..." :body (lambda nil (let* ... ...) (let* ... ...) (let* ... ...) (let ... ...)) :most-recent-result nil :expected-result-type :passed :tags nil) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1ff5b962be0d>))
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1ff5b962be0d>) nil)
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el" "--eval" "(ert-run-tests-batch-and-exit (quote (not (tag :un..."))
  command-line()
  normal-top-level()

shadow-test08-shadow-todo: (/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsQbhZHe . /cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsQbhZHe) nil
Test shadow-test08-shadow-todo backtrace:
  signal(ert-test-failed (((should (member (cons file (shadow-contract
  ert-fail(((should (member (cons file (shadow-contract-file-name (con
  (if (unwind-protect (setq value-549 (apply fn-547 args-548)) (setq f
  (let (form-description-551) (if (unwind-protect (setq value-549 (app
  (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-descr
  (let* ((fn-547 #'member) (args-548 (condition-case err (let ((signal
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "c
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) 
  (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err (let
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name shadow-test08-shadow-todo :documentat
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) 
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el"
  command-line()
  normal-top-level()
Test shadow-test08-shadow-todo condition:
    (ert-test-failed
     ((should
       (member
	(cons file ...)
	shadow-files-to-copy))
      :form
      (member
       ("/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsQbhZHe" . "/cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsQbhZHe")
       nil)
      :value nil))
   FAILED   9/10  shadow-test08-shadow-todo (0.553099 sec)
shadow-add-to-todo: nil nil
  backtrace()
  shadow-add-to-todo()
  run-hook-with-args-until-success(shadow-add-to-todo)
  basic-save-buffer(nil)
  save-buffer()
  (progn (set-visited-file-name file) (insert "foo") (save-buffer))
  (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function #'write-region)) #'(lambda (gv--val) (fset #'write-region gv--val))) #'(lambda (&rest args) (if (and (buffer-file-name) mocked-input) (progn (let* (... ...) (let ... ... value-584))))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect (setq value-587 shadow-files-to-copy) (setq form-description-588 (list ... :form ... :value value-587)) (ert--signal-should-execution form-description-588))) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let (...) (list ...)) (error (progn ... ...))))) (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-description-593) (if (unwind-protect (setq value-591 ...) (setq form-description-593 ...) (ert--signal-should-execution form-description-593)) nil (ert-fail form-description-593))) value-591))))
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat ... file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function #'write-region)) #'(lambda (gv--val) (fset #'write-region gv--val))) #'(lambda (&rest args) (if (and (buffer-file-name) mocked-input) (progn (let* ... ...)))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect (setq value-587 shadow-files-to-copy) (setq form-description-588 ...) (ert--signal-should-execution form-description-588))) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let ... ...) (error ...)))) (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-description-593) (if (unwind-protect ... ... ...) nil (ert-fail form-description-593))) value-591)))) (let* ((new (advice--remove-function (symbol-function #'write-region) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer (get-file-buffer elt)) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name ...) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function ...)) #'(lambda (gv--val) (fset ... gv--val))) #'(lambda (&rest args) (if (and ... mocked-input) (progn ...))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect ... ... ...)) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err ... ...))) (let ((value-591 ...)) (let (form-description-593) (if ... nil ...)) value-591)))) (let* ((new (advice--remove-function (symbol-function #'write-region) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer ...) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup)))
  (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let ((signal-hook-function ...)) (list (memq system-type ...))) (error (progn (setq fn-567 ...) (list ... ...)))))) (let ((value-569 'ert-form-evaluation-aborted-570)) (let (form-description-571) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-571))) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-572 ...) (list ... ...)))))) (let ((value-574 'ert-form-evaluation-aborted-575)) (let (form-description-576) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-576))) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-577 ...) (list ... ...)))))) (let ((value-579 'ert-form-evaluation-aborted-580)) (let (form-description-581) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-581))) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat ... ...) (concat ... ...))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (advice--add-function :before (cons #'(lambda nil ...) #'(lambda ... ...)) #'(lambda (&rest args) (if ... ...)) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not ...) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 ...) (args-590 ...)) (let (...) (let ... ...) value-591)))) (let* ((new (advice--remove-function (symbol-function ...) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat ... file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer ... ... ...)) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))))()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow files are copied." :body (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err ... ...))) (let ((value-569 ...)) (let (form-description-571) (if ... nil ...)) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err ... ...))) (let ((value-574 ...)) (let (form-description-576) (if ... nil ...)) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err ... ...))) (let ((value-579 ...)) (let (form-description-581) (if ... nil ...)) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp ...) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary ... regexp ...) (shadow-set-cluster cluster2 primary regexp) (setq file ... shadow-literal-groups ... shadow-regexp-groups ... mocked-input ...) (let ... ...) (let ... ...) (advice--add-function :before ... ... ...) (shadow-copy-files ...) (let ... ... value-587) (save-current-buffer ... ... ...)) (let* (...) (if ... nil ...)) (let (... elt) (while --dolist-tail-- ... ... ... ...)) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil) :result #s(ert-test-aborted-with-non-local-exit :messages nil :should-forms nil :duration 0) :exit-continuation #f(compiled-function () #<bytecode 0x1ff5b961d3cd>) :next-debugger debug :ert-debug-on-error nil))
  ert-run-test(#s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow files are copied." :body (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let ... ...) (error ...)))) (let ((value-569 'ert-form-evaluation-aborted-570)) (let (form-description-571) (if (condition-case nil ... ...) nil (ert-skip form-description-571))) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err (let ... ...) (error ...)))) (let ((value-574 'ert-form-evaluation-aborted-575)) (let (form-description-576) (if (condition-case nil ... ...) nil (ert-skip form-description-576))) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err (let ... ...) (error ...)))) (let ((value-579 'ert-form-evaluation-aborted-580)) (let (form-description-581) (if (condition-case nil ... ...) nil (ert-skip form-description-581))) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name ...) shadow-literal-groups (list ...) shadow-regexp-groups (list ...) mocked-input (list ... file)) (let (...) (save-current-buffer ... ...)) (let (...) (save-current-buffer ... ...)) (advice--add-function :before (cons ... ...) #'... '...) (shadow-copy-files 'noquery) (let (...) (let ... ...) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char ...) (let* ... ...))) (let* ((new ...)) (if (eq new ...) nil (fset ... new))) (let ((--dolist-tail-- ...) elt) (while --dolist-tail-- (setq elt ...) (condition-case nil ... ...) (condition-case nil ... ...) (setq --dolist-tail-- ...))) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil))
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) :tests [#s(ert-test :name shadow-test00-clusters :documentation "Check cluster definitions...." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test01-sites :documentation "Check site definitions.\nPe..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test02-files :documentation "Check file manipulation fu..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test03-expand-cluster-in-file-name :documentation "Check canonical file name ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test04-contract-file-name :documentation "Check canonical file name ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test05-file-match :documentation "Check `shadow-same-site' a..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test06-literal-groups :documentation "Check literal group defini..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test07-regexp-groups :documentation "Check regexp group definit..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body ... :most-recent-result nil :expected-result-type :passed :tags nil)] :test-map #<hash-table eql 10/10 0x1ff5b943554d> :test-results [#s(ert-test-passed :messages "Not a valid primary!\nRegex..." :should-forms ... :duration 4.054058) #s(ert-test-passed :messages "" :should-forms ... :duration 0.019025) #s(ert-test-passed :messages "" :should-forms ... :duration 0.031444) #s(ert-test-passed :messages "" :should-forms ... :duration 0.017081) #s(ert-test-passed :messages "" :should-forms ... :duration 0.188851) #s(ert-test-passed :messages "" :should-forms ... :duration 0.034957) #s(ert-test-passed :messages "" :should-forms ... :duration 0.040878) #s(ert-test-passed :messages "" :should-forms ... :duration 0.017809) #s(ert-test-failed :messages "shadow-test08-shadow-todo:..." :should-forms ... :duration 0.553099 :condition ... :backtrace ... :infos nil) nil] :test-start-times [(23925 25088 333098 0) (23925 25092 387309 0) (23925 25092 406397 0) (23925 25092 437905 0) (23925 25092 455050 0) (23925 25092 643982 0) (23925 25092 679003 0) (23925 25092 719950 0) (23925 25092 737824 0) (23925 25093 709516 0)] :test-end-times [(23925 25092 387156 0) (23925 25092 406334 0) (23925 25092 437841 0) (23925 25092 454986 0) (23925 25092 643901 0) (23925 25092 678939 0) (23925 25092 719881 0) (23925 25092 737759 0) (23925 25093 290923 0) nil] :passed-expected 8 :passed-unexpected 0 :failed-expected 0 :failed-unexpected 1 :skipped 0 :start-time (23925 25088 332964 0) :end-time nil :aborted-p nil :current-test #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body (lambda nil ... ... ... ...) :most-recent-result nil :expected-result-type :passed :tags nil) :next-redisplay 0.0) #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body (lambda nil (let* ... ...) (let* ... ...) (let* ... ...) (let ... ...)) :most-recent-result nil :expected-result-type :passed :tags nil) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1ff5b962be0d>))
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1ff5b962be0d>) nil)
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el" "--eval" "(ert-run-tests-batch-and-exit (quote (not (tag :un..."))
  command-line()
  normal-top-level()



shadow-add-to-todo: nil nil
  backtrace()
  shadow-add-to-todo()
  run-hook-with-args-until-success(shadow-add-to-todo)
  basic-save-buffer(nil)
  save-buffer()
  (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer))
  (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function #'write-region)) #'(lambda (gv--val) (fset #'write-region gv--val))) #'(lambda (&rest args) (if (and (buffer-file-name) mocked-input) (progn (let* (... ...) (let ... ... value-584))))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect (setq value-587 shadow-files-to-copy) (setq form-description-588 (list ... :form ... :value value-587)) (ert--signal-should-execution form-description-588))) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let (...) (list ...)) (error (progn ... ...))))) (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-description-593) (if (unwind-protect (setq value-591 ...) (setq form-description-593 ...) (ert--signal-should-execution form-description-593)) nil (ert-fail form-description-593))) value-591))))
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat ... file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function #'write-region)) #'(lambda (gv--val) (fset #'write-region gv--val))) #'(lambda (&rest args) (if (and (buffer-file-name) mocked-input) (progn (let* ... ...)))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect (setq value-587 shadow-files-to-copy) (setq form-description-588 ...) (ert--signal-should-execution form-description-588))) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let ... ...) (error ...)))) (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-description-593) (if (unwind-protect ... ... ...) nil (ert-fail form-description-593))) value-591)))) (let* ((new (advice--remove-function (symbol-function #'write-region) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer (get-file-buffer elt)) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name ...) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function ...)) #'(lambda (gv--val) (fset ... gv--val))) #'(lambda (&rest args) (if (and ... mocked-input) (progn ...))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect ... ... ...)) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err ... ...))) (let ((value-591 ...)) (let (form-description-593) (if ... nil ...)) value-591)))) (let* ((new (advice--remove-function (symbol-function #'write-region) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer ...) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup)))
  (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let ((signal-hook-function ...)) (list (memq system-type ...))) (error (progn (setq fn-567 ...) (list ... ...)))))) (let ((value-569 'ert-form-evaluation-aborted-570)) (let (form-description-571) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-571))) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-572 ...) (list ... ...)))))) (let ((value-574 'ert-form-evaluation-aborted-575)) (let (form-description-576) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-576))) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-577 ...) (list ... ...)))))) (let ((value-579 'ert-form-evaluation-aborted-580)) (let (form-description-581) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-581))) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat ... ...) (concat ... ...))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (advice--add-function :before (cons #'(lambda nil ...) #'(lambda ... ...)) #'(lambda (&rest args) (if ... ...)) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not ...) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 ...) (args-590 ...)) (let (...) (let ... ...) value-591)))) (let* ((new (advice--remove-function (symbol-function ...) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat ... file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer ... ... ...)) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))))()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow files are copied." :body (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err ... ...))) (let ((value-569 ...)) (let (form-description-571) (if ... nil ...)) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err ... ...))) (let ((value-574 ...)) (let (form-description-576) (if ... nil ...)) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err ... ...))) (let ((value-579 ...)) (let (form-description-581) (if ... nil ...)) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp ...) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary ... regexp ...) (shadow-set-cluster cluster2 primary regexp) (setq file ... shadow-literal-groups ... shadow-regexp-groups ... mocked-input ...) (let ... ...) (let ... ...) (advice--add-function :before ... ... ...) (shadow-copy-files ...) (let ... ... value-587) (save-current-buffer ... ... ...)) (let* (...) (if ... nil ...)) (let (... elt) (while --dolist-tail-- ... ... ... ...)) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil) :result #s(ert-test-aborted-with-non-local-exit :messages nil :should-forms nil :duration 0) :exit-continuation #f(compiled-function () #<bytecode 0x1ff5b961d3cd>) :next-debugger debug :ert-debug-on-error nil))
  ert-run-test(#s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow files are copied." :body (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let ... ...) (error ...)))) (let ((value-569 'ert-form-evaluation-aborted-570)) (let (form-description-571) (if (condition-case nil ... ...) nil (ert-skip form-description-571))) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err (let ... ...) (error ...)))) (let ((value-574 'ert-form-evaluation-aborted-575)) (let (form-description-576) (if (condition-case nil ... ...) nil (ert-skip form-description-576))) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err (let ... ...) (error ...)))) (let ((value-579 'ert-form-evaluation-aborted-580)) (let (form-description-581) (if (condition-case nil ... ...) nil (ert-skip form-description-581))) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name ...) shadow-literal-groups (list ...) shadow-regexp-groups (list ...) mocked-input (list ... file)) (let (...) (save-current-buffer ... ...)) (let (...) (save-current-buffer ... ...)) (advice--add-function :before (cons ... ...) #'... '...) (shadow-copy-files 'noquery) (let (...) (let ... ...) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char ...) (let* ... ...))) (let* ((new ...)) (if (eq new ...) nil (fset ... new))) (let ((--dolist-tail-- ...) elt) (while --dolist-tail-- (setq elt ...) (condition-case nil ... ...) (condition-case nil ... ...) (setq --dolist-tail-- ...))) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil))
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) :tests [#s(ert-test :name shadow-test00-clusters :documentation "Check cluster definitions...." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test01-sites :documentation "Check site definitions.\nPe..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test02-files :documentation "Check file manipulation fu..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test03-expand-cluster-in-file-name :documentation "Check canonical file name ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test04-contract-file-name :documentation "Check canonical file name ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test05-file-match :documentation "Check `shadow-same-site' a..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test06-literal-groups :documentation "Check literal group defini..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test07-regexp-groups :documentation "Check regexp group definit..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows ..." :body ... :most-recent-result ... :expected-result-type :passed :tags nil) #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body ... :most-recent-result nil :expected-result-type :passed :tags nil)] :test-map #<hash-table eql 10/10 0x1ff5b943554d> :test-results [#s(ert-test-passed :messages "Not a valid primary!\nRegex..." :should-forms ... :duration 4.054058) #s(ert-test-passed :messages "" :should-forms ... :duration 0.019025) #s(ert-test-passed :messages "" :should-forms ... :duration 0.031444) #s(ert-test-passed :messages "" :should-forms ... :duration 0.017081) #s(ert-test-passed :messages "" :should-forms ... :duration 0.188851) #s(ert-test-passed :messages "" :should-forms ... :duration 0.034957) #s(ert-test-passed :messages "" :should-forms ... :duration 0.040878) #s(ert-test-passed :messages "" :should-forms ... :duration 0.017809) #s(ert-test-failed :messages "shadow-test08-shadow-todo:..." :should-forms ... :duration 0.553099 :condition ... :backtrace ... :infos nil) nil] :test-start-times [(23925 25088 333098 0) (23925 25092 387309 0) (23925 25092 406397 0) (23925 25092 437905 0) (23925 25092 455050 0) (23925 25092 643982 0) (23925 25092 679003 0) (23925 25092 719950 0) (23925 25092 737824 0) (23925 25093 709516 0)] :test-end-times [(23925 25092 387156 0) (23925 25092 406334 0) (23925 25092 437841 0) (23925 25092 454986 0) (23925 25092 643901 0) (23925 25092 678939 0) (23925 25092 719881 0) (23925 25092 737759 0) (23925 25093 290923 0) nil] :passed-expected 8 :passed-unexpected 0 :failed-expected 0 :failed-unexpected 1 :skipped 0 :start-time (23925 25088 332964 0) :end-time nil :aborted-p nil :current-test #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body (lambda nil ... ... ... ...) :most-recent-result nil :expected-result-type :passed :tags nil) :next-redisplay 0.0) #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow f..." :body (lambda nil (let* ... ...) (let* ... ...) (let* ... ...) (let ... ...)) :most-recent-result nil :expected-result-type :passed :tags nil) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1ff5b962be0d>))
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1ff5b962be0d>) nil)
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el" "--eval" "(ert-run-tests-batch-and-exit (quote (not (tag :un..."))
  command-line()
  normal-top-level()

Test shadow-test09-shadow-copy-files backtrace:
  signal(ert-test-failed (((should (looking-at (regexp-quote "(setq sh
  ert-fail(((should (looking-at (regexp-quote "(setq shadow-files-to-c
  (if (unwind-protect (setq value-591 (apply fn-589 args-590)) (setq f
  (let (form-description-593) (if (unwind-protect (setq value-591 (app
  (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-descr
  (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let ((si
  (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (poi
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "c
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) 
  (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name shadow-test09-shadow-copy-files :docu
  ert-run-or-rerun-test(#s(ert--stats :selector (not (tag :unstable)) 
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el"
  command-line()
  normal-top-level()
Test shadow-test09-shadow-copy-files condition:
    (ert-test-failed
     ((should
       (looking-at
	(regexp-quote "(setq shadow-files-to-copy nil)")))
      :form
      (looking-at "(setq shadow-files-to-copy nil)")
      :value nil))
   FAILED  10/10  shadow-test09-shadow-copy-files (1.097443 sec)

Ran 10 tests, 8 results as expected, 2 unexpected (2019-09-08 22:18:15+0200, 6.863622 sec)

2 unexpected results:
   FAILED  shadow-test08-shadow-todo
   FAILED  shadow-test09-shadow-copy-files

make[1]: *** [lisp/shadowfile-tests.log] Error 1
make: *** [lisp/shadowfile-tests] Error 2

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-08 20:23                     ` Stefan Kangas
@ 2019-09-13 12:29                       ` Michael Albinus
  2019-09-14 16:39                         ` Stefan Kangas
  0 siblings, 1 reply; 25+ messages in thread
From: Michael Albinus @ 2019-09-13 12:29 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 37202

Stefan Kangas <stefan@marxist.se> writes:

> I'm still seing failures on current master on these tests, including
> the line you noted above:

I still have no idea what's up. Added more traces, for test.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-13 12:29                       ` Michael Albinus
@ 2019-09-14 16:39                         ` Stefan Kangas
  2019-09-15 14:56                           ` Michael Albinus
  0 siblings, 1 reply; 25+ messages in thread
From: Stefan Kangas @ 2019-09-14 16:39 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 37202

[-- Attachment #1: Type: text/plain, Size: 186 bytes --]

Michael Albinus <michael.albinus@gmx.de> writes:

> I still have no idea what's up. Added more traces, for test.

Thanks, please find attached the log file.

Best regards,
Stefan Kangas

[-- Attachment #2: shadowfile-tests.log --]
[-- Type: application/octet-stream, Size: 67558 bytes --]

  GEN      lisp/shadowfile-tests.log
Running 10 tests (2019-09-14 18:14:50+0200, selector `(not (tag :unstable))')
   passed   1/10  shadow-test00-clusters (4.057483 sec)
   passed   2/10  shadow-test01-sites (0.019834 sec)
   passed   3/10  shadow-test02-files (0.032502 sec)
   passed   4/10  shadow-test03-expand-cluster-in-file-name (0.031969 sec)
   passed   5/10  shadow-test04-contract-file-name (0.251036 sec)
   passed   6/10  shadow-test05-file-match (0.044491 sec)
   passed   7/10  shadow-test06-literal-groups (0.050405 sec)
   passed   8/10  shadow-test07-regexp-groups (0.018761 sec)
shadow-test08-shadow-todo: cluster1 /Stefans-MBP: \`/Stefans-MBP:\' ((shadow-cluster cluster1 /Stefans-MBP: \`/Stefans-MBP:\'))
shadow-test08-shadow-todo: cluster2 /mock:Stefans-MBP: \`/mock:Stefans-MBP:\' ((shadow-cluster cluster2 /mock:Stefans-MBP: \`/mock:Stefans-MBP:\') (shadow-cluster cluster1 /Stefans-MBP: \`/Stefans-MBP:\'))
shadow-test08-shadow-todo: /var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw ((/cluster1:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw /cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw))
shadow-add-to-todo: /var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw /private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw
shadow-shadows-of: /private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw /private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw /Users/skangas/wip/emacs/src/ /private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw /cluster1:/private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw
shadow-add-to-todo: nil nil
  backtrace()
  shadow-add-to-todo()
  run-hook-with-args-until-success(shadow-add-to-todo)
  basic-save-buffer(nil)
  save-buffer()
  (progn (set-visited-file-name file) (insert "foo") (save-buffer))
  (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster1 primary regexp shadow-clusters))) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster2 primary regexp shadow-clusters))) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-literal-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name (concat "/cluster2:" file))) shadow-files-to-copy))) (let* ((fn-547 #'member) (args-548 (condition-case err (let ((signal-hook-function ...)) (list (cons file ...) shadow-files-to-copy)) (error (progn (setq fn-547 ...) (list ... ...)))))) (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-description-551) (if (unwind-protect (setq value-549 (apply fn-547 args-548)) (setq form-description-551 (nconc ... ... ... ...)) (ert--signal-should-execution form-description-551)) nil (ert-fail form-description-551))) value-549)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat (shadow-site-primary cluster2) file) (shadow-contract-file-name (concat "/cluster1:" file))) shadow-files-to-copy))) (let* ((fn-552 #'member) (args-553 (condition-case err (let ((signal-hook-function ...)) (list (cons ... ...) shadow-files-to-copy)) (error (progn (setq fn-552 ...) (list ... ...)))))) (let ((value-554 'ert-form-evaluation-aborted-555)) (let (form-description-556) (if (unwind-protect (setq value-554 (apply fn-552 args-553)) (setq form-description-556 (nconc ... ... ... ...)) (ert--signal-should-execution form-description-556)) nil (ert-fail form-description-556))) value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-regexp-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name (concat "/cluster2:" file))) shadow-files-to-copy))) (let* ((fn-557 #'member) (args-558 (condition-case err (let ((signal-hook-function ...)) (list (cons file ...) shadow-files-to-copy)) (error (progn (setq fn-557 ...) (list ... ...)))))) (let ((value-559 'ert-form-evaluation-aborted-560)) (let (form-description-561) (if (unwind-protect (setq value-559 (apply fn-557 args-558)) (setq form-description-561 (nconc ... ... ... ...)) (ert--signal-should-execution form-description-561)) nil (ert-fail form-description-561))) value-559)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat (shadow-site-primary cluster2) file) (shadow-contract-file-name (concat "/cluster1:" file))) shadow-files-to-copy))) (let* ((fn-562 #'member) (args-563 (condition-case err (let ((signal-hook-function ...)) (list (cons ... ...) shadow-files-to-copy)) (error (progn (setq fn-562 ...) (list ... ...)))))) (let ((value-564 'ert-form-evaluation-aborted-565)) (let (form-description-566) (if (unwind-protect (setq value-564 (apply fn-562 args-563)) (setq form-description-566 (nconc ... ... ... ...)) (ert--signal-should-execution form-description-566)) nil (ert-fail form-description-566))) value-564)))
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster1 primary regexp shadow-clusters))) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster2 primary regexp shadow-clusters))) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-literal-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name (concat "/cluster2:" file))) shadow-files-to-copy))) (let* ((fn-547 #'member) (args-548 (condition-case err (let (...) (list ... shadow-files-to-copy)) (error (progn ... ...))))) (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-description-551) (if (unwind-protect (setq value-549 ...) (setq form-description-551 ...) (ert--signal-should-execution form-description-551)) nil (ert-fail form-description-551))) value-549)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat ... file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat (shadow-site-primary cluster2) file) (shadow-contract-file-name (concat "/cluster1:" file))) shadow-files-to-copy))) (let* ((fn-552 #'member) (args-553 (condition-case err (let (...) (list ... shadow-files-to-copy)) (error (progn ... ...))))) (let ((value-554 'ert-form-evaluation-aborted-555)) (let (form-description-556) (if (unwind-protect (setq value-554 ...) (setq form-description-556 ...) (ert--signal-should-execution form-description-556)) nil (ert-fail form-description-556))) value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-regexp-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name (concat "/cluster2:" file))) shadow-files-to-copy))) (let* ((fn-557 #'member) (args-558 (condition-case err (let (...) (list ... shadow-files-to-copy)) (error (progn ... ...))))) (let ((value-559 'ert-form-evaluation-aborted-560)) (let (form-description-561) (if (unwind-protect (setq value-559 ...) (setq form-description-561 ...) (ert--signal-should-execution form-description-561)) nil (ert-fail form-description-561))) value-559)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat ... file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat (shadow-site-primary cluster2) file) (shadow-contract-file-name (concat "/cluster1:" file))) shadow-files-to-copy))) (let* ((fn-562 #'member) (args-563 (condition-case err (let (...) (list ... shadow-files-to-copy)) (error (progn ... ...))))) (let ((value-564 'ert-form-evaluation-aborted-565)) (let (form-description-566) (if (unwind-protect (setq value-564 ...) (setq form-description-566 ...) (ert--signal-should-execution form-description-566)) nil (ert-fail form-description-566))) value-564))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer (get-file-buffer elt)) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) shadow-clusters shadow-literal-groups shadow-regexp-groups shadow-files-to-copy cluster1 cluster2 primary regexp file) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster1 primary regexp shadow-clusters))) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster2 primary regexp shadow-clusters))) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-literal-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name ...)) shadow-files-to-copy))) (let* ((fn-547 #'member) (args-548 (condition-case err (let ... ...) (error ...)))) (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-description-551) (if (unwind-protect ... ... ...) nil (ert-fail form-description-551))) value-549)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name ...) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat ... file) (shadow-contract-file-name ...)) shadow-files-to-copy))) (let* ((fn-552 #'member) (args-553 (condition-case err (let ... ...) (error ...)))) (let ((value-554 'ert-form-evaluation-aborted-555)) (let (form-description-556) (if (unwind-protect ... ... ...) nil (ert-fail form-description-556))) value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-regexp-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file (shadow-contract-file-name ...)) shadow-files-to-copy))) (let* ((fn-557 #'member) (args-558 (condition-case err (let ... ...) (error ...)))) (let ((value-559 'ert-form-evaluation-aborted-560)) (let (form-description-561) (if (unwind-protect ... ... ...) nil (ert-fail form-description-561))) value-559)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name ...) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons (concat ... file) (shadow-contract-file-name ...)) shadow-files-to-copy))) (let* ((fn-562 #'member) (args-563 (condition-case err (let ... ...) (error ...)))) (let ((value-564 'ert-form-evaluation-aborted-565)) (let (form-description-566) (if (unwind-protect ... ... ...) nil (ert-fail form-description-566))) value-564))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer ...) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup)))
  (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err (let ((signal-hook-function ...)) (list (memq system-type ...))) (error (progn (setq fn-532 ...) (list ... ...)))))) (let ((value-534 'ert-form-evaluation-aborted-535)) (let (form-description-536) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-536))) value-534)) (let* ((fn-537 #'file-remote-p) (args-538 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-537 ...) (list ... ...)))))) (let ((value-539 'ert-form-evaluation-aborted-540)) (let (form-description-541) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-541))) value-539)) (let* ((fn-542 #'file-writable-p) (args-543 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-542 ...) (list ... ...)))))) (let ((value-544 'ert-form-evaluation-aborted-545)) (let (form-description-546) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-546))) value-544)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) shadow-clusters shadow-literal-groups shadow-regexp-groups shadow-files-to-copy cluster1 cluster2 primary regexp file) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster1 primary regexp shadow-clusters))) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s %s %s" cluster2 primary regexp shadow-clusters))) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-literal-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file ...) shadow-files-to-copy))) (let* ((fn-547 #'member) (args-548 (condition-case err ... ...))) (let ((value-549 ...)) (let (form-description-551) (if ... nil ...)) value-549)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons ... ...) shadow-files-to-copy))) (let* ((fn-552 #'member) (args-553 (condition-case err ... ...))) (let ((value-554 ...)) (let (form-description-556) (if ... nil ...)) value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list (list (concat ... ...) (concat ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" file shadow-regexp-groups))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons file ...) shadow-files-to-copy))) (let* ((fn-557 #'member) (args-558 (condition-case err ... ...))) (let ((value-559 ...)) (let (form-description-561) (if ... nil ...)) value-559)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (if shadow-debug (progn (message "shadow-test08-shadow-todo: %s %s" (cons ... ...) shadow-files-to-copy))) (let* ((fn-562 #'member) (args-563 (condition-case err ... ...))) (let ((value-564 ...)) (let (form-description-566) (if ... nil ...)) value-564))) (let ((--dolist-tail-- (list file (concat ... file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer ... ... ...)) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))))()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows are added to todo." :body (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err ... ...))) (let ((value-534 ...)) (let (form-description-536) (if ... nil ...)) value-534)) (let* ((fn-537 #'file-remote-p) (args-538 (condition-case err ... ...))) (let ((value-539 ...)) (let (form-description-541) (if ... nil ...)) value-539)) (let* ((fn-542 #'file-writable-p) (args-543 (condition-case err ... ...))) (let ((value-544 ...)) (let (form-description-546) (if ... nil ...)) value-544)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) shadow-clusters shadow-literal-groups shadow-regexp-groups shadow-files-to-copy cluster1 cluster2 primary regexp file) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp ...) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug ...) (setq cluster2 "cluster2" primary ... regexp ...) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug ...) (setq file ... shadow-literal-groups ...) (if shadow-debug ...) (let ... ...) (if shadow-debug ...) (let* ... ...) (let ... ...) (if shadow-debug ...) (let* ... ...) (setq shadow-files-to-copy nil shadow-regexp-groups ...) (if shadow-debug ...) (let ... ...) (if shadow-debug ...) (let* ... ...) (let ... ...) (if shadow-debug ...) (let* ... ...)) (let (... elt) (while --dolist-tail-- ... ... ... ...)) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil) :result #s(ert-test-aborted-with-non-local-exit :messages nil :should-forms nil :duration 0) :exit-continuation #f(compiled-function () #<bytecode 0x1ff58f003e95>) :next-debugger debug :ert-debug-on-error nil))
  ert-run-test(#s(ert-test :name shadow-test08-shadow-todo :documentation "Check that needed shadows are added to todo." :body (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err (let ... ...) (error ...)))) (let ((value-534 'ert-form-evaluation-aborted-535)) (let (form-description-536) (if (condition-case nil ... ...) nil (ert-skip form-description-536))) value-534)) (let* ((fn-537 #'file-remote-p) (args-538 (condition-case err (let ... ...) (error ...)))) (let ((value-539 'ert-form-evaluation-aborted-540)) (let (form-description-541) (if (condition-case nil ... ...) nil (ert-skip form-description-541))) value-539)) (let* ((fn-542 #'file-writable-p) (args-543 (condition-case err (let ... ...) (error ...)))) (let ((value-544 'ert-form-evaluation-aborted-545)) (let (form-description-546) (if (condition-case nil ... ...) nil (ert-skip form-description-546))) value-544)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) shadow-clusters shadow-literal-groups shadow-regexp-groups shadow-files-to-copy cluster1 cluster2 primary regexp file) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (if shadow-debug (progn ...)) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (if shadow-debug (progn ...)) (setq file (make-temp-name ...) shadow-literal-groups (list ...)) (if shadow-debug (progn ...)) (let (...) (save-current-buffer ... ...)) (if shadow-debug (progn ...)) (let* (... ...) (let ... ... value-549)) (let (...) (save-current-buffer ... ...)) (if shadow-debug (progn ...)) (let* (... ...) (let ... ... value-554)) (setq shadow-files-to-copy nil shadow-regexp-groups (list ...)) (if shadow-debug (progn ...)) (let (...) (save-current-buffer ... ...)) (if shadow-debug (progn ...)) (let* (... ...) (let ... ... value-559)) (let (...) (save-current-buffer ... ...)) (if shadow-debug (progn ...)) (let* (... ...) (let ... ... value-564))) (let ((--dolist-tail-- ...) elt) (while --dolist-tail-- (setq elt ...) (condition-case nil ... ...) (condition-case nil ... ...) (setq --dolist-tail-- ...))) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil))
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-map #<hash-table eql 10/10 0x1ff58ea0f81d> :test-results ... :test-start-times ... :test-end-times ... :passed-expected 8 :passed-unexpected 0 :failed-expected 0 :failed-unexpected 0 :skipped 0 :start-time ... :end-time nil :aborted-p nil ...) #s(ert-test :name shadow-test08-shadow-todo :documentation "Check that nee..." :body ... :most-recent-result nil :expected-result-type :passed :tags nil) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1ff58ea0e2d9>))
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1ff58ea0e2d9>) nil)
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el" "--eval" "(ert-run-tests-batch-and-exit (quote (not (tag :un..."))
  command-line()
  normal-top-level()

shadow-test08-shadow-todo: (/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw . /cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw) nil
Test shadow-test08-shadow-todo backtrace:
  signal(ert-test-failed (((should (member (cons file (shadow-contract
  ert-fail(((should (member (cons file (shadow-contract-file-name (con
  (if (unwind-protect (setq value-549 (apply fn-547 args-548)) (setq f
  (let (form-description-551) (if (unwind-protect (setq value-549 (app
  (let ((value-549 'ert-form-evaluation-aborted-550)) (let (form-descr
  (let* ((fn-547 #'member) (args-548 (condition-case err (let ((signal
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "c
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) 
  (lambda nil (let* ((fn-532 #'not) (args-533 (condition-case err (let
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name shadow-test08-shadow-todo :documentat
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el"
  command-line()
  normal-top-level()
Test shadow-test08-shadow-todo condition:
    (ert-test-failed
     ((should
       (member
	(cons file ...)
	shadow-files-to-copy))
      :form
      (member
       ("/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw" . "/cluster2:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw")
       nil)
      :value nil))
   FAILED   9/10  shadow-test08-shadow-todo (0.444239 sec)
shadow-add-to-todo: /var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsCkytW7 /private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsCkytW7
shadow-shadows-of: /private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsCkytW7 /private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsCkytW7 /Users/skangas/wip/emacs/src/ /private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsCkytW7 /cluster1:/private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsCkytW7
shadow-add-to-todo: nil nil
  backtrace()
  shadow-add-to-todo()
  run-hook-with-args-until-success(shadow-add-to-todo)
  basic-save-buffer(nil)
  save-buffer()
  (progn (set-visited-file-name file) (insert "foo") (save-buffer))
  (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function #'write-region)) #'(lambda (gv--val) (fset #'write-region gv--val))) #'(lambda (&rest args) (if (and (buffer-file-name) mocked-input) (progn (let* (... ...) (let ... ... value-584))))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect (setq value-587 shadow-files-to-copy) (setq form-description-588 (list ... :form ... :value value-587)) (ert--signal-should-execution form-description-588))) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let (...) (list ...)) (error (progn ... ...))))) (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-description-593) (if (unwind-protect (setq value-591 ...) (setq form-description-593 ...) (ert--signal-should-execution form-description-593)) nil (ert-fail form-description-593))) value-591))))
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat ... file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function #'write-region)) #'(lambda (gv--val) (fset #'write-region gv--val))) #'(lambda (&rest args) (if (and (buffer-file-name) mocked-input) (progn (let* ... ...)))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect (setq value-587 shadow-files-to-copy) (setq form-description-588 ...) (ert--signal-should-execution form-description-588))) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let ... ...) (error ...)))) (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-description-593) (if (unwind-protect ... ... ...) nil (ert-fail form-description-593))) value-591)))) (let* ((new (advice--remove-function (symbol-function #'write-region) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer (get-file-buffer elt)) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name ...) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function ...)) #'(lambda (gv--val) (fset ... gv--val))) #'(lambda (&rest args) (if (and ... mocked-input) (progn ...))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect ... ... ...)) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err ... ...))) (let ((value-591 ...)) (let (form-description-593) (if ... nil ...)) value-591)))) (let* ((new (advice--remove-function (symbol-function #'write-region) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer ...) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup)))
  (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let ((signal-hook-function ...)) (list (memq system-type ...))) (error (progn (setq fn-567 ...) (list ... ...)))))) (let ((value-569 'ert-form-evaluation-aborted-570)) (let (form-description-571) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-571))) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-572 ...) (list ... ...)))))) (let ((value-574 'ert-form-evaluation-aborted-575)) (let (form-description-576) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-576))) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-577 ...) (list ... ...)))))) (let ((value-579 'ert-form-evaluation-aborted-580)) (let (form-description-581) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-581))) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat ... ...) (concat ... ...))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (advice--add-function :before (cons #'(lambda nil ...) #'(lambda ... ...)) #'(lambda (&rest args) (if ... ...)) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not ...) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 ...) (args-590 ...)) (let (...) (let ... ...) value-591)))) (let* ((new (advice--remove-function (symbol-function ...) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat ... file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer ... ... ...)) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))))()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow files are copied." :body (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err ... ...))) (let ((value-569 ...)) (let (form-description-571) (if ... nil ...)) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err ... ...))) (let ((value-574 ...)) (let (form-description-576) (if ... nil ...)) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err ... ...))) (let ((value-579 ...)) (let (form-description-581) (if ... nil ...)) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp ...) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary ... regexp ...) (shadow-set-cluster cluster2 primary regexp) (setq file ... shadow-literal-groups ... shadow-regexp-groups ... mocked-input ...) (let ... ...) (let ... ...) (advice--add-function :before ... ... ...) (shadow-copy-files ...) (let ... ... value-587) (save-current-buffer ... ... ...)) (let* (...) (if ... nil ...)) (let (... elt) (while --dolist-tail-- ... ... ... ...)) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil) :result #s(ert-test-aborted-with-non-local-exit :messages nil :should-forms nil :duration 0) :exit-continuation #f(compiled-function () #<bytecode 0x1ff58f003e95>) :next-debugger debug :ert-debug-on-error nil))
  ert-run-test(#s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow files are copied." :body (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let ... ...) (error ...)))) (let ((value-569 'ert-form-evaluation-aborted-570)) (let (form-description-571) (if (condition-case nil ... ...) nil (ert-skip form-description-571))) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err (let ... ...) (error ...)))) (let ((value-574 'ert-form-evaluation-aborted-575)) (let (form-description-576) (if (condition-case nil ... ...) nil (ert-skip form-description-576))) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err (let ... ...) (error ...)))) (let ((value-579 'ert-form-evaluation-aborted-580)) (let (form-description-581) (if (condition-case nil ... ...) nil (ert-skip form-description-581))) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name ...) shadow-literal-groups (list ...) shadow-regexp-groups (list ...) mocked-input (list ... file)) (let (...) (save-current-buffer ... ...)) (let (...) (save-current-buffer ... ...)) (advice--add-function :before (cons ... ...) #'... '...) (shadow-copy-files 'noquery) (let (...) (let ... ...) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char ...) (let* ... ...))) (let* ((new ...)) (if (eq new ...) nil (fset ... new))) (let ((--dolist-tail-- ...) elt) (while --dolist-tail-- (setq elt ...) (condition-case nil ... ...) (condition-case nil ... ...) (setq --dolist-tail-- ...))) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil))
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-map #<hash-table eql 10/10 0x1ff58ea0f81d> :test-results ... :test-start-times ... :test-end-times ... :passed-expected 8 :passed-unexpected 0 :failed-expected 0 :failed-unexpected 1 :skipped 0 :start-time ... :end-time nil :aborted-p nil ...) #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that nee..." :body ... :most-recent-result nil :expected-result-type :passed :tags nil) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1ff58ea0e2d9>))
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1ff58ea0e2d9>) nil)
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el" "--eval" "(ert-run-tests-batch-and-exit (quote (not (tag :un..."))
  command-line()
  normal-top-level()



shadow-add-to-todo: /mock:Stefans-MBP:/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsCkytW7 /mock:Stefans-MBP:/private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsCkytW7
shadow-shadows-of: /mock:Stefans-MBP:/private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsCkytW7 nil /Users/skangas/wip/emacs/src/ /mock:Stefans-MBP:/private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsCkytW7 /cluster2:/private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsCkytW7
shadow-add-to-todo: nil nil
  backtrace()
  shadow-add-to-todo()
  run-hook-with-args-until-success(shadow-add-to-todo)
  basic-save-buffer(nil)
  save-buffer()
  (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer))
  (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat (shadow-site-primary cluster2) file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function #'write-region)) #'(lambda (gv--val) (fset #'write-region gv--val))) #'(lambda (&rest args) (if (and (buffer-file-name) mocked-input) (progn (let* (... ...) (let ... ... value-584))))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect (setq value-587 shadow-files-to-copy) (setq form-description-588 (list ... :form ... :value value-587)) (ert--signal-should-execution form-description-588))) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let (...) (list ...)) (error (progn ... ...))))) (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-description-593) (if (unwind-protect (setq value-591 ...) (setq form-description-593 ...) (ert--signal-should-execution form-description-593)) nil (ert-fail form-description-593))) value-591))))
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name (concat ... file)) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function #'write-region)) #'(lambda (gv--val) (fset #'write-region gv--val))) #'(lambda (&rest args) (if (and (buffer-file-name) mocked-input) (progn (let* ... ...)))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect (setq value-587 shadow-files-to-copy) (setq form-description-588 ...) (ert--signal-should-execution form-description-588))) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let ... ...) (error ...)))) (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-description-593) (if (unwind-protect ... ... ...) nil (ert-fail form-description-593))) value-591)))) (let* ((new (advice--remove-function (symbol-function #'write-region) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer (get-file-buffer elt)) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat (shadow-site-primary cluster1) (shadow-regexp-superquote file)) (concat (shadow-site-primary cluster2) (shadow-regexp-superquote file)))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name file) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (set-visited-file-name ...) (insert "foo") (save-buffer)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (advice--add-function :before (cons #'(lambda nil (symbol-function ...)) #'(lambda (gv--val) (fset ... gv--val))) #'(lambda (&rest args) (if (and ... mocked-input) (progn ...))) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not (unwind-protect ... ... ...)) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 #'looking-at) (args-590 (condition-case err ... ...))) (let ((value-591 ...)) (let (form-description-593) (if ... nil ...)) value-591)))) (let* ((new (advice--remove-function (symbol-function #'write-region) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat (shadow-site-primary cluster2) file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer (set-buffer ...) (set-buffer-modified-p nil) (kill-buffer))) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup)))
  (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let ((signal-hook-function ...)) (list (memq system-type ...))) (error (progn (setq fn-567 ...) (list ... ...)))))) (let ((value-569 'ert-form-evaluation-aborted-570)) (let (form-description-571) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-571))) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-572 ...) (list ... ...)))))) (let ((value-574 'ert-form-evaluation-aborted-575)) (let (form-description-576) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-576))) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err (let ((signal-hook-function ...)) (list shadow-test-remote-temporary-file-directory)) (error (progn (setq fn-577 ...) (list ... ...)))))) (let ((value-579 'ert-form-evaluation-aborted-580)) (let (form-description-581) (if (condition-case nil (progn (unwind-protect ... ... ...)) (error nil)) nil (ert-skip form-description-581))) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name (expand-file-name "shadowfile-tests" temporary-file-directory)) shadow-literal-groups (list (list (concat "/cluster1:" file) (concat "/cluster2:" file))) shadow-regexp-groups (list (list (concat ... ...) (concat ... ...))) mocked-input (list (concat (shadow-site-primary cluster2) file) file)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (advice--add-function :before (cons #'(lambda nil ...) #'(lambda ... ...)) #'(lambda (&rest args) (if ... ...)) '((name . "write-region-mock"))) (shadow-copy-files 'noquery) (let ((value-587 (gensym "ert-form-evaluation-aborted-"))) (let (form-description-588) (if (not ...) nil (ert-fail form-description-588))) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (point-min)) (let* ((fn-589 ...) (args-590 ...)) (let (...) (let ... ...) value-591)))) (let* ((new (advice--remove-function (symbol-function ...) "write-region-mock"))) (if (eq new (symbol-function #'write-region)) nil (fset #'write-region new))) (let ((--dolist-tail-- (list file (concat ... file))) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (condition-case nil (progn (save-current-buffer ... ... ...)) (error nil)) (condition-case nil (progn (delete-file elt)) (error nil)) (setq --dolist-tail-- (cdr --dolist-tail--)))) (shadow--tests-cleanup))))()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow files are copied." :body (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err ... ...))) (let ((value-569 ...)) (let (form-description-571) (if ... nil ...)) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err ... ...))) (let ((value-574 ...)) (let (form-description-576) (if ... nil ...)) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err ... ...))) (let ((value-579 ...)) (let (form-description-581) (if ... nil ...)) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp ...) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary ... regexp ...) (shadow-set-cluster cluster2 primary regexp) (setq file ... shadow-literal-groups ... shadow-regexp-groups ... mocked-input ...) (let ... ...) (let ... ...) (advice--add-function :before ... ... ...) (shadow-copy-files ...) (let ... ... value-587) (save-current-buffer ... ... ...)) (let* (...) (if ... nil ...)) (let (... elt) (while --dolist-tail-- ... ... ... ...)) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil) :result #s(ert-test-aborted-with-non-local-exit :messages nil :should-forms nil :duration 0) :exit-continuation #f(compiled-function () #<bytecode 0x1ff58f003e95>) :next-debugger debug :ert-debug-on-error nil))
  ert-run-test(#s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that needed shadow files are copied." :body (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let ... ...) (error ...)))) (let ((value-569 'ert-form-evaluation-aborted-570)) (let (form-description-571) (if (condition-case nil ... ...) nil (ert-skip form-description-571))) value-569)) (let* ((fn-572 #'file-remote-p) (args-573 (condition-case err (let ... ...) (error ...)))) (let ((value-574 'ert-form-evaluation-aborted-575)) (let (form-description-576) (if (condition-case nil ... ...) nil (ert-skip form-description-576))) value-574)) (let* ((fn-577 #'file-writable-p) (args-578 (condition-case err (let ... ...) (error ...)))) (let ((value-579 'ert-form-evaluation-aborted-580)) (let (form-description-581) (if (condition-case nil ... ...) nil (ert-skip form-description-581))) value-579)) (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) (shadow-todo-file shadow-test-todo-file) (shadow-inhibit-message t) (shadow-test-remote-temporary-file-directory (file-truename shadow-test-remote-temporary-file-directory)) (shadow-noquery t) shadow-clusters shadow-files-to-copy cluster1 cluster2 primary regexp file mocked-input) (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "cluster1" primary shadow-system-name regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster1 primary regexp) (setq cluster2 "cluster2" primary (file-remote-p shadow-test-remote-temporary-file-directory) regexp (shadow-regexp-superquote primary)) (shadow-set-cluster cluster2 primary regexp) (setq file (make-temp-name ...) shadow-literal-groups (list ...) shadow-regexp-groups (list ...) mocked-input (list ... file)) (let (...) (save-current-buffer ... ...)) (let (...) (save-current-buffer ... ...)) (advice--add-function :before (cons ... ...) #'... '...) (shadow-copy-files 'noquery) (let (...) (let ... ...) value-587) (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char ...) (let* ... ...))) (let* ((new ...)) (if (eq new ...) nil (fset ... new))) (let ((--dolist-tail-- ...) elt) (while --dolist-tail-- (setq elt ...) (condition-case nil ... ...) (condition-case nil ... ...) (setq --dolist-tail-- ...))) (shadow--tests-cleanup)))) :most-recent-result nil :expected-result-type :passed :tags nil))
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-map #<hash-table eql 10/10 0x1ff58ea0f81d> :test-results ... :test-start-times ... :test-end-times ... :passed-expected 8 :passed-unexpected 0 :failed-expected 0 :failed-unexpected 1 :skipped 0 :start-time ... :end-time nil :aborted-p nil ...) #s(ert-test :name shadow-test09-shadow-copy-files :documentation "Check that nee..." :body ... :most-recent-result nil :expected-result-type :passed :tags nil) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1ff58ea0e2d9>))
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type &rest event-args) #<bytecode 0x1ff58ea0e2d9>) nil)
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el" "--eval" "(ert-run-tests-batch-and-exit (quote (not (tag :un..."))
  command-line()
  normal-top-level()

Test shadow-test09-shadow-copy-files backtrace:
  signal(ert-test-failed (((should (looking-at (regexp-quote "(setq sh
  ert-fail(((should (looking-at (regexp-quote "(setq shadow-files-to-c
  (if (unwind-protect (setq value-591 (apply fn-589 args-590)) (setq f
  (let (form-description-593) (if (unwind-protect (setq value-591 (app
  (let ((value-591 'ert-form-evaluation-aborted-592)) (let (form-descr
  (let* ((fn-589 #'looking-at) (args-590 (condition-case err (let ((si
  (save-current-buffer (set-buffer shadow-todo-buffer) (goto-char (poi
  (progn (shadow--tests-cleanup) (shadow-initialize) (setq cluster1 "c
  (unwind-protect (progn (shadow--tests-cleanup) (shadow-initialize) (
  (let ((backup-inhibited t) (shadow-info-file shadow-test-info-file) 
  (lambda nil (let* ((fn-567 #'not) (args-568 (condition-case err (let
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name shadow-test09-shadow-copy-files :docu
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (tag :unstable)) #f(compiled-function (event-type
  ert-run-tests-batch((not (tag :unstable)))
  ert-run-tests-batch-and-exit((not (tag :unstable)))
  eval((ert-run-tests-batch-and-exit '(not (tag :unstable))) t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/shadowfile-tests.el"
  command-line()
  normal-top-level()
Test shadow-test09-shadow-copy-files condition:
    (ert-test-failed
     ((should
       (looking-at
	(regexp-quote "(setq shadow-files-to-copy nil)")))
      :form
      (looking-at "(setq shadow-files-to-copy nil)")
      :value nil))
   FAILED  10/10  shadow-test09-shadow-copy-files (1.148033 sec)

Ran 10 tests, 8 results as expected, 2 unexpected (2019-09-14 18:14:56+0200, 6.659549 sec)

2 unexpected results:
   FAILED  shadow-test08-shadow-todo
   FAILED  shadow-test09-shadow-copy-files

make[1]: *** [lisp/shadowfile-tests.log] Error 1
make: *** [lisp/shadowfile-tests] Error 2

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-14 16:39                         ` Stefan Kangas
@ 2019-09-15 14:56                           ` Michael Albinus
  2019-09-16  2:07                             ` Stefan Kangas
  2019-09-16 19:52                             ` Glenn Morris
  0 siblings, 2 replies; 25+ messages in thread
From: Michael Albinus @ 2019-09-15 14:56 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 37202

Stefan Kangas <stefan@marxist.se> writes:

Hi Stefan,

> Thanks, please find attached the log file.

That helps.

> shadow-add-to-todo: /var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw /private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw

This tells us, that we must not only use the truename of
shadow-test-remote-temporary-file-directory, but also of
temporary-file-directory. I've pushed a fix to master, let's see how it runs.

> Best regards,
> Stefan Kangas

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-15 14:56                           ` Michael Albinus
@ 2019-09-16  2:07                             ` Stefan Kangas
  2019-09-16 13:13                               ` Michael Albinus
  2019-09-16 19:52                             ` Glenn Morris
  1 sibling, 1 reply; 25+ messages in thread
From: Stefan Kangas @ 2019-09-16  2:07 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 37202

Michael Albinus <michael.albinus@gmx.de> writes:

Hi Michael,

> > shadow-add-to-todo: /var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw /private/var/folders/pj/rhx0gxy15tv3vx6l3mdy0qvm0000gn/T/shadowfile-testsUMHFDw
>
> This tells us, that we must not only use the truename of
> shadow-test-remote-temporary-file-directory, but also of
> temporary-file-directory. I've pushed a fix to master, let's see how it runs.

That seems to have done the trick; I see no more failures.  I'll send
you the test log privately, but I think the relevant line is this one:

Ran 10 tests, 10 results as expected, 0 unexpected (2019-09-15
22:02:48+0200, 8.197759 sec)

Congratulations!  And thanks for investigating and fixing it.

Best regards,
Stefan Kangas





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-16  2:07                             ` Stefan Kangas
@ 2019-09-16 13:13                               ` Michael Albinus
  0 siblings, 0 replies; 25+ messages in thread
From: Michael Albinus @ 2019-09-16 13:13 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 37202-done

Version: 27.1

Stefan Kangas <stefan@marxist.se> writes:

> Hi Michael,

Hi Stefan,

> That seems to have done the trick; I see no more failures.  I'll send
> you the test log privately, but I think the relevant line is this one:
>
> Ran 10 tests, 10 results as expected, 0 unexpected (2019-09-15
> 22:02:48+0200, 8.197759 sec)

Thanks for your patient tests! I've disabled the traces in
shadowfile-tests.el. Closing the bug.

> Congratulations!  And thanks for investigating and fixing it.
>
> Best regards,
> Stefan Kangas

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-15 14:56                           ` Michael Albinus
  2019-09-16  2:07                             ` Stefan Kangas
@ 2019-09-16 19:52                             ` Glenn Morris
  2019-09-19 11:09                               ` Michael Albinus
  2019-09-21  7:55                               ` Michael Albinus
  1 sibling, 2 replies; 25+ messages in thread
From: Glenn Morris @ 2019-09-16 19:52 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Stefan Kangas, 37202

Michael Albinus wrote:

> This tells us, that we must not only use the truename of
> shadow-test-remote-temporary-file-directory, but also of
> temporary-file-directory. I've pushed a fix to master, let's see how it runs.

This change makes it fail every time on hydra.nixos.org :)
https://hydra.nixos.org/build/101137999





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-16 19:52                             ` Glenn Morris
@ 2019-09-19 11:09                               ` Michael Albinus
  2019-09-20  0:19                                 ` Paul Eggert
  2019-09-21  7:55                               ` Michael Albinus
  1 sibling, 1 reply; 25+ messages in thread
From: Michael Albinus @ 2019-09-19 11:09 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Paul Eggert, Stefan Kangas, 37202

Glenn Morris <rgm@gnu.org> writes:

Hi Glenn,

>> This tells us, that we must not only use the truename of
>> shadow-test-remote-temporary-file-directory, but also of
>> temporary-file-directory. I've pushed a fix to master, let's see how it runs.
>
> This change makes it fail every time on hydra.nixos.org :)
> https://hydra.nixos.org/build/101137999

Analysing the backtrace, it doesn't look like "this change" is
responsible. It seems rather that this is the first sign that Paul's
recent changes have damaged Tramp. I mean, that file-attributes returns
an error now instead of nil, if a file is not accessible.

My analysis could be wrong, but the question still stands: why do we
need this change in file-attributes and friends?

(And I propose to start with a new bug. It is not related to
shadowfile-tests at all).

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-19 11:09                               ` Michael Albinus
@ 2019-09-20  0:19                                 ` Paul Eggert
  2019-09-20 12:35                                   ` Michael Albinus
  0 siblings, 1 reply; 25+ messages in thread
From: Paul Eggert @ 2019-09-20  0:19 UTC (permalink / raw)
  To: Michael Albinus, Glenn Morris; +Cc: Stefan Kangas, 37202

On 9/19/19 4:09 AM, Michael Albinus wrote:

>> https://hydra.nixos.org/build/101137999
> 
> ... It seems rather that this is the first sign that Paul's
> recent changes have damaged Tramp. I mean, that file-attributes returns
> an error now instead of nil, if a file is not accessible.

Could you explain how the backtrace implicates file-attributes? I see 
the following in the backtrace, but I don't see file-attributes listed 
there, and when I look at the tramp-handle-file-modes source it appears 
that file-attributes returned nil which is what I think you expected.

Test shadow-test08-shadow-todo backtrace:
   signal(args-out-of-range ("([] 1)"))
   tramp-signal-hook-function(args-out-of-range ([] 1))
   tramp-mode-string-to-int(nil)
 
tramp-handle-file-modes(#("/mock:localhost:/build/shadowfile-tests75GTBI" 
6 15 (tramp-default t)))
   apply(tramp-handle-file-modes 
#("/mock:localhost:/build/shadowfile-tests75GTBI" 6 15 (tramp-default t)))
   tramp-sh-file-name-handler(file-modes 
#("/mock:localhost:/build/shadowfile-tests75GTBI" 6 15 (tramp-default t)))
   apply(tramp-sh-file-name-handler file-modes 
#("/mock:localhost:/build/shadowfile-tests75GTBI" 6 15 (tramp-default t)))
   tramp-file-name-handler(file-modes 
#("/mock:localhost:/build/shadowfile-tests75GTBI" 6 15 (tramp-default t)))
   file-modes(#("/mock:localhost:/build/shadowfile-tests75GTBI" 6 15 
(tramp-default t)))





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-20  0:19                                 ` Paul Eggert
@ 2019-09-20 12:35                                   ` Michael Albinus
  2019-09-20 19:04                                     ` Paul Eggert
  0 siblings, 1 reply; 25+ messages in thread
From: Michael Albinus @ 2019-09-20 12:35 UTC (permalink / raw)
  To: Paul Eggert; +Cc: Stefan Kangas, 37202

Paul Eggert <eggert@cs.ucla.edu> writes:

Hi Paul,

> Could you explain how the backtrace implicates file-attributes? I see
> the following in the backtrace, but I don't see file-attributes listed
> there, and when I look at the tramp-handle-file-modes source it
> appears that file-attributes returned nil which is what I think you
> expected.
>
> Test shadow-test08-shadow-todo backtrace:
>   signal(args-out-of-range ("([] 1)"))
>   tramp-signal-hook-function(args-out-of-range ([] 1))
>   tramp-mode-string-to-int(nil)
>
> tramp-handle-file-modes(#("/mock:localhost:/build/shadowfile-tests75GTBI"
> 6 15 (tramp-default t)))

Right, `file-attributes' does not seem to have raised an error. But it
still seems to behave differently. The code is

--8<---------------cut here---------------start------------->8---
(defun tramp-handle-file-modes (filename)
  "Like `file-modes' for Tramp files."
  (let ((truename (or (file-truename filename) filename)))
    (when (file-exists-p truename)
      (tramp-mode-string-to-int
       (tramp-compat-file-attribute-modes (file-attributes truename))))))
--8<---------------cut here---------------end--------------->8---

That means, (file-attributes truename) returns nil although
(file-exists-p truename) returns non-nil. That seems to be a changed
behaviour to me, I don't remember having seen this before.

Arguably, the test shall better use `access-file' but
`file-exists-p'. But anyway, such subtle differences could break Tramp.

I still use conditional wording, because I cannot debug on hydra. And I
cannot say for sure that your changes have caused the problem.

For the time being, I'll adapt `tramp-handle-file-modes' in order to
unbreak the errors on hydra.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-20 12:35                                   ` Michael Albinus
@ 2019-09-20 19:04                                     ` Paul Eggert
  2019-09-20 19:13                                       ` Michael Albinus
  0 siblings, 1 reply; 25+ messages in thread
From: Paul Eggert @ 2019-09-20 19:04 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Stefan Kangas, 37202

On 9/20/19 5:35 AM, Michael Albinus wrote:
> That means, (file-attributes truename) returns nil although
> (file-exists-p truename) returns non-nil.

I don't see why the recent changes would cause file-attributes to return nil on 
a local file. If file-exists-p succeeds, the file has been confirmed to exist. 
In that case, when file-attributes uses fstatat (or openat+stat) the syscalls 
should either succeed, or should fail with an unusual errno value like 
EOVERFLOW, so file-attributes should either return non-nil or signal an error.

Perhaps the file in question has file handlers that are interposing themselves? 
That might explain the situation.

I should mention that under Emacs 26 file-attributes can return nil here, even 
for a local file: e.g., (file-exists-p F) uses faccessat which succeeds, then 
(file-attributes F) uses fstatat (or openat+fstat) which fails with 
errno==EOVERFLOW because F's timestamp or inode number is out of range for the 
kernel.

Also, of course using two calls suffers from a race if the filesystem changes 
between the calls.

So, regardless of the the recent access changes, it appears that this code in 
tramp-handle-file-modes:

     (when (file-exists-p truename)
       (tramp-mode-string-to-int
        (tramp-compat-file-attribute-modes (file-attributes truename))))

should be rewritten to be something like this:

     (when-let ((attrs (file-attributes truename)))
       (tramp-mode-string-to-int
        (tramp-compat-file-attribute-modes attrs)))





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-20 19:04                                     ` Paul Eggert
@ 2019-09-20 19:13                                       ` Michael Albinus
  0 siblings, 0 replies; 25+ messages in thread
From: Michael Albinus @ 2019-09-20 19:13 UTC (permalink / raw)
  To: Paul Eggert; +Cc: Stefan Kangas, 37202

Paul Eggert <eggert@cs.ucla.edu> writes:

Hi Paul,

> So, regardless of the the recent access changes, it appears that this
> code in tramp-handle-file-modes:
>
>     (when (file-exists-p truename)
>       (tramp-mode-string-to-int
>        (tramp-compat-file-attribute-modes (file-attributes truename))))
>
> should be rewritten to be something like this:
>
>     (when-let ((attrs (file-attributes truename)))
>       (tramp-mode-string-to-int
>        (tramp-compat-file-attribute-modes attrs)))

Something like this, yes. Except, that when-let does not exist in Emacs 24.4.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-16 19:52                             ` Glenn Morris
  2019-09-19 11:09                               ` Michael Albinus
@ 2019-09-21  7:55                               ` Michael Albinus
  2019-10-03 13:50                                 ` Michael Albinus
  1 sibling, 1 reply; 25+ messages in thread
From: Michael Albinus @ 2019-09-21  7:55 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Stefan Kangas, 37202

Glenn Morris <rgm@gnu.org> writes:

> This change makes it fail every time on hydra.nixos.org :)
> https://hydra.nixos.org/build/101137999

Should be fixed now, hopefully.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#37202: shadowfile-tests: two failures on macOS
  2019-09-21  7:55                               ` Michael Albinus
@ 2019-10-03 13:50                                 ` Michael Albinus
  0 siblings, 0 replies; 25+ messages in thread
From: Michael Albinus @ 2019-10-03 13:50 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Stefan Kangas, 37202

Michael Albinus <michael.albinus@gmx.de> writes:

> Glenn Morris <rgm@gnu.org> writes:
>
>> This change makes it fail every time on hydra.nixos.org :)
>> https://hydra.nixos.org/build/101137999
>
> Should be fixed now, hopefully.

After some further iterations, hydra doesn't report an error anymore.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2019-10-03 13:50 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-28  0:41 bug#37202: shadowfile-tests: two failures on macOS Stefan Kangas
2019-08-28  8:18 ` Michael Albinus
2019-08-29 13:51   ` Michael Albinus
     [not found]     ` <CADwFkmkxp+NhTTuUg_kja-768nskD4JhbhTwTMKkwh4=QxfKjw@mail.gmail.com>
2019-09-03 12:12       ` Michael Albinus
2019-09-03 13:13         ` Stefan Kangas
2019-09-03 15:04           ` Michael Albinus
2019-09-04 12:16           ` Michael Albinus
2019-09-05 15:07             ` Stefan Kangas
2019-09-07 10:33               ` Michael Albinus
2019-09-07 12:45                 ` Stefan Kangas
2019-09-08  8:21                   ` Michael Albinus
2019-09-08 20:23                     ` Stefan Kangas
2019-09-13 12:29                       ` Michael Albinus
2019-09-14 16:39                         ` Stefan Kangas
2019-09-15 14:56                           ` Michael Albinus
2019-09-16  2:07                             ` Stefan Kangas
2019-09-16 13:13                               ` Michael Albinus
2019-09-16 19:52                             ` Glenn Morris
2019-09-19 11:09                               ` Michael Albinus
2019-09-20  0:19                                 ` Paul Eggert
2019-09-20 12:35                                   ` Michael Albinus
2019-09-20 19:04                                     ` Paul Eggert
2019-09-20 19:13                                       ` Michael Albinus
2019-09-21  7:55                               ` Michael Albinus
2019-10-03 13:50                                 ` Michael Albinus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).