Re: [PATCH] test: don't bail out of `run_emacs' too early when missing prereqs

2012-01-16 Thread Pieter Praet
On Sun, 15 Jan 2012 17:56:37 +0400, Dmitry Kurochkin 
dmitry.kuroch...@gmail.com wrote:
 On Sat, 14 Jan 2012 10:07:41 +0100, Pieter Praet pie...@praet.org wrote:
  On Thu, 12 Jan 2012 21:34:29 +0400, Dmitry Kurochkin 
  dmitry.kuroch...@gmail.com wrote:
   On Thu, 12 Jan 2012 18:16:59 +0100, Pieter Praet pie...@praet.org wrote:
When running the Emacs tests in verbose mode, only the first missing
prereq is reported because the `run_emacs' function is short-circuited
early:

  #+begin_example
emacs: Testing emacs interface
 missing prerequisites: [0]  emacs(1)
 skipping test: [0]  Basic notmuch-hello view in emacs
 SKIP   [0]  Basic notmuch-hello view in emacs
  #+end_example

This can lead to situations reminiscent of dependency hell, so instead
of returning based on each individual `test_require_external_prereq's 
exit
status, we now do so by checking 
$test_subtest_missing_external_prereqs_:

  #+begin_example
emacs: Testing emacs interface
 missing prerequisites: [0]  dtach(1) emacs(1) emacsclient(1)
 skipping test: [0]  Basic notmuch-hello view in emacs
 SKIP   [0]  Basic notmuch-hello view in emacs
  #+end_example

Also add missing prereq for dtach(1).

---
 test/test-lib.sh |6 --
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/test/test-lib.sh b/test/test-lib.sh
index 82767c0..6ec3882 100644
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -907,8 +907,10 @@ EOF
 
 test_emacs () {
# test dependencies beforehand to avoid the waiting loop below
-   test_require_external_prereq emacs || return
-   test_require_external_prereq emacsclient || return
+   test_require_external_prereq dtach
+   test_require_external_prereq emacs
+   test_require_external_prereq emacsclient
+   test -z $test_subtest_missing_external_prereqs_ || return
   
   There may be other missing dependencies before test_emacs() is called
   and $test_subtest_missing_external_prereqs_ would not be blank.  [...]
  
  True, hadn't though of that...
  
   [...] Also, I
   would like to keep the number of functions that use
   $test_subtest_missing_external_prereqs_ minimal.  [...]
  
  Could you elaborate on that?
  
 
 This variable is supposed to be internal.  I would like to be able to
 change it's meaning or replace it with something better with minimal
 changes in the other code.  So I prefer it to be used only by few
 low-level dependency functions.
 

Ok, thanks!


 This is not some strict rule, in other situation I may agree that using
 $test_subtest_missing_external_prereqs_ directly is the best option.
 But in this case, introducing a local variable with clean and simple
 meaning is better IMO.
 

Agreed.


 Regards,
   Dmitry
 
   [...] How about:
   
 missing_dependencies=
 test_require_... dtach || missing_dependencies=1
 test_require_... emacs || missing_dependencies=1
 ...
 test -z $missing_dependencies || return
   
  
  Agreed!  Patch follows.
  
   Regards,
 Dmitry
   
 
if [ -z $EMACS_SERVER ]; then
server_name=notmuch-test-suite-$$
-- 
1.7.8.1

  
  
  Peace
  
  -- 
  Pieter


Peace

-- 
Pieter
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH] test: don't bail out of `run_emacs' too early when missing prereqs

2012-01-15 Thread Dmitry Kurochkin
On Sat, 14 Jan 2012 10:09:37 +0100, Pieter Praet pie...@praet.org wrote:
 When running the Emacs tests in verbose mode, only the first missing
 prereq is reported because the `run_emacs' function is short-circuited
 early:
 
   #+begin_example
 emacs: Testing emacs interface
  missing prerequisites: [0]  emacs(1)
  skipping test: [0]  Basic notmuch-hello view in emacs
  SKIP   [0]  Basic notmuch-hello view in emacs
   #+end_example
 
 This can lead to situations reminiscent of dependency hell, so instead
 of returning based on each individual `test_require_external_prereq's exit
 status, we now do so only after checking all the prereqs:
 
   #+begin_example
 emacs: Testing emacs interface
  missing prerequisites: [0]  dtach(1) emacs(1) emacsclient(1)
  skipping test: [0]  Basic notmuch-hello view in emacs
  SKIP   [0]  Basic notmuch-hello view in emacs
   #+end_example
 
 Also added missing prereq for dtach(1).

looks good to me

Regards,
  Dmitry

 ---
  test/test-lib.sh |7 +--
  1 files changed, 5 insertions(+), 2 deletions(-)
 
 diff --git a/test/test-lib.sh b/test/test-lib.sh
 index 82767c0..d1fbc05 100644
 --- a/test/test-lib.sh
 +++ b/test/test-lib.sh
 @@ -907,8 +907,11 @@ EOF
  
  test_emacs () {
   # test dependencies beforehand to avoid the waiting loop below
 - test_require_external_prereq emacs || return
 - test_require_external_prereq emacsclient || return
 + missing_dependencies=
 + test_require_external_prereq dtach || missing_dependencies=1
 + test_require_external_prereq emacs || missing_dependencies=1
 + test_require_external_prereq emacsclient || missing_dependencies=1
 + test -z $missing_dependencies || return
  
   if [ -z $EMACS_SERVER ]; then
   server_name=notmuch-test-suite-$$
 -- 
 1.7.8.1
 
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH] test: don't bail out of `run_emacs' too early when missing prereqs

2012-01-15 Thread Dmitry Kurochkin
On Sat, 14 Jan 2012 10:07:41 +0100, Pieter Praet pie...@praet.org wrote:
 On Thu, 12 Jan 2012 21:34:29 +0400, Dmitry Kurochkin 
 dmitry.kuroch...@gmail.com wrote:
  On Thu, 12 Jan 2012 18:16:59 +0100, Pieter Praet pie...@praet.org wrote:
   When running the Emacs tests in verbose mode, only the first missing
   prereq is reported because the `run_emacs' function is short-circuited
   early:
   
 #+begin_example
   emacs: Testing emacs interface
missing prerequisites: [0]  emacs(1)
skipping test: [0]  Basic notmuch-hello view in emacs
SKIP   [0]  Basic notmuch-hello view in emacs
 #+end_example
   
   This can lead to situations reminiscent of dependency hell, so instead
   of returning based on each individual `test_require_external_prereq's exit
   status, we now do so by checking $test_subtest_missing_external_prereqs_:
   
 #+begin_example
   emacs: Testing emacs interface
missing prerequisites: [0]  dtach(1) emacs(1) emacsclient(1)
skipping test: [0]  Basic notmuch-hello view in emacs
SKIP   [0]  Basic notmuch-hello view in emacs
 #+end_example
   
   Also add missing prereq for dtach(1).
   
   ---
test/test-lib.sh |6 --
1 files changed, 4 insertions(+), 2 deletions(-)
   
   diff --git a/test/test-lib.sh b/test/test-lib.sh
   index 82767c0..6ec3882 100644
   --- a/test/test-lib.sh
   +++ b/test/test-lib.sh
   @@ -907,8 +907,10 @@ EOF

test_emacs () {
 # test dependencies beforehand to avoid the waiting loop below
   - test_require_external_prereq emacs || return
   - test_require_external_prereq emacsclient || return
   + test_require_external_prereq dtach
   + test_require_external_prereq emacs
   + test_require_external_prereq emacsclient
   + test -z $test_subtest_missing_external_prereqs_ || return
  
  There may be other missing dependencies before test_emacs() is called
  and $test_subtest_missing_external_prereqs_ would not be blank.  [...]
 
 True, hadn't though of that...
 
  [...] Also, I
  would like to keep the number of functions that use
  $test_subtest_missing_external_prereqs_ minimal.  [...]
 
 Could you elaborate on that?
 

This variable is supposed to be internal.  I would like to be able to
change it's meaning or replace it with something better with minimal
changes in the other code.  So I prefer it to be used only by few
low-level dependency functions.

This is not some strict rule, in other situation I may agree that using
$test_subtest_missing_external_prereqs_ directly is the best option.
But in this case, introducing a local variable with clean and simple
meaning is better IMO.

Regards,
  Dmitry

  [...] How about:
  
missing_dependencies=
test_require_... dtach || missing_dependencies=1
test_require_... emacs || missing_dependencies=1
...
test -z $missing_dependencies || return
  
 
 Agreed!  Patch follows.
 
  Regards,
Dmitry
  

 if [ -z $EMACS_SERVER ]; then
 server_name=notmuch-test-suite-$$
   -- 
   1.7.8.1
   
 
 
 Peace
 
 -- 
 Pieter
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH] test: don't bail out of `run_emacs' too early when missing prereqs

2012-01-15 Thread David Bremner
On Sat, 14 Jan 2012 10:09:37 +0100, Pieter Praet pie...@praet.org wrote:
 When running the Emacs tests in verbose mode, only the first missing
 prereq is reported because the `run_emacs' function is short-circuited
 early:

pushed.

d
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH] test: don't bail out of `run_emacs' too early when missing prereqs

2012-01-12 Thread Dmitry Kurochkin
On Thu, 12 Jan 2012 18:16:59 +0100, Pieter Praet pie...@praet.org wrote:
 When running the Emacs tests in verbose mode, only the first missing
 prereq is reported because the `run_emacs' function is short-circuited
 early:
 
   #+begin_example
 emacs: Testing emacs interface
  missing prerequisites: [0]  emacs(1)
  skipping test: [0]  Basic notmuch-hello view in emacs
  SKIP   [0]  Basic notmuch-hello view in emacs
   #+end_example
 
 This can lead to situations reminiscent of dependency hell, so instead
 of returning based on each individual `test_require_external_prereq's exit
 status, we now do so by checking $test_subtest_missing_external_prereqs_:
 
   #+begin_example
 emacs: Testing emacs interface
  missing prerequisites: [0]  dtach(1) emacs(1) emacsclient(1)
  skipping test: [0]  Basic notmuch-hello view in emacs
  SKIP   [0]  Basic notmuch-hello view in emacs
   #+end_example
 
 Also add missing prereq for dtach(1).
 
 ---
  test/test-lib.sh |6 --
  1 files changed, 4 insertions(+), 2 deletions(-)
 
 diff --git a/test/test-lib.sh b/test/test-lib.sh
 index 82767c0..6ec3882 100644
 --- a/test/test-lib.sh
 +++ b/test/test-lib.sh
 @@ -907,8 +907,10 @@ EOF
  
  test_emacs () {
   # test dependencies beforehand to avoid the waiting loop below
 - test_require_external_prereq emacs || return
 - test_require_external_prereq emacsclient || return
 + test_require_external_prereq dtach
 + test_require_external_prereq emacs
 + test_require_external_prereq emacsclient
 + test -z $test_subtest_missing_external_prereqs_ || return

There may be other missing dependencies before test_emacs() is called
and $test_subtest_missing_external_prereqs_ would not be blank.  Also, I
would like to keep the number of functions that use
$test_subtest_missing_external_prereqs_ minimal.  How about:

  missing_dependencies=
  test_require_... dtach || missing_dependencies=1
  test_require_... emacs || missing_dependencies=1
  ...
  test -z $missing_dependencies || return

Regards,
  Dmitry

  
   if [ -z $EMACS_SERVER ]; then
   server_name=notmuch-test-suite-$$
 -- 
 1.7.8.1
 
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch