On Tue, Nov 29 2016, David Bremner <david@tethera.net> wrote: > This incorporates Tomi's patch of > > id:1480367228-22183-1-git-send-email-tomi.ollila@iki.fi > > verbatim, to sort out conflicts. > > It fixes the issues I alread sent mail about, and puts back the --keep > tests for various error codes. > > The interdiff follows; most of it is Tomi's fault :). This series looks good to me -- also my part which I had a slight afterthought when I looked what brew install gdb printed out -- it suggested setting 'startup-with-shell off' which would have borken my version (on macOS), but http://apple.stackexchange.com/questions/246245/macos-sierra-gdb-not-codesigned informed that setting startup-with-shell has so far not been necessary (and it would be major pain everywhere if it were required; in addition to everything else using `exec-wrapper` also requires shell...) I.e. if it makes gdb use more robust in general that is good reason to use it. Last (and least) (i.e. I could not resist the templation): the code block below would be simpler in this format -- but perhaps what happends there is less understandable -- although now the where the expansion is done is more visible ;) + test_expect_code 75 "EX_TEMPFAIL when add_message returns $code" \ + "gdb --batch-silent --return-child-result \ + -ex 'set args insert < $gen_msg_filename' \ + -x index-file-$code.gdb notmuch" (all variable expansions are done here (in context of the outermost "gdb...") and not in the `eval` that is done by test_expect_code -- unless any of the variables expanded to yet another variable syntax ;) Tomi > > diff --git a/notmuch-insert.c b/notmuch-insert.c > index a152f15..bc96af0 100644 > --- a/notmuch-insert.c > +++ b/notmuch-insert.c > @@ -541,7 +541,7 @@ notmuch_insert_command (notmuch_config_t *config, int argc, char *argv[]) > status = notmuch_database_open (notmuch_config_get_database_path (config), > NOTMUCH_DATABASE_MODE_READ_WRITE, ¬much); > if (status) > - return status_to_exit(status); > + return keep ? NOTMUCH_STATUS_SUCCESS : status_to_exit (status); > > notmuch_exit_if_unmatched_db_uuid (notmuch); > > @@ -578,5 +578,5 @@ notmuch_insert_command (notmuch_config_t *config, int argc, char *argv[]) > notmuch_run_hook (db_path, "post-insert"); > } > > - return status ? status_to_exit(status) : EXIT_SUCCESS; > + return status_to_exit (status); > } > diff --git a/test/T070-insert.sh b/test/T070-insert.sh > index fd620e5..3e7d582 100755 > --- a/test/T070-insert.sh > +++ b/test/T070-insert.sh > @@ -206,14 +206,24 @@ gen_insert_msg > > for code in FILE_NOT_EMAIL READ_ONLY_DATABASE UPGRADE_REQUIRED PATH_ERROR; do > test_expect_code 1 "EXIT_FAILURE when add_message returns $code" \ > - "gdb --batch-silent --return-child-result -x index-file-$code.gdb \ > - --args notmuch insert < $gen_msg_filename" > + "gdb --batch-silent --return-child-result \ > + -ex \"set args insert < $gen_msg_filename\" \ > + -x index-file-$code.gdb notmuch" > + test_expect_code 0 "success exit with --keep when add_message returns $code" \ > + "gdb --batch-silent --return-child-result \ > + -ex \"set args insert --keep < $gen_msg_filename\" \ > + -x index-file-$code.gdb notmuch" > done > > for code in OUT_OF_MEMORY XAPIAN_EXCEPTION ; do > test_expect_code 75 "EX_TEMPFAIL when add_message returns $code" \ > - "gdb --batch-silent --return-child-result -x index-file-$code.gdb \ > - --args notmuch insert < $gen_msg_filename" > + "gdb --batch-silent --return-child-result \ > + -ex \"set args insert < $gen_msg_filename\" \ > + -x index-file-$code.gdb notmuch" > + test_expect_code 0 "success exit with --keep when add_message returns $code" \ > + "gdb --batch-silent --return-child-result \ > + -ex \"set args insert --keep < $gen_msg_filename\" \ > + -x index-file-$code.gdb notmuch" > done > > test_done