On Sun, 15 Jan 2012 17:56:37 +0400, Dmitry Kurochkin <dmitry.kurochkin at gmail.com> wrote: > On Sat, 14 Jan 2012 10:07:41 +0100, Pieter Praet <pieter at praet.org> wrote: > > On Thu, 12 Jan 2012 21:34:29 +0400, Dmitry Kurochkin <dmitry.kurochkin at > > gmail.com> wrote: > > > On Thu, 12 Jan 2012 18:16:59 +0100, Pieter Praet <pieter at 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