Re: [PATCH 1/8] test/path-config: define config_subtest

Subject: Re: [PATCH 1/8] test/path-config: define config_subtest

Date: Tue, 03 Aug 2021 23:26:35 +0300

To: David Bremner, notmuch@notmuchmail.org

Cc:

From: Tomi Ollila


On Mon, Aug 02 2021, David Bremner wrote:

> This will allow adding "hook code" to be run for a particular
> configuration, in particular marking all tests in a given
> configuration as broken.

uh, see below

> ---
>  test/T055-path-config.sh | 48 ++++++++++++++++++++++++----------------
>  1 file changed, 29 insertions(+), 19 deletions(-)
>
> diff --git a/test/T055-path-config.sh b/test/T055-path-config.sh
> index bb3bf665..2061b116 100755
> --- a/test/T055-path-config.sh
> +++ b/test/T055-path-config.sh
> @@ -79,6 +79,13 @@ xdg_config () {
>      notmuch --config=${CONFIG_PATH} config set database.path
>  }
>  
> +config_subtest () {
> +    local title=$1
> +    local config=$2
> +
> +    test_begin_subtest "$title ($config)"
> +}

here w/o commit message one cannot see the point ;/

Then I looked, in one commit there were this added

      if [[ "$config" == "maildir_env" ]]; then
  	test_subtest_known_broken
      fi

after test_begin_subtest "$title ($config)", and one
config_subtest call was restored to call to test_begin_subtest

finally the above code was removed (but that one test_begin_subtest
was not re-restored to use config_subtest)

i am not too happy about this acrobacy...

btw; that one change there (later in series):

  -    config_subtest "notmuch +config -database suggests notmuch new" "$config"
  +    test_begin_subtest "notmuch +config -database suggests notmuch new" "$config"

... and another...

  -   config_subtest "Set config value" "$config"
  +   test_begin_subtest "Set config value" "$config"

are these correct, the latter was changed originally (in this patch):

  -   test_begin_subtest "Set config value ($config)"
  +   config_subtest "Set config value" "$config"

---

After thinking a while I see the point, I am not sure if this is better,
but I'd do this the following way:

begin_config_subtest () {
    test_begin_subtest "$@"
}

then it is easy to flip between begin_config_subtest and test_begin_subtest
whenever needed -- and in final commit to fix all broken patches remove
all extra code from begin_config_subtest and ensure that no calls to
test_begin_subtest are made in that particular file


Tomi


> +
>  for config in traditional split XDG XDG+profile symlink home_mail; do
>      #start each set of tests with an known set of messages
>      add_email_corpus
> @@ -106,20 +113,23 @@ for config in traditional split XDG XDG+profile symlink home_mail; do
>  	home_mail)
>  	    home_mail_config
>  	    ;;
> +	maildir_env)
> +	    maildir_env_config
> +	    ;;
>      esac
>  
> -    test_begin_subtest "count ($config)"
> +    config_subtest "count" "$config"
>      output=$(notmuch count '*')
>      test_expect_equal "$output" '52'
>  
> -    test_begin_subtest "count+tag ($config)"
> +    config_subtest "count+tag" "$config"
>      tag="tag${RANDOM}"
>      notmuch tag +$tag '*'
>      output=$(notmuch count tag:$tag)
>      notmuch tag -$tag '*'
>      test_expect_equal "$output" '52'
>  
> -    test_begin_subtest "address ($config)"
> +    config_subtest "address" "$config"
>      notmuch address --deduplicate=no --sort=newest-first --output=sender --output=recipients path:foo >OUTPUT
>      cat <<EOF >EXPECTED
>  Carl Worth <cworth@cworth.org>
> @@ -127,7 +137,7 @@ notmuch@notmuchmail.org
>  EOF
>      test_expect_equal_file EXPECTED OUTPUT
>  
> -    test_begin_subtest "dump ($config)"
> +    config_subtest "dump" "$config"
>      notmuch dump is:attachment and is:signed | sort > OUTPUT
>      cat <<EOF > EXPECTED
>  #notmuch-dump batch-tag:3 config,properties,tags
> @@ -136,43 +146,43 @@ EOF
>  EOF
>      test_expect_equal_file EXPECTED OUTPUT
>  
> -    test_begin_subtest "dump + tag + restore ($config)"
> +    config_subtest "dump + tag + restore" "$config"
>      notmuch dump '*' > EXPECTED
>      notmuch tag -inbox '*'
>      notmuch restore < EXPECTED
>      notmuch dump > OUTPUT
>      test_expect_equal_file EXPECTED OUTPUT
>  
> -    test_begin_subtest "reindex ($config)"
> +    config_subtest "reindex" "$config"
>      notmuch search --output=messages '*' > EXPECTED
>      notmuch reindex '*'
>      notmuch search --output=messages '*' > OUTPUT
>      test_expect_equal_file EXPECTED OUTPUT
>  
> -    test_begin_subtest "use existing database ($config)"
> +    config_subtest "use existing database" "$config"
>      output=$(notmuch new)
>      test_expect_equal "$output" 'No new mail.'
>  
> -    test_begin_subtest "create database ($config)"
> +    config_subtest "create database" "$config"
>      rm -rf $DATABASE_PATH/{.notmuch,}/xapian
>      notmuch new
>      output=$(notmuch count '*')
>      test_expect_equal "$output" '52'
>  
> -    test_begin_subtest "detect new files ($config)"
> +    config_subtest "detect new files" "$config"
>      generate_message
>      generate_message
>      notmuch new
>      output=$(notmuch count '*')
>      test_expect_equal "$output" '54'
>  
> -    test_begin_subtest "Show a raw message ($config)"
> +    config_subtest "Show a raw message" "$config"
>      add_message
>      notmuch show --format=raw id:$gen_msg_id > OUTPUT
>      test_expect_equal_file $gen_msg_filename OUTPUT
>      rm -f $gen_msg_filename
>  
> -    test_begin_subtest "reply ($config)"
> +    config_subtest "reply" "$config"
>      add_message '[from]="Sender <sender@example.com>"' \
>  		[to]=test_suite@notmuchmail.org \
>  		[subject]=notmuch-reply-test \
> @@ -190,7 +200,7 @@ On Tue, 05 Jan 2010 15:43:56 -0000, Sender <sender@example.com> wrote:
>  > basic reply test
>  EOF
>      test_expect_equal_file EXPECTED OUTPUT
> -    test_begin_subtest "insert+search ($config)"
> +    config_subtest "insert+search" "$config"
>      generate_message \
>  	"[subject]=\"insert-subject\"" \
>  	"[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
> @@ -201,13 +211,13 @@ EOF
>      test_expect_equal_file "$cur_msg_filename" "$gen_msg_filename"
>  
>  
> -    test_begin_subtest "compact+search ($config)"
> +    config_subtest "compact+search" "$config"
>      notmuch search --output=messages '*' | sort > EXPECTED
>      notmuch compact
>      notmuch search --output=messages '*' | sort > OUTPUT
>      test_expect_equal_file EXPECTED OUTPUT
>  
> -    test_begin_subtest "upgrade backup ($config)"
> +    config_subtest "upgrade backup" "$config"
>      features=$(xapian-metadata get $XAPIAN_PATH features | grep -v "^relative directory paths")
>      xapian-metadata set $XAPIAN_PATH features "$features"
>      output=$(notmuch new | grep Welcome)
> @@ -215,7 +225,7 @@ EOF
>  	"$output" \
>  	"Welcome to a new version of notmuch! Your database will now be upgraded."
>  
> -    test_begin_subtest "notmuch +config -database suggests notmuch new ($config)"
> +    config_subtest "notmuch +config -database suggests notmuch new" "$config"
>      mv "$XAPIAN_PATH" "${XAPIAN_PATH}.bak"
>      notmuch > OUTPUT
>  cat <<EOF > EXPECTED
> @@ -231,7 +241,7 @@ EOF
>  
>     test_expect_equal_file EXPECTED OUTPUT
>  
> -   test_begin_subtest "Set config value ($config)"
> +   config_subtest "Set config value" "$config"
>     name=${RANDOM}
>     value=${RANDOM}
>     notmuch config set test${test_count}.${name} ${value}
> @@ -240,7 +250,7 @@ EOF
>     output2=$(notmuch config get test${test_count}.${name})
>     test_expect_equal "${output}+${output2}" "${value}+"
>  
> -   test_begin_subtest "Set config value in database ($config)"
> +   config_subtest "Set config value in database" "$config"
>     name=${RANDOM}
>     value=${RANDOM}
>     notmuch config set --database test${test_count}.${name} ${value}
> @@ -249,7 +259,7 @@ EOF
>     output2=$(notmuch config get test${test_count}.${name})
>     test_expect_equal "${output}+${output2}" "${value}+"
>  
> -   test_begin_subtest "Config list ($config)"
> +   config_subtest "Config list" "$config"
>     notmuch config list | notmuch_dir_sanitize | sed -e "s/^database.backup_dir=.*$/database.backup_dir/"  \
>  						    -e "s/^database.hook_dir=.*$/database.hook_dir/" \
>  						    -e "s/^database.path=.*$/database.path/"  \
> @@ -276,7 +286,7 @@ EOF
>  
>     case $config in
>         XDG*)
> -	   test_begin_subtest "Set shadowed config value in database ($config)"
> +	   config_subtest "Set shadowed config value in database" "$config"
>  	   name=${RANDOM}
>  	   value=${RANDOM}
>  	   key=test${test_count}.${name}
> -- 
> 2.30.2
> _______________________________________________
> notmuch mailing list -- notmuch@notmuchmail.org
> To unsubscribe send an email to notmuch-leave@notmuchmail.org
_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: