From 53a296f8b629e002b13f328c74ff905963f75dc4 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Wed, 6 Mar 2024 14:36:38 +0100 Subject: tests/*/t: Replace filetype=sh with filetype=bash. --- tests/auth-login/t | 2 +- tests/auth-logindisabled/t | 2 +- tests/auth-noplaintext/t | 2 +- tests/auth-sasl-plain-no-ir/t | 2 +- tests/auth-sasl-plain/t | 2 +- tests/compress/t | 2 +- tests/condstore/t | 2 +- tests/db-exclusive-lock/t | 2 +- tests/db-migration-0-1-foreign-key-violation/t | 2 +- tests/db-no-create--watch/t | 2 +- tests/db-upgrade-0-1-delim-mismatch/t | 2 +- tests/db-upgrade-0-1/t | 2 +- tests/delete/t | 2 +- tests/delimiter-change/t | 2 +- tests/ignore-mailbox/t | 2 +- tests/largeint/t | 2 +- tests/list-mailbox/t | 2 +- tests/list-reference/t | 2 +- tests/list-select-opts/t | 2 +- tests/preauth-plaintext/t | 2 +- tests/pullimap/t | 2 +- tests/rename-exists-db/t | 2 +- tests/rename-exists-local/t | 2 +- tests/rename-exists-remote/t | 2 +- tests/rename-inferiors/t | 2 +- tests/rename-simple/t | 2 +- tests/repair/t | 2 +- tests/resume/t | 2 +- tests/split-set/t | 2 +- tests/starttls-injection/t | 2 +- tests/starttls-logindisabled/t | 2 +- tests/starttls/t | 2 +- tests/sync-live-multi/t | 2 +- tests/sync-live/t | 2 +- tests/sync-mailbox-list/t | 2 +- tests/tls-ciphers/t | 2 +- tests/tls-pin-fingerprint/t | 2 +- tests/tls-protocols/t | 2 +- tests/tls-rsa+ecdsa/t | 2 +- tests/tls-sni/t | 2 +- tests/tls-verify-peer/t | 2 +- tests/tls/t | 2 +- 42 files changed, 42 insertions(+), 42 deletions(-) (limited to 'tests') diff --git a/tests/auth-login/t b/tests/auth-login/t index 7fd83d5..38e2028 100644 --- a/tests/auth-login/t +++ b/tests/auth-login/t @@ -9,4 +9,4 @@ grep -Fx "remote: C: xxx LOGIN [REDACTED]" <"$STDERR" || error check_mailbox_status "INBOX" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/auth-logindisabled/t b/tests/auth-logindisabled/t index 0bcd0d6..402355f 100644 --- a/tests/auth-logindisabled/t +++ b/tests/auth-logindisabled/t @@ -13,4 +13,4 @@ grep -Fx "LOGINDISABLED" <"$TMPDIR/capabilities" || error grep -Fx "remote: ERROR: Logins are disabled." <"$STDERR" || error ! grep -E "^remote: C: .* (AUTHENTICATE|LOGIN) " <"$STDERR" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/auth-noplaintext/t b/tests/auth-noplaintext/t index 11d7d4d..862bc8d 100644 --- a/tests/auth-noplaintext/t +++ b/tests/auth-noplaintext/t @@ -12,4 +12,4 @@ tr " " "\\n" <"$TMPDIR/capability" >"$TMPDIR/capabilities" grep -Fx "remote: ERROR: Server did not advertise STARTTLS capability." <"$STDERR" || error ! grep -E "^remote: C: .* (AUTHENTICATE|LOGIN) " <"$STDERR" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/auth-sasl-plain-no-ir/t b/tests/auth-sasl-plain-no-ir/t index 17aa9e6..f236ac7 100644 --- a/tests/auth-sasl-plain-no-ir/t +++ b/tests/auth-sasl-plain-no-ir/t @@ -23,4 +23,4 @@ xcgrep "$n" -E "^remote(\(INBOX\))?: C: [0-9]+ APPEND INBOX .* \{[0-9]+\}$" <"$S check_mailbox_status "INBOX" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/auth-sasl-plain/t b/tests/auth-sasl-plain/t index 68f71a9..c5cb024 100644 --- a/tests/auth-sasl-plain/t +++ b/tests/auth-sasl-plain/t @@ -9,4 +9,4 @@ grep -Fx "remote: C: xxx AUTHENTICATE PLAIN [REDACTED]" <"$STDERR" || error check_mailbox_status "INBOX" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/compress/t b/tests/compress/t index 5625761..0a04a73 100644 --- a/tests/compress/t +++ b/tests/compress/t @@ -16,4 +16,4 @@ echo "compress = no" >>"$XDG_CONFIG_HOME/interimap/config" interimap --debug || error ! grep -E "^remote: C: [^[:blank:]]+ COMPRESS DEFLATE$" <"$STDERR" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/condstore/t b/tests/condstore/t index 1963b2b..b30ca36 100644 --- a/tests/condstore/t +++ b/tests/condstore/t @@ -47,4 +47,4 @@ for f in "${FLAGS[@]}"; do error "UID list differs for keyword '$f'" done -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/db-exclusive-lock/t b/tests/db-exclusive-lock/t index 837d21b..0d0badb 100644 --- a/tests/db-exclusive-lock/t +++ b/tests/db-exclusive-lock/t @@ -13,4 +13,4 @@ sleep .5 grep -Ex "DBD::SQLite::db do failed: database is locked at (\S+/)?interimap line 181\." <"$STDERR" \ || error "Is \$DBH->do(\"PRAGMA locking_mode = EXCLUSIVE\"); at line 181?" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/db-migration-0-1-foreign-key-violation/t b/tests/db-migration-0-1-foreign-key-violation/t index 35e5be5..fa4afb4 100644 --- a/tests/db-migration-0-1-foreign-key-violation/t +++ b/tests/db-migration-0-1-foreign-key-violation/t @@ -18,4 +18,4 @@ EOF grep -Fx "Upgrading database version from 0" <"$STDERR" || error "DB upgrade not attempted" grep -Fx "database: ERROR: Broken referential integrity! Refusing to commit changes." <"$STDERR" || error "DB upgrade successful despite broken refint" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/db-no-create--watch/t b/tests/db-no-create--watch/t index 37fc6cb..3097558 100644 --- a/tests/db-no-create--watch/t +++ b/tests/db-no-create--watch/t @@ -3,4 +3,4 @@ grep -Ex "DBI connect\(.*\) failed: unable to open database file at (\S+/)?interimap line 177\." <"$STDERR" || error test \! -e "$XDG_DATA_HOME/interimap/remote.db" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/db-upgrade-0-1-delim-mismatch/t b/tests/db-upgrade-0-1-delim-mismatch/t index d133437..c15927c 100644 --- a/tests/db-upgrade-0-1-delim-mismatch/t +++ b/tests/db-upgrade-0-1-delim-mismatch/t @@ -4,4 +4,4 @@ sqlite3 "$XDG_DATA_HOME/interimap/remote.db" <"$TESTDIR/before.sql" || error "Co grep -Fx 'ERROR: Local and remote hierachy delimiters differ (local "\"", remote "^"), refusing to update table `mailboxes`.' <"$STDERR" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/db-upgrade-0-1/t b/tests/db-upgrade-0-1/t index 088008e..2baafe6 100644 --- a/tests/db-upgrade-0-1/t +++ b/tests/db-upgrade-0-1/t @@ -31,4 +31,4 @@ diff -u --label="a/dump.sql" --label="b/dump.sql" \ "$TMPDIR/dump-expected.sql" "$TMPDIR/dump.sql" \ || error "DB dumps differ" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/delete/t b/tests/delete/t index c38d4d3..84fc55f 100644 --- a/tests/delete/t +++ b/tests/delete/t @@ -92,4 +92,4 @@ check_mailbox_list check_mailboxes_status "INBOX" step_done -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/delimiter-change/t b/tests/delimiter-change/t index 3f96953..c49dd66 100644 --- a/tests/delimiter-change/t +++ b/tests/delimiter-change/t @@ -34,4 +34,4 @@ run "." "." n="$(doveadm -u "local" search all | wc -l)" [ "$n" -eq 64 ] || error "$n != 64" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/ignore-mailbox/t b/tests/ignore-mailbox/t index f90227c..0b8d553 100644 --- a/tests/ignore-mailbox/t +++ b/tests/ignore-mailbox/t @@ -59,4 +59,4 @@ EOF check_mailboxes_status "virtual" "virtual.bar" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/largeint/t b/tests/largeint/t index b0877d5..c3f349e 100644 --- a/tests/largeint/t +++ b/tests/largeint/t @@ -36,4 +36,4 @@ doveadm -u "remote" mailbox update --min-next-uid 2147483648 --min-highest-modse run -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/list-mailbox/t b/tests/list-mailbox/t index e905537..a1168a6 100644 --- a/tests/list-mailbox/t +++ b/tests/list-mailbox/t @@ -54,4 +54,4 @@ for v in '""' '"f o o""bar"' '"f o o" "bar" "baz\" x'; do grep -xF "Invalid value for list-mailbox: $v" <"$STDERR" done -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/list-reference/t b/tests/list-reference/t index a2cc9c7..12e112b 100644 --- a/tests/list-reference/t +++ b/tests/list-reference/t @@ -44,4 +44,4 @@ verify ! doveadm -u "local" mailbox status uidvalidity "foobaz" || error ! doveadm -u "remote" mailbox status uidvalidity "foobar" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/list-select-opts/t b/tests/list-select-opts/t index 98acb43..30c3fe9 100644 --- a/tests/list-select-opts/t +++ b/tests/list-select-opts/t @@ -53,4 +53,4 @@ grep -Fx "remote: Created mailbox foo" <"$STDERR" || error check_mailbox_list check_mailboxes_status "INBOX" "foo" "foo.bar" "bar" "baz" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/preauth-plaintext/t b/tests/preauth-plaintext/t index bc287dd..2f3071f 100644 --- a/tests/preauth-plaintext/t +++ b/tests/preauth-plaintext/t @@ -16,4 +16,4 @@ interimap --debug || true grep -Fx "remote: S: * STATUS INBOX (UIDNEXT 1 UIDVALIDITY 1 HIGHESTMODSEQ 1)" <"$STDERR" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/pullimap/t b/tests/pullimap/t index 58a19ca..879c5d1 100644 --- a/tests/pullimap/t +++ b/tests/pullimap/t @@ -149,4 +149,4 @@ doveadm -u "remote" search mailbox "$MAILBOX" all >"$TMPDIR/messages" [ ! -s "$TMPDIR/messages" ] || error "messages left" step_done -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/rename-exists-db/t b/tests/rename-exists-db/t index cb6cfcd..63d7ba0 100644 --- a/tests/rename-exists-db/t +++ b/tests/rename-exists-db/t @@ -11,4 +11,4 @@ doveadm -u "remote" mailbox delete "t\\o" ! interimap --rename "root.from" "t.o" || error grep -Fx 'database: ERROR: Mailbox t.o exists. Run `interimap --target=database --delete t.o` to delete.' <"$STDERR" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/rename-exists-local/t b/tests/rename-exists-local/t index 190f49a..33c7da7 100644 --- a/tests/rename-exists-local/t +++ b/tests/rename-exists-local/t @@ -10,4 +10,4 @@ doveadm -u "remote" mailbox delete "t\\o" ! interimap --rename "root.from" "t.o" || error grep -Fx 'local: ERROR: Mailbox t.o exists. Run `interimap --target=local --delete t.o` to delete.' <"$STDERR" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/rename-exists-remote/t b/tests/rename-exists-remote/t index be16a12..2e87053 100644 --- a/tests/rename-exists-remote/t +++ b/tests/rename-exists-remote/t @@ -10,4 +10,4 @@ doveadm -u "local" mailbox delete "t.o" ! interimap --rename "root.from" "t.o" || error grep -Fx 'remote: ERROR: Mailbox t\o exists. Run `interimap --target=remote --delete t.o` to delete.' <"$STDERR" || remote -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/rename-inferiors/t b/tests/rename-inferiors/t index 9267e6f..9166230 100644 --- a/tests/rename-inferiors/t +++ b/tests/rename-inferiors/t @@ -97,4 +97,4 @@ check_mailbox_list check_mailboxes_status "from.root" "from.root.child" "from.root.child2" "from.root.child.grandchild" \ "newroot.sibbling" "newroot.sibbling.grandchild" "root2" "INBOX" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/rename-simple/t b/tests/rename-simple/t index 6ebee9a..df9d84c 100644 --- a/tests/rename-simple/t +++ b/tests/rename-simple/t @@ -58,4 +58,4 @@ grep -Fx "database: Created mailbox INBOX" <"$STDERR" check_mailbox_list check_mailboxes_status "INBOX" "bar" "baz" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/repair/t b/tests/repair/t index 6b205ea..10fab0d 100644 --- a/tests/repair/t +++ b/tests/repair/t @@ -104,4 +104,4 @@ check_mailboxes_status "baz" "foo.bar" interimap || error check_mailboxes_status "baz" "foo.bar" "INBOX" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/resume/t b/tests/resume/t index a281ef3..d7b9b53 100644 --- a/tests/resume/t +++ b/tests/resume/t @@ -95,4 +95,4 @@ diff -u --label="a/count" --label="b/count" "$TMPDIR/count" - <<-EOF 9 EOF -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/split-set/t b/tests/split-set/t index 5e8ea52..d8cf948 100644 --- a/tests/split-set/t +++ b/tests/split-set/t @@ -40,4 +40,4 @@ done interimap || error check_mailbox_status "INBOX" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/starttls-injection/t b/tests/starttls-injection/t index d57aa7a..023baff 100644 --- a/tests/starttls-injection/t +++ b/tests/starttls-injection/t @@ -13,4 +13,4 @@ grep -Fx 'remote: WARNING: Truncating non-empty output buffer (unauthenticated r ! grep -Fx 'remote: ERROR: Logins are disabled.' <"$STDERR" || error "injected capability wasn't ignored" grep -Fx 'remote: ERROR: Server did not advertise ENABLE (RFC 5161) capability.' <"$STDERR" || error "injected capability wasn't ignored" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/starttls-logindisabled/t b/tests/starttls-logindisabled/t index 0ac7465..b2bf87b 100644 --- a/tests/starttls-logindisabled/t +++ b/tests/starttls-logindisabled/t @@ -16,4 +16,4 @@ grep -Fx "remote: C: 000001 CAPABILITY" <"$STDERR" || error # can't go further as the capability string still has the manually # enforced 'LOGINDISABLED' -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/starttls/t b/tests/starttls/t index 62b2151..668419f 100644 --- a/tests/starttls/t +++ b/tests/starttls/t @@ -27,4 +27,4 @@ grep "^remote: SSL cipher: " <"$STDERR" || error check_mailbox_status "INBOX" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/sync-live-multi/t b/tests/sync-live-multi/t index ba7f326..b91cedc 100644 --- a/tests/sync-live-multi/t +++ b/tests/sync-live-multi/t @@ -124,4 +124,4 @@ for m in "${MAILBOXES[@]}"; do check_mailbox_status2 "$blob" "$m" "$u" "$mr" done -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/sync-live/t b/tests/sync-live/t index 5f5b291..1d50b00 100644 --- a/tests/sync-live/t +++ b/tests/sync-live/t @@ -73,4 +73,4 @@ trap - EXIT INT TERM check_mailbox_list check_mailboxes_status "${MAILBOXES[@]}" -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/sync-mailbox-list/t b/tests/sync-mailbox-list/t index ea80fbf..d1567fb 100644 --- a/tests/sync-mailbox-list/t +++ b/tests/sync-mailbox-list/t @@ -90,4 +90,4 @@ EOF [ $(< "$TMPDIR/count") -eq 0 ] || error step_done -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/tls-ciphers/t b/tests/tls-ciphers/t index 0dfc771..ca0e610 100644 --- a/tests/tls-ciphers/t +++ b/tests/tls-ciphers/t @@ -28,4 +28,4 @@ EOF interimap --debug || error grep -Fx "remote: SSL cipher: TLS_CHACHA20_POLY1305_SHA256 (256 bits)" <"$STDERR" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/tls-pin-fingerprint/t b/tests/tls-pin-fingerprint/t index 883a887..c8806c7 100644 --- a/tests/tls-pin-fingerprint/t +++ b/tests/tls-pin-fingerprint/t @@ -74,4 +74,4 @@ EOF interimap --debug || error grep -Fx "remote: Peer certificate matches pinned SPKI digest sha256\$$PKEY_SHA256" <"$STDERR" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/tls-protocols/t b/tests/tls-protocols/t index 72f7db2..b78dd69 100644 --- a/tests/tls-protocols/t +++ b/tests/tls-protocols/t @@ -96,4 +96,4 @@ grep -Fx "remote: ERROR: Can't initiate TLS/SSL handshake" <"$STDERR" || error ! grep -E "^remote: C: .* (AUTHENTICATE|LOGIN) " <"$STDERR" || error grep -Fx "remote: IMAP traffic (bytes): recv 0 sent 0" <"$STDERR" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/tls-rsa+ecdsa/t b/tests/tls-rsa+ecdsa/t index fd2b1be..605d7b6 100644 --- a/tests/tls-rsa+ecdsa/t +++ b/tests/tls-rsa+ecdsa/t @@ -53,4 +53,4 @@ interimap --debug || error grep -Fx "remote: Peer certificate fingerprint: sha256\$$X509_ALT_SHA256" <"$STDERR" || error grep -Fx "remote: Peer certificate matches pinned SPKI digest sha256\$$PKEY_ALT_SHA256" <"$STDERR" || error -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/tls-sni/t b/tests/tls-sni/t index f18b8b0..6f3af1f 100644 --- a/tests/tls-sni/t +++ b/tests/tls-sni/t @@ -63,4 +63,4 @@ echo "SSL_CAfile = $HOME/.dovecot/conf.d/ca.crt" >>"$XDG_CONFIG_HOME/interimap/c interimap --debug || error sni_ok -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/tls-verify-peer/t b/tests/tls-verify-peer/t index 8326521..7e50b24 100644 --- a/tests/tls-verify-peer/t +++ b/tests/tls-verify-peer/t @@ -146,4 +146,4 @@ done step_done -# vim: set filetype=sh : +# vim: set filetype=bash : diff --git a/tests/tls/t b/tests/tls/t index a674b28..c78925d 100644 --- a/tests/tls/t +++ b/tests/tls/t @@ -14,4 +14,4 @@ grep "^remote: SSL cipher: " <"$STDERR" || error check_mailbox_status "INBOX" -# vim: set filetype=sh : +# vim: set filetype=bash : -- cgit v1.2.3 From eb254348085047702ee37e405d171d894dc5ffff Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Wed, 6 Mar 2024 14:37:29 +0100 Subject: tests/certs/generate: Generate X.509 version 3 CA. And pass CA:TRUE as basic constraint. This fixes the test suite with OpenSSL 3.2 with defaults to X.509v3 and CA:FALSE. --- tests/certs/generate | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/certs/generate b/tests/certs/generate index 8e9c451..f449764 100755 --- a/tests/certs/generate +++ b/tests/certs/generate @@ -22,7 +22,12 @@ genpkey() { # generate CA (we intentionally throw away the private key and serial # file to avoid reuse) genpkey "$cadir/ca.key" -algorithm RSA -openssl req -new -x509 -rand /dev/urandom -subj "/OU=$OU/CN=Fake Root CA" -key "$cadir/ca.key" -out ./ca.crt +openssl req -new -x509 -rand /dev/urandom \ + -subj "/OU=$OU/CN=Fake Root CA" \ + -addext subjectKeyIdentifier="hash" \ + -addext authorityKeyIdentifier="keyid:always,issuer" \ + -addext basicConstraints="critical,CA:TRUE" \ + -key "$cadir/ca.key" -out ./ca.crt SERIAL=1 new() { -- cgit v1.2.3 From a4accc44ac1fddffba31d9bf52b76738a3562057 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Wed, 6 Mar 2024 14:52:56 +0100 Subject: tests/*/t: Explicitly pass `-in /dev/stdin` to openssl(1). --- tests/starttls/t | 2 +- tests/tls-pin-fingerprint/t | 3 ++- tests/tls-rsa+ecdsa/t | 5 +++-- tests/tls-sni/t | 4 ++-- tests/tls-verify-peer/t | 5 +++-- tests/tls/t | 2 +- 6 files changed, 12 insertions(+), 9 deletions(-) (limited to 'tests') diff --git a/tests/starttls/t b/tests/starttls/t index 668419f..7b76469 100644 --- a/tests/starttls/t +++ b/tests/starttls/t @@ -1,5 +1,5 @@ X509_SHA256="$(doveconf -c "$HOME_remote/.dovecot/config" -hx ssl_cert \ - | openssl x509 -noout -fingerprint -sha256 \ + | openssl x509 -in /dev/stdin -noout -fingerprint -sha256 \ | sed -rn "/^.*=\\s*/ {s///p;q}" | tr -d : | tr "[A-Z]" "[a-z]")" for ((i = 0; i < 32; i++)); do diff --git a/tests/tls-pin-fingerprint/t b/tests/tls-pin-fingerprint/t index c8806c7..6c045a1 100644 --- a/tests/tls-pin-fingerprint/t +++ b/tests/tls-pin-fingerprint/t @@ -1,5 +1,6 @@ PKEY_SHA256="$(doveconf -c "$HOME_remote/.dovecot/config" -hx ssl_cert \ - | openssl x509 -pubkey | openssl pkey -pubin -outform DER \ + | openssl x509 -in /dev/stdin -pubkey \ + | openssl pkey -in /dev/stdin -pubin -outform DER \ | openssl dgst -sha256 | sed -rn "/^.*=\\s*/ {s///p;q}")" INVALID_FPR="sha256\$deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" INVALID_FPR2="sha256\$deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbee2" diff --git a/tests/tls-rsa+ecdsa/t b/tests/tls-rsa+ecdsa/t index 605d7b6..16ec9d9 100644 --- a/tests/tls-rsa+ecdsa/t +++ b/tests/tls-rsa+ecdsa/t @@ -2,11 +2,12 @@ doveconf_remote() { doveconf -c "$HOME_remote/.dovecot/config" -hx "$1" } pkey_sha256() { - openssl x509 -pubkey | openssl pkey -pubin -outform DER \ + openssl x509 -in /dev/stdin -pubkey \ + | openssl pkey -in /dev/stdin -pubin -outform DER \ | openssl dgst -sha256 | sed -rn "/^.*=\\s*/ {s///p;q}" } x509_sha256() { - openssl x509 -noout -fingerprint -sha256 \ + openssl x509 -in /dev/stdin -noout -fingerprint -sha256 \ | sed -rn "/^.*=\\s*/ {s///p;q}" | tr -d : | tr "[A-Z]" "[a-z]" } diff --git a/tests/tls-sni/t b/tests/tls-sni/t index 6f3af1f..0565e49 100644 --- a/tests/tls-sni/t +++ b/tests/tls-sni/t @@ -1,9 +1,9 @@ SERVERNAME="imap.example.net" # cf local_name{} section in the dovecot config X509_SHA256="$(doveconf -c "$HOME_remote/.dovecot/config" -hx ssl_cert \ - | openssl x509 -noout -fingerprint -sha256 \ + | openssl x509 -in /dev/stdin -noout -fingerprint -sha256 \ | sed -rn "/^.*=\\s*/ {s///p;q}" | tr -d : | tr "[A-Z]" "[a-z]")" X509_2_SHA256="$(doveconf -c "$HOME_remote/.dovecot/config" -f lname="$SERVERNAME" -hx ssl_cert \ - | openssl x509 -noout -fingerprint -sha256 \ + | openssl x509 -in /dev/stdin -noout -fingerprint -sha256 \ | sed -rn "/^.*=\\s*/ {s///p;q}" | tr -d : | tr "[A-Z]" "[a-z]")" # check that empty SSL_hostname disables SNI diff --git a/tests/tls-verify-peer/t b/tests/tls-verify-peer/t index 7e50b24..ee4cd88 100644 --- a/tests/tls-verify-peer/t +++ b/tests/tls-verify-peer/t @@ -1,8 +1,9 @@ X509_SHA256="$(doveconf -c "$HOME_remote/.dovecot/config" -hx ssl_cert \ - | openssl x509 -noout -fingerprint -sha256 \ + | openssl x509 -in /dev/stdin -noout -fingerprint -sha256 \ | sed -rn "/^.*=\\s*/ {s///p;q}" | tr -d : | tr "[A-Z]" "[a-z]")" PKEY_SHA256="$(doveconf -c "$HOME_remote/.dovecot/config" -hx ssl_cert \ - | openssl x509 -pubkey | openssl pkey -pubin -outform DER \ + | openssl x509 -in /dev/stdin -pubkey \ + | openssl pkey -in /dev/stdin -pubin -outform DER \ | openssl dgst -sha256 | sed -rn "/^.*=\\s*/ {s///p;q}")" unverified_peer() { diff --git a/tests/tls/t b/tests/tls/t index c78925d..aee0678 100644 --- a/tests/tls/t +++ b/tests/tls/t @@ -1,5 +1,5 @@ X509_SHA256="$(doveconf -c "$HOME_remote/.dovecot/config" -hx ssl_cert \ - | openssl x509 -noout -fingerprint -sha256 \ + | openssl x509 -in /dev/stdin -noout -fingerprint -sha256 \ | sed -rn "/^.*=\\s*/ {s///p;q}" | tr -d : | tr "[A-Z]" "[a-z]")" for ((i = 0; i < 32; i++)); do -- cgit v1.2.3 From 8f11b2625b98831a591a73c8928d62c1df11aadb Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Fri, 5 Apr 2024 20:40:58 +0200 Subject: tests: Ensure that pullimap locks its statefile. --- tests/pullimap/t | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tests') diff --git a/tests/pullimap/t b/tests/pullimap/t index 879c5d1..e508784 100644 --- a/tests/pullimap/t +++ b/tests/pullimap/t @@ -13,6 +13,17 @@ if ! st="$(stat -c"%#a" -- "$XDG_DATA_HOME/pullimap/remote")" || [ "$st" != "060 fi step_done +step_start "\`pullimap\` locks its statefile" +pullimap --idle "remote" & PID=$! +trap "ptree_abort $PID" EXIT INT TERM +# wait a short while so we have time to lock the database (ugly and racy...) +sleep .5 +! pullimap "remote" || error +grep -F "Can't lock $XDG_DATA_HOME/pullimap/remote: Resource temporarily unavailable at " <"$STDERR" || error +ptree_abort $PID +trap - EXIT INT TERM +step_done + # compare mailboxes (can't compare the RFC 3501 TEXT as the LMTPd inconditionally # adds a Return-Path: header -- and also Delivered-To: and Received: to by default) list_mails_sha256() { -- cgit v1.2.3 From 66aeda7f653cfb72731fe7ff2925d7291158500f Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Fri, 25 Apr 2025 17:59:57 +0200 Subject: Port tests and documentation to Dovecot 2.4. See https://doc.dovecot.org/main/installation/upgrade/2.3-to-2.4.html . --- tests/auth-logindisabled/remote.conf | 4 +++- tests/condstore/t | 4 ++-- tests/config/dovecot/imapd.conf | 7 ++---- tests/config/dovecot/lmtpd.conf | 4 +++- tests/config/dovecot/ssl.conf | 6 ++--- tests/db-upgrade-0-1/t | 4 ++-- tests/delete/t | 14 +++++------ tests/delimiter-change/t | 4 ++-- tests/ignore-mailbox/t | 8 +++---- tests/largeint/t | 36 ++++++++++++++-------------- tests/list-mailbox/t | 2 +- tests/list-reference/t | 6 ++--- tests/list-select-opts/t | 16 ++++++------- tests/pullimap/t | 12 +++++----- tests/rename-exists-db/t | 8 +++---- tests/rename-exists-local/t | 6 ++--- tests/rename-exists-remote/t | 6 ++--- tests/rename-inferiors/t | 4 ++-- tests/rename-simple/t | 2 +- tests/repair/t | 26 ++++++++++----------- tests/resume/t | 24 +++++++++---------- tests/run | 28 +++++++++++++--------- tests/split-set/t | 8 +++---- tests/starttls-injection/remote.conf | 4 +++- tests/starttls-logindisabled/remote.conf | 4 +++- tests/starttls/t | 4 ++-- tests/sync-live-multi/local.conf | 40 ++++++++++++++++++-------------- tests/sync-live-multi/t | 22 +++++++++--------- tests/sync-live/t | 10 ++++---- tests/sync-mailbox-list/t | 20 ++++++++-------- tests/tls-pin-fingerprint/t | 4 ++-- tests/tls-rsa+ecdsa/remote.conf | 4 ++-- tests/tls-rsa+ecdsa/t | 12 ++++++---- tests/tls-sni/remote.conf | 4 ++-- tests/tls-sni/t | 8 +++---- tests/tls-verify-peer/t | 7 +++--- tests/tls/t | 4 ++-- 37 files changed, 202 insertions(+), 184 deletions(-) (limited to 'tests') diff --git a/tests/auth-logindisabled/remote.conf b/tests/auth-logindisabled/remote.conf index 1f02afe..990dcbd 100644 --- a/tests/auth-logindisabled/remote.conf +++ b/tests/auth-logindisabled/remote.conf @@ -1,4 +1,6 @@ !include conf.d/imapd.conf # trick dovecot into treating local connections as insecure -imap_capability = +LOGINDISABLED +imap_capability { + LOGINDISABLED = yes +} diff --git a/tests/condstore/t b/tests/condstore/t index b30ca36..303287e 100644 --- a/tests/condstore/t +++ b/tests/condstore/t @@ -28,7 +28,7 @@ while [ $(date +%s) -le $timer ]; do u="$(shuf -n1 -e "local" "remote")" f="$(shuf -n1 -e "${FLAGS[@]}")" seqs="$(shuf -n$((N/8)) -i1-$N)" # trigger changes on 1/8 of all messages - doveadm -u "$u" flags "$a" "$f" mailbox "INBOX" "${seqs//$'\n'/,}" + doveadm -u "$u" flags "$a" --no-userdb-lookup "$f" mailbox "INBOX" "${seqs//$'\n'/,}" sleep "0.0$(shuf -n1 -i10-99)" # 10 to 99ms done sleep 5 @@ -39,7 +39,7 @@ trap - EXIT INT TERM # make sure the list of uids for a given tag match flagged_uids() { local u="$1" f="$2" - doveadm -u "$u" search mailbox "INBOX" keyword "$f" | cut -d" " -f2 | sort -n + doveadm -u "$u" search --no-userdb-lookup mailbox "INBOX" keyword "$f" | cut -d" " -f2 | sort -n } for f in "${FLAGS[@]}"; do diff --label="local/$f" --label="remote/$f" -u -- \ diff --git a/tests/config/dovecot/imapd.conf b/tests/config/dovecot/imapd.conf index 2b26451..6f456f6 100644 --- a/tests/config/dovecot/imapd.conf +++ b/tests/config/dovecot/imapd.conf @@ -1,8 +1,5 @@ -protocols = $protocols imap - -mail_plugins = $mail_plugins zlib -protocol imap { - mail_plugins = $mail_plugins imap_zlib +protocols { + imap = yes } service imap-login { diff --git a/tests/config/dovecot/lmtpd.conf b/tests/config/dovecot/lmtpd.conf index 6aa8365..23cdc1e 100644 --- a/tests/config/dovecot/lmtpd.conf +++ b/tests/config/dovecot/lmtpd.conf @@ -1,4 +1,6 @@ -protocols = $protocols lmtp +protocols { + lmtp = yes +} service lmtp { inet_listener lmtp { diff --git a/tests/config/dovecot/ssl.conf b/tests/config/dovecot/ssl.conf index 1f3a698..fd119cd 100644 --- a/tests/config/dovecot/ssl.conf +++ b/tests/config/dovecot/ssl.conf @@ -1,6 +1,6 @@ ssl = required -ssl_cert = "$TMPDIR/mailboxes2.sql" <<-EOF SELECT idx, mailbox FROM mailboxes ORDER BY idx @@ -80,8 +80,8 @@ step_done step_start "\\Noinferiors mailbox" interimap --delete "foo.bar.baz" -! doveadm -u "local" mailbox status uidvalidity "foo.bar.baz" -! doveadm -u "remote" mailbox status uidvalidity "foo^bar^baz" +! doveadm -u "local" mailbox status --no-userdb-lookup uidvalidity "foo.bar.baz" +! doveadm -u "remote" mailbox status --no-userdb-lookup uidvalidity "foo^bar^baz" sqlite3 "$XDG_DATA_HOME/interimap/remote.db" >"$TMPDIR/count" <<-EOF SELECT COUNT(*) FROM mailboxes diff --git a/tests/delimiter-change/t b/tests/delimiter-change/t index c49dd66..72229de 100644 --- a/tests/delimiter-change/t +++ b/tests/delimiter-change/t @@ -1,5 +1,5 @@ # create and populate some mailboxes -doveadm -u "local" mailbox create -- "foo" "foo.bar" "baz" +doveadm -u "local" mailbox create --no-userdb-lookup -- "foo" "foo.bar" "baz" run() { local i m u s1="$1" s2="$2" m2 @@ -31,7 +31,7 @@ sed -ri "s,^(\\s*separator\\s*)=.*,separator = .," "$HOME_remote/.dovecot/config run "." "." # ensure there were no duplicates -n="$(doveadm -u "local" search all | wc -l)" +n="$(doveadm -u "local" search --no-userdb-lookup all | wc -l)" [ "$n" -eq 64 ] || error "$n != 64" # vim: set filetype=bash : diff --git a/tests/ignore-mailbox/t b/tests/ignore-mailbox/t index 0b8d553..1b09a1d 100644 --- a/tests/ignore-mailbox/t +++ b/tests/ignore-mailbox/t @@ -1,5 +1,5 @@ -doveadm -u "local" mailbox create "foo" -- "-virtual" -doveadm -u "remote" mailbox create "bar" -- "virtual-" +doveadm -u "local" mailbox create --no-userdb-lookup "foo" -- "-virtual" +doveadm -u "remote" mailbox create --no-userdb-lookup "bar" -- "virtual-" interimap_init check_mailbox_list @@ -15,8 +15,8 @@ for ((i = 0; i < 16; i++)); do done # create new mailboxes matching 'ignore-mailbox' -doveadm -u "local" mailbox create "virtual" "virtual.foo" -doveadm -u "remote" mailbox create "virtual^bar" +doveadm -u "local" mailbox create --no-userdb-lookup "virtual" "virtual.foo" +doveadm -u "remote" mailbox create --no-userdb-lookup "virtual^bar" for n in $(seq 1 "$(shuf -n1 -i1-8)"); do sample_message | deliver -u "local" -- -m "virtual" sample_message | deliver -u "local" -- -m "virtual.foo" diff --git a/tests/largeint/t b/tests/largeint/t index c3f349e..84d21ae 100644 --- a/tests/largeint/t +++ b/tests/largeint/t @@ -1,15 +1,15 @@ -doveadm -u "local" mailbox create "foo" "bar" "baz" -doveadm -u "remote" mailbox create "foo" "bar" "baz" +doveadm -u "local" mailbox create --no-userdb-lookup "foo" "bar" "baz" +doveadm -u "remote" mailbox create --no-userdb-lookup "foo" "bar" "baz" -doveadm -u "local" mailbox update --uid-validity 1 "INBOX" -doveadm -u "local" mailbox update --uid-validity 2147483647 "foo" # 2^31-1 -doveadm -u "local" mailbox update --uid-validity 2147483648 "bar" # 2^31 -doveadm -u "local" mailbox update --uid-validity 4294967295 "baz" # 2^32-1 +doveadm -u "local" mailbox update --no-userdb-lookup --uid-validity 1 "INBOX" +doveadm -u "local" mailbox update --no-userdb-lookup --uid-validity 2147483647 "foo" # 2^31-1 +doveadm -u "local" mailbox update --no-userdb-lookup --uid-validity 2147483648 "bar" # 2^31 +doveadm -u "local" mailbox update --no-userdb-lookup --uid-validity 4294967295 "baz" # 2^32-1 -doveadm -u "remote" mailbox update --uid-validity 4294967295 "INBOX" # 2^32-1 -doveadm -u "remote" mailbox update --uid-validity 2147483648 "foo" # 2^31 -doveadm -u "remote" mailbox update --uid-validity 2147483647 "bar" # 2^31-1 -doveadm -u "remote" mailbox update --uid-validity 1 "baz" # +doveadm -u "remote" mailbox update --no-userdb-lookup --uid-validity 4294967295 "INBOX" # 2^32-1 +doveadm -u "remote" mailbox update --no-userdb-lookup --uid-validity 2147483648 "foo" # 2^31 +doveadm -u "remote" mailbox update --no-userdb-lookup --uid-validity 2147483647 "bar" # 2^31-1 +doveadm -u "remote" mailbox update --no-userdb-lookup --uid-validity 1 "baz" # run() { local u m i @@ -25,14 +25,16 @@ run() { run # raise UIDNEXT AND HIGHESTMODSEQ close to the max values (resp. 2^32-1 och 2^63-1) -doveadm -u "local" mailbox update --min-next-uid 2147483647 --min-highest-modseq 9223372036854775807 "INBOX" # 2^31-1, 2^63-1 -doveadm -u "local" mailbox update --min-next-uid 2147483647 --min-highest-modseq 9223372036854775807 "foo" # 2^31-1, 2^63-1 -doveadm -u "local" mailbox update --min-next-uid 2147483648 --min-highest-modseq 9223372036854775808 "bar" # 2^31, 2^63 -doveadm -u "local" mailbox update --min-next-uid 2147483648 --min-highest-modseq 9223372036854775808 "baz" # 2^31, 2^63 +# XXX as of dovecot 2.4 --min-highest-modseq rejects values higher than INT64_MAX instead of UINT64_MAX, +# cf. str_parse_int64() +doveadm -u "local" mailbox update --no-userdb-lookup --min-next-uid 2147483647 --min-highest-modseq 9223372036854775807 "INBOX" # 2^31-1, 2^63-1 +doveadm -u "local" mailbox update --no-userdb-lookup --min-next-uid 2147483647 --min-highest-modseq 9223372036854775807 "foo" # 2^31-1, 2^63-1 +doveadm -u "local" mailbox update --no-userdb-lookup --min-next-uid 2147483648 --min-highest-modseq 9223372036854775807 "bar" # 2^31, 2^63-1 +doveadm -u "local" mailbox update --no-userdb-lookup --min-next-uid 2147483648 --min-highest-modseq 9223372036854775807 "baz" # 2^31, 2^63-1 -doveadm -u "remote" mailbox update --min-next-uid 4294967168 --min-highest-modseq 18446744073709551488 "INBOX" # 2^32-128, 2^64-128 -doveadm -u "remote" mailbox update --min-next-uid 2147483776 --min-highest-modseq 9223372036854775936 "foo" # 2^31+128, 2^63+128 -doveadm -u "remote" mailbox update --min-next-uid 2147483648 --min-highest-modseq 9223372036854775808 "bar" # 2^31, 2^63 +doveadm -u "remote" mailbox update --no-userdb-lookup --min-next-uid 4294967168 --min-highest-modseq 9223372036854775807 "INBOX" # 2^32-128, 2^63-1 +doveadm -u "remote" mailbox update --no-userdb-lookup --min-next-uid 2147483776 --min-highest-modseq 9223372036854775807 "foo" # 2^31+128, 2^63-1 +doveadm -u "remote" mailbox update --no-userdb-lookup --min-next-uid 2147483648 --min-highest-modseq 9223372036854775807 "bar" # 2^31, 2^63-1 run diff --git a/tests/list-mailbox/t b/tests/list-mailbox/t index a1168a6..6c19705 100644 --- a/tests/list-mailbox/t +++ b/tests/list-mailbox/t @@ -1,6 +1,6 @@ # create and populate some mailboxes locally declare -a MAILBOXES=( "foo" "foo bar" "f\\\"o!o.bar" "f.o.o" ) -doveadm -u "local" mailbox create -- "${MAILBOXES[@]}" "foobad" "baz" "INBOX" +doveadm -u "local" mailbox create --no-userdb-lookup -- "${MAILBOXES[@]}" "foobad" "baz" "INBOX" for ((i = 0; i < 32; i++)); do m="$(shuf -n1 -e -- "${MAILBOXES[@]}" "foobad" "baz" "INBOX")" sample_message | deliver -u "local" -- -m "$m" diff --git a/tests/list-reference/t b/tests/list-reference/t index 12e112b..e8d38e6 100644 --- a/tests/list-reference/t +++ b/tests/list-reference/t @@ -1,6 +1,6 @@ # create and populate some mailboxes in and out the respective list references -doveadm -u "local" mailbox create "foo" "foobar" "foo/bar/baz" "foo/baz" "bar" "bar/baz" -doveadm -u "remote" mailbox create "foo" "foobaz" "foo/baz" "foo\\baz" "bar\\baz" "bar\\!" +doveadm -u "local" mailbox create --no-userdb-lookup "foo" "foobar" "foo/bar/baz" "foo/baz" "bar" "bar/baz" +doveadm -u "remote" mailbox create --no-userdb-lookup "foo" "foobaz" "foo\\bar" "foo\\baz" "bar\\baz" "bar\\!" populate() { local i @@ -8,7 +8,7 @@ populate() { m="$(shuf -n1 -e -- "foo" "foobar" "foo/bar/baz" "foo/baz" "bar" "bar/baz")" sample_message | deliver -u "local" -- -m "$m" - m="$(shuf -n1 -e -- "foo" "foobar" "foo/baz" "foo\\baz" "bar\\baz" "bar\\!")" + m="$(shuf -n1 -e -- "foo" "foobaz" "foo\\bar" "foo\\baz" "bar\\baz" "bar\\!")" sample_message | deliver -u "remote" -- -m "$m" done } diff --git a/tests/list-select-opts/t b/tests/list-select-opts/t index 30c3fe9..570098c 100644 --- a/tests/list-select-opts/t +++ b/tests/list-select-opts/t @@ -1,5 +1,5 @@ -doveadm -u "local" mailbox create -s "INBOX" "foo.bar" -doveadm -u "remote" mailbox create -s "INBOX" "bar" +doveadm -u "local" mailbox create --no-userdb-lookup -s "INBOX" "foo.bar" +doveadm -u "remote" mailbox create --no-userdb-lookup -s "INBOX" "bar" interimap_init check_mailbox_list @@ -15,8 +15,8 @@ for ((i = 0; i < 16; i++)); do done # create new unsubscribed mailboxes -doveadm -u "local" mailbox create "foo" -doveadm -u "remote" mailbox create "baz" +doveadm -u "local" mailbox create --no-userdb-lookup "foo" +doveadm -u "remote" mailbox create --no-userdb-lookup "baz" for ((i = 0; i < 8; i++)); do u="$(shuf -n1 -e "local" "remote")" # choose target at random @@ -37,12 +37,12 @@ diff -u --label="a/mailboxes.sql" --label="b/mailboxes.sql" \ check_mailboxes_status "INBOX" "foo.bar" "bar" # double check the unsubscribed mailboxes weren't copied -! doveadm -u "remote" mailbox status uidvalidity "foo" || error -! doveadm -u "local" mailbox status uidvalidity "baz" || error +! doveadm -u "remote" mailbox status --no-userdb-lookup uidvalidity "foo" || error +! doveadm -u "local" mailbox status --no-userdb-lookup uidvalidity "baz" || error # reconcile when subcribed -doveadm -u "local" mailbox subscribe "foo" -doveadm -u "remote" mailbox subscribe "baz" +doveadm -u "local" mailbox subscribe --no-userdb-lookup "foo" +doveadm -u "remote" mailbox subscribe --no-userdb-lookup "baz" interimap || error grep -Fx "database: Created mailbox foo" <"$STDERR" || error diff --git a/tests/pullimap/t b/tests/pullimap/t index e508784..1c57f8d 100644 --- a/tests/pullimap/t +++ b/tests/pullimap/t @@ -30,8 +30,8 @@ list_mails_sha256() { local u="$1" guid uid local fields="body date.sent imap.bodystructure imap.envelope" while read guid uid; do - doveadm -u "$u" -f "flow" fetch "$fields" mailbox-guid "$guid" uid "$uid" | sha256sum - done < <(doveadm -u "$u" search mailbox "$MAILBOX") | sort -f + doveadm -u "$u" -f "flow" fetch --no-userdb-lookup "$fields" mailbox-guid "$guid" uid "$uid" | sha256sum + done < <(doveadm -u "$u" search mailbox --no-userdb-lookup "$MAILBOX") | sort -f } check() { diff -u --label="local/mails" --label="remote/mails" \ @@ -91,7 +91,7 @@ step_done # make sure remote UIDs are 11-bytes long -doveadm -u "remote" mailbox update --min-next-uid 1000000000 "$MAILBOX" +doveadm -u "remote" mailbox update --no-userdb-lookup --min-next-uid 1000000000 "$MAILBOX" # Add some messages and sync step_start "Fetching messages" @@ -109,7 +109,7 @@ for ((i = 0; i < N; i+=2)); do done for ((i = 0; i < N; i+=2)); do # expunge every other message - doveadm -u "remote" expunge mailbox "$MAILBOX" $((N-i+32+7)) + doveadm -u "remote" expunge --no-userdb-lookup mailbox "$MAILBOX" $((N-i+32+7)) sample_message | deliver -u "remote" -- -m "$MAILBOX" done @@ -117,7 +117,7 @@ pullimap "remote" || error check # count unseen remote messages -doveadm -u "remote" search mailbox "$MAILBOX" unseen >"$TMPDIR/unseen" +doveadm -u "remote" search --no-userdb-lookup mailbox "$MAILBOX" unseen >"$TMPDIR/unseen" [ ! -s "$TMPDIR/unseen" ] || error "\\Unseen messages left" step_done @@ -156,7 +156,7 @@ for ((i = 0; i < 32; i++)); do done pullimap "remote" -doveadm -u "remote" search mailbox "$MAILBOX" all >"$TMPDIR/messages" +doveadm -u "remote" search --no-userdb-lookup mailbox "$MAILBOX" all >"$TMPDIR/messages" [ ! -s "$TMPDIR/messages" ] || error "messages left" step_done diff --git a/tests/rename-exists-db/t b/tests/rename-exists-db/t index 63d7ba0..2ee8d77 100644 --- a/tests/rename-exists-db/t +++ b/tests/rename-exists-db/t @@ -1,12 +1,12 @@ -doveadm -u "local" mailbox create "root.from" "root.from.child" "t.o" -doveadm -u "remote" mailbox create "root\\from" "root\\from\\child" "t\\o" +doveadm -u "local" mailbox create --no-userdb-lookup "root.from" "root.from.child" "t.o" +doveadm -u "remote" mailbox create --no-userdb-lookup "root\\from" "root\\from\\child" "t\\o" interimap_init check_mailbox_list # delete a mailbox on both servers but leave it in the database, then try to use it as target for --rename -doveadm -u "local" mailbox delete "t.o" -doveadm -u "remote" mailbox delete "t\\o" +doveadm -u "local" mailbox delete --no-userdb-lookup "t.o" +doveadm -u "remote" mailbox delete --no-userdb-lookup "t\\o" ! interimap --rename "root.from" "t.o" || error grep -Fx 'database: ERROR: Mailbox t.o exists. Run `interimap --target=database --delete t.o` to delete.' <"$STDERR" || error diff --git a/tests/rename-exists-local/t b/tests/rename-exists-local/t index 33c7da7..907b14a 100644 --- a/tests/rename-exists-local/t +++ b/tests/rename-exists-local/t @@ -1,11 +1,11 @@ -doveadm -u "local" mailbox create "root.from" "root.from.child" "t.o" -doveadm -u "remote" mailbox create "root\\from" "root\\from\\child" +doveadm -u "local" mailbox create --no-userdb-lookup "root.from" "root.from.child" "t.o" +doveadm -u "remote" mailbox create --no-userdb-lookup "root\\from" "root\\from\\child" interimap_init check_mailbox_list # delete a mailbox on the remote server, then try to use it as target for --rename -doveadm -u "remote" mailbox delete "t\\o" +doveadm -u "remote" mailbox delete --no-userdb-lookup "t\\o" ! interimap --rename "root.from" "t.o" || error grep -Fx 'local: ERROR: Mailbox t.o exists. Run `interimap --target=local --delete t.o` to delete.' <"$STDERR" || error diff --git a/tests/rename-exists-remote/t b/tests/rename-exists-remote/t index 2e87053..5cb4336 100644 --- a/tests/rename-exists-remote/t +++ b/tests/rename-exists-remote/t @@ -1,11 +1,11 @@ -doveadm -u "local" mailbox create "root.from" "root.from.child" "t.o" -doveadm -u "remote" mailbox create "root\\from" "root\\from\\child" "t\\o" +doveadm -u "local" mailbox create --no-userdb-lookup "root.from" "root.from.child" "t.o" +doveadm -u "remote" mailbox create --no-userdb-lookup "root\\from" "root\\from\\child" "t\\o" interimap_init check_mailbox_list # delete a mailbox on the local server, then try to use it as target for --rename -doveadm -u "local" mailbox delete "t.o" +doveadm -u "local" mailbox delete --no-userdb-lookup "t.o" ! interimap --rename "root.from" "t.o" || error grep -Fx 'remote: ERROR: Mailbox t\o exists. Run `interimap --target=remote --delete t.o` to delete.' <"$STDERR" || remote diff --git a/tests/rename-inferiors/t b/tests/rename-inferiors/t index 9166230..3715680 100644 --- a/tests/rename-inferiors/t +++ b/tests/rename-inferiors/t @@ -1,5 +1,5 @@ -doveadm -u "local" mailbox create "root.from" "root.from.child" "root.from.child2" "root.from.child.grandchild" -doveadm -u "remote" mailbox create "root^sibbling" "root^sibbling^grandchild" "root2" +doveadm -u "local" mailbox create --no-userdb-lookup "root.from" "root.from.child" "root.from.child2" "root.from.child.grandchild" +doveadm -u "remote" mailbox create --no-userdb-lookup "root^sibbling" "root^sibbling^grandchild" "root2" for m in "root.from" "root.from.child" "root.from.child2" "root.from.child.grandchild" "INBOX"; do sample_message | deliver -u "local" -- -m "$m" diff --git a/tests/rename-simple/t b/tests/rename-simple/t index df9d84c..82682fb 100644 --- a/tests/rename-simple/t +++ b/tests/rename-simple/t @@ -1,4 +1,4 @@ -doveadm -u "local" mailbox create "foo" +doveadm -u "local" mailbox create --no-userdb-lookup "foo" sample_message | deliver -u "local" -- -m "INBOX" sample_message | deliver -u "remote" -- -m "INBOX" diff --git a/tests/repair/t b/tests/repair/t index 10fab0d..bdad2e3 100644 --- a/tests/repair/t +++ b/tests/repair/t @@ -1,6 +1,6 @@ # create some mailboxes and populate them -doveadm -u "local" mailbox create "foo.bar" -doveadm -u "remote" mailbox create "foo~bar" "baz" +doveadm -u "local" mailbox create --no-userdb-lookup "foo.bar" +doveadm -u "remote" mailbox create --no-userdb-lookup "foo~bar" "baz" for ((i = 0; i < 8; i++)); do sample_message | deliver -u "local" -- -m "foo.bar" sample_message | deliver -u "remote" -- -m "foo~bar" @@ -15,12 +15,12 @@ check_mailboxes_status "foo.bar" "baz" "INBOX" # make more changes (flag updates, new massages, deletions) sample_message | deliver -u "remote" -- -m "INBOX" -doveadm -u "local" expunge mailbox "baz" 1:10 -doveadm -u "remote" expunge mailbox "baz" "$(seq -s"," 1 2 32),$(seq -s"," 40 2 64)" -doveadm -u "local" expunge mailbox "foo.bar" 2,3,5:7,10 -doveadm -u "remote" expunge mailbox "foo~bar" 4,5,7,10 -doveadm -u "local" flags add "\\Answered" mailbox "foo.bar" 2,3,5:7,10 -doveadm -u "remote" flags add "\\Seen" mailbox "foo~bar" 4,5,7 +doveadm -u "local" expunge --no-userdb-lookup mailbox "baz" 1:10 +doveadm -u "remote" expunge --no-userdb-lookup mailbox "baz" "$(seq -s"," 1 2 32),$(seq -s"," 40 2 64)" +doveadm -u "local" expunge --no-userdb-lookup mailbox "foo.bar" 2,3,5:7,10 +doveadm -u "remote" expunge --no-userdb-lookup mailbox "foo~bar" 4,5,7,10 +doveadm -u "local" flags add --no-userdb-lookup "\\Answered" mailbox "foo.bar" 2,3,5:7,10 +doveadm -u "remote" flags add --no-userdb-lookup "\\Seen" mailbox "foo~bar" 4,5,7 # spoof HIGHESTMODSEQ value in the database to make it look that we recorded the new changes already spoof() { @@ -28,7 +28,7 @@ spoof() { shift while [ $# -gt 0 ]; do [ "$1" = "local" ] && m="foo.bar" || m="$(printf "%s" "foo.bar" | tr "." "~")" - v="$(doveadm -u "$1" -f flow mailbox status "${k,,[A-Z]}" "$m" | sed 's/.*=//')" + v="$(doveadm -u "$1" -f flow mailbox status --no-userdb-lookup "${k,,[A-Z]}" "$m" | sed 's/.*=//')" sqlite3 "$XDG_DATA_HOME/interimap/remote.db" <<-EOF UPDATE \`$1\` SET $k = $v WHERE idx = (SELECT idx FROM mailboxes WHERE mailbox = x'$hex'); @@ -41,8 +41,8 @@ spoof HIGHESTMODSEQ "local" "remote" sqlite3 "$XDG_DATA_HOME/interimap/remote.db" >"$TMPDIR/dump.sql" <<-EOF .dump EOF -doveadm -u "local" mailbox status "all" "foo.bar" >"$TMPDIR/foo-bar.status.local" -doveadm -u "remote" mailbox status "all" "foo~bar" >"$TMPDIR/foo-bar.status.remote" +doveadm -u "local" mailbox status --no-userdb-lookup "all" "foo.bar" >"$TMPDIR/foo-bar.status.local" +doveadm -u "remote" mailbox status --no-userdb-lookup "all" "foo~bar" >"$TMPDIR/foo-bar.status.remote" # verify that without --repair interimap does nothing due to the spoofed HIGHESTMODSEQ values @@ -51,8 +51,8 @@ interimap "foo.bar" || error sqlite3 "$XDG_DATA_HOME/interimap/remote.db" >"$TMPDIR/dump2.sql" <<-EOF .dump EOF -doveadm -u "local" mailbox status all "foo.bar" >"$TMPDIR/foo-bar.status2.local" -doveadm -u "remote" mailbox status all "foo~bar" >"$TMPDIR/foo-bar.status2.remote" +doveadm -u "local" mailbox status --no-userdb-lookup all "foo.bar" >"$TMPDIR/foo-bar.status2.local" +doveadm -u "remote" mailbox status --no-userdb-lookup all "foo~bar" >"$TMPDIR/foo-bar.status2.remote" diff -u --label="a/dump.sql" --label="b/dump.sql" "$TMPDIR/dump.sql" "$TMPDIR/dump2.sql" diff -u --label="a/foo_bar.local" --label="a/foo_bar.local" "$TMPDIR/foo-bar.status.local" "$TMPDIR/foo-bar.status2.local" diff -u --label="a/foo_bar.remote" --label="a/foo_bar.remote" "$TMPDIR/foo-bar.status.remote" "$TMPDIR/foo-bar.status2.remote" diff --git a/tests/resume/t b/tests/resume/t index d7b9b53..da80557 100644 --- a/tests/resume/t +++ b/tests/resume/t @@ -1,5 +1,5 @@ # create and populate a bunch of mailboxes -doveadm -u "local" mailbox create "foo" "foo.bar" "baz" +doveadm -u "local" mailbox create --no-userdb-lookup "foo" "foo.bar" "baz" for ((i = 0; i < 8; i++)); do sample_message | deliver -u "local" -- -m "foo" sample_message | deliver -u "local" -- -m "foo.bar" @@ -24,17 +24,17 @@ set_uidnext() { } # spoof "foo"'s UIDVALIDITY and UIDNEXT values -uidvalidity="$(doveadm -u "local" -f flow mailbox status uidvalidity "foo" | sed 's/.*=//')" +uidvalidity="$(doveadm -u "local" -f flow mailbox status --no-userdb-lookup uidvalidity "foo" | sed 's/.*=//')" [ $uidvalidity -eq 4294967295 ] && uidvalidity2=1 || uidvalidity2=$((uidvalidity+1)) -doveadm -u "local" mailbox update --uid-validity "$uidvalidity2" "foo" +doveadm -u "local" mailbox update --no-userdb-lookup --uid-validity "$uidvalidity2" "foo" set_uidnext "local" "$(printf "%s" "foo" | xxd -ps)" 1 # verify that interimap chokes on the UIDVALIDITY change without doing any changes sqlite3 "$XDG_DATA_HOME/interimap/remote.db" >"$TMPDIR/dump.sql" <<-EOF .dump EOF -doveadm -u "local" mailbox status "all" "foo" >"$TMPDIR/foo.local" -doveadm -u "remote" mailbox status "all" "foo" >"$TMPDIR/foo.remote" +doveadm -u "local" mailbox status --no-userdb-lookup "all" "foo" >"$TMPDIR/foo.local" +doveadm -u "remote" mailbox status --no-userdb-lookup "all" "foo" >"$TMPDIR/foo.remote" ! interimap || error grep -Fx "Resuming interrupted sync for foo" <"$STDERR" @@ -43,8 +43,8 @@ grep -Fx "local(foo): ERROR: UIDVALIDITY changed! ($uidvalidity2 != $uidvalidity sqlite3 "$XDG_DATA_HOME/interimap/remote.db" >"$TMPDIR/dump2.sql" <<-EOF .dump EOF -doveadm -u "local" mailbox status "all" "foo" >"$TMPDIR/foo.local2" -doveadm -u "remote" mailbox status "all" "foo" >"$TMPDIR/foo.remote2" +doveadm -u "local" mailbox status --no-userdb-lookup "all" "foo" >"$TMPDIR/foo.local2" +doveadm -u "remote" mailbox status --no-userdb-lookup "all" "foo" >"$TMPDIR/foo.remote2" diff -u --label="a/dump.sql" --label="b/dump.sql" "$TMPDIR/dump2.sql" "$TMPDIR/dump.sql" diff -u --label="a/foo.local" --label="b/foo.remote" "$TMPDIR/foo.local" "$TMPDIR/foo.local2" @@ -57,12 +57,12 @@ set_uidnext "remote" "$(printf "%s" "INBOX" | xxd -ps)" 2 set_uidnext "remote" "$(printf "%s\\0%s" "foo" "bar" | xxd -ps)" 0 # set some flags and remove some messages for UIDs >2 -doveadm -u "local" flags add "\\Seen" mailbox "INBOX" 6,7 -doveadm -u "remote" flags add "\\Deleted" mailbox "INBOX" 6,8 +doveadm -u "local" flags add --no-userdb-lookup "\\Seen" mailbox "INBOX" 6,7 +doveadm -u "remote" flags add --no-userdb-lookup "\\Deleted" mailbox "INBOX" 6,8 -doveadm -u "local" expunge mailbox "INBOX" 4,5 -doveadm -u "remote" expunge mailbox "INBOX" 3,4 -doveadm -u "remote" expunge mailbox "foo~bar" 5 +doveadm -u "local" expunge --no-userdb-lookup mailbox "INBOX" 4,5 +doveadm -u "remote" expunge --no-userdb-lookup mailbox "INBOX" 3,4 +doveadm -u "remote" expunge --no-userdb-lookup mailbox "foo~bar" 5 # add new messages sample_message | deliver -u "local" -- -m "foo.bar" diff --git a/tests/run b/tests/run index eed77df..c5614ee 100755 --- a/tests/run +++ b/tests/run @@ -97,9 +97,12 @@ prepare() { mkdir -pm0700 -- "$home/.dovecot" cat >"$home/.dovecot/config" <<-EOF + dovecot_config_version = 2.4.0 + dovecot_storage_version = 2.4.0 log_path = $HOME_local/mail.log mail_home = $home - mail_location = dbox:~/inbox:LAYOUT=index + mail_driver = sdbox + mail_path = ~/inbox mailbox_list_index = yes ssl = no listen = 127.0.0.1, 127.0.1.1, ::1 @@ -116,7 +119,9 @@ prepare() { proto="$(env -i "${ENVIRON[@]}" doveconf -c "$home/.dovecot/config" -h protocols)" if [ -n "$proto" ]; then cat >>"$home/.dovecot/config" <<-EOF - # https://wiki.dovecot.org/HowTo/Rootless + # https://doc.dovecot.org/latest/core/config/rootless.html#rootless-installation + dovecot_config_version = 2.4.0 + dovecot_storage_version = 2.4.0 base_dir = $home/.dovecot/run default_internal_user = $(id -un) default_internal_group = $(id -gn) @@ -132,13 +137,14 @@ prepare() { chroot = } - passdb { - args = scheme=PLAIN username_format=%u $home/.dovecot/users + passdb passwd-file { driver = passwd-file + default_password_scheme = plain + passwd_file_path = $home/.dovecot/users } - userdb { - args = username_format=%u $home/.dovecot/users + userdb passwd-file { driver = passwd-file + passwd_file_path = $home/.dovecot/users } EOF @@ -352,9 +358,9 @@ check_mailbox_status2() { check_mailbox_status_values "$u" "$rmailbox" $rUIDVALIDITY $rUIDNEXT $rHIGHESTMODSEQ $MESSAGES local a b - a="$(doveadm -u "local" -f "flow" mailbox status "messages unseen vsize" -- "$lmailbox" | \ + a="$(doveadm -u "local" -f "flow" mailbox status --no-userdb-lookup "messages unseen vsize" -- "$lmailbox" | \ sed -nr '/.*\s+(\w+=[0-9]+\s+\w+=[0-9]+\s+\w+=[0-9]+)$/ {s//\1/p;q}')" - b="$(doveadm -u "$u" -f "flow" mailbox status "messages unseen vsize" -- "$rmailbox" | \ + b="$(doveadm -u "$u" -f "flow" mailbox status --no-userdb-lookup "messages unseen vsize" -- "$rmailbox" | \ sed -nr '/.*\s+(\w+=[0-9]+\s+\w+=[0-9]+\s+\w+=[0-9]+)$/ {s//\1/p;q}')" if [ "$a" != "$b" ]; then echo "Mailbox $lmailbox status differs: \"$a\" != \"$b\"" >&2 @@ -363,7 +369,7 @@ check_mailbox_status2() { } check_mailbox_status_values() { local user="$1" mailbox="$2" UIDVALIDITY="$3" UIDNEXT="$4" HIGHESTMODSEQ="$5" MESSAGES="$6" x xs v k - xs="$(doveadm -u "$user" -f "flow" mailbox status "uidvalidity uidnext highestmodseq messages" -- "$mailbox" | \ + xs="$(doveadm -u "$user" -f "flow" mailbox status --no-userdb-lookup "uidvalidity uidnext highestmodseq messages" -- "$mailbox" | \ sed -nr '/.*\s+(\w+=[0-9]+\s+\w+=[0-9]+\s+\w+=[0-9]+\s+\w+=[0-9]+)$/ {s//\1/p;q}')" [ -n "$xs" ] || exit 1 for x in $xs; do @@ -411,12 +417,12 @@ check_mailbox_list() { done fi - mapfile -t lmailboxes < <( doveadm -u "local" mailbox list $sub -- "${lmailboxes[@]}" ) + mapfile -t lmailboxes < <( doveadm -u "local" mailbox list --no-userdb-lookup $sub -- "${lmailboxes[@]}" ) for ((i = 0; i < ${#lmailboxes[@]}; i++)); do lmailboxes[i]="${lmailboxes[i]#"$lprefix"}" done - mapfile -t rmailboxes < <( doveadm -u "remote" mailbox list $sub -- "${rmailboxes[@]}" ) + mapfile -t rmailboxes < <( doveadm -u "remote" mailbox list --no-userdb-lookup $sub -- "${rmailboxes[@]}" ) for ((i = 0; i < ${#rmailboxes[@]}; i++)); do rmailboxes[i]="${rmailboxes[i]#"$rprefix"}" rmailboxes[i]="${rmailboxes[i]//"$rsep"/"$lsep"}" diff --git a/tests/split-set/t b/tests/split-set/t index d8cf948..7e124e3 100644 --- a/tests/split-set/t +++ b/tests/split-set/t @@ -7,8 +7,8 @@ N=2048 # set UIDNEXT to 10^9 so all uids are 10 chars long, otherwise we'd need # to add many more messages to obtain large sets -doveadm -u "local" mailbox update --min-next-uid 1000000000 "INBOX" -doveadm -u "remote" mailbox update --min-next-uid 1000000000 "INBOX" +doveadm -u "local" mailbox update --no-userdb-lookup --min-next-uid 1000000000 "INBOX" +doveadm -u "remote" mailbox update --no-userdb-lookup --min-next-uid 1000000000 "INBOX" for ((i = 0; i < N; i++)); do u="$(shuf -n1 -e "local" "remote")" @@ -20,7 +20,7 @@ check_mailbox_status "INBOX" # mark every other message as \Seen on the local server for ((i = 0; i < N; i+=2)); do - doveadm -u "local" flags add "\\Seen" mailbox "INBOX" $((N-i)) + doveadm -u "local" flags add --no-userdb-lookup "\\Seen" mailbox "INBOX" $((N-i)) done # send the changes to the remote; this results into an UID STORE set @@ -31,7 +31,7 @@ check_mailbox_status "INBOX" # now expunge every other message on the remote server; this results # into large UID STORE and UID EXPUNGE set representation for ((i = 0; i < N; i+=2)); do - doveadm -u "local" expunge mailbox "INBOX" $((N-i)) + doveadm -u "local" expunge --no-userdb-lookup mailbox "INBOX" $((N-i)) # add some more messages u="$(shuf -n1 -e "local" "remote")" sample_message | deliver -u "$u" diff --git a/tests/starttls-injection/remote.conf b/tests/starttls-injection/remote.conf index f23f3de..340a484 100644 --- a/tests/starttls-injection/remote.conf +++ b/tests/starttls-injection/remote.conf @@ -1,4 +1,6 @@ -protocols = $protocols imap +protocols { + imap = yes +} service imap-login { inet_listener imap { port = 0 diff --git a/tests/starttls-logindisabled/remote.conf b/tests/starttls-logindisabled/remote.conf index be2d51e..86e033a 100644 --- a/tests/starttls-logindisabled/remote.conf +++ b/tests/starttls-logindisabled/remote.conf @@ -2,4 +2,6 @@ !include conf.d/ssl.conf # trick dovecot into treating local connections as insecure -imap_capability = +LOGINDISABLED +imap_capability { + LOGINDISABLED = yes +} diff --git a/tests/starttls/t b/tests/starttls/t index 7b76469..633997c 100644 --- a/tests/starttls/t +++ b/tests/starttls/t @@ -1,5 +1,5 @@ -X509_SHA256="$(doveconf -c "$HOME_remote/.dovecot/config" -hx ssl_cert \ - | openssl x509 -in /dev/stdin -noout -fingerprint -sha256 \ +ssl_server_cert_file="$(doveconf -c "$HOME_remote/.dovecot/config" -hx ssl_server/cert_file)" +X509_SHA256="$(openssl x509 -in "$ssl_server_cert_file" -noout -fingerprint -sha256 \ | sed -rn "/^.*=\\s*/ {s///p;q}" | tr -d : | tr "[A-Z]" "[a-z]")" for ((i = 0; i < 32; i++)); do diff --git a/tests/sync-live-multi/local.conf b/tests/sync-live-multi/local.conf index baae39d..6d64a84 100644 --- a/tests/sync-live-multi/local.conf +++ b/tests/sync-live-multi/local.conf @@ -1,30 +1,34 @@ namespace inbox { - separator = / - location = dbox:~/inbox:LAYOUT=index - inbox = yes - list = yes + separator = / + mail_driver = sdbox + mail_path = ~/inbox + inbox = yes + list = yes } namespace foo { - separator = / - prefix = foo/ - location = dbox:~/foo:LAYOUT=index - inbox = no - list = yes + separator = / + prefix = foo/ + mail_driver = sdbox + mail_path = ~/foo + inbox = no + list = yes } namespace bar { - separator = / - prefix = bar/ - location = dbox:~/bar:LAYOUT=index - inbox = no - list = yes + separator = / + prefix = bar/ + mail_driver = sdbox + mail_path = ~/bar + inbox = no + list = yes } namespace baz { separator = / - prefix = baz/ - location = dbox:~/baz:LAYOUT=index - inbox = no - list = yes + prefix = baz/ + mail_driver = sdbox + mail_path = ~/baz + inbox = no + list = yes } diff --git a/tests/sync-live-multi/t b/tests/sync-live-multi/t index b91cedc..5a651f5 100644 --- a/tests/sync-live-multi/t +++ b/tests/sync-live-multi/t @@ -49,15 +49,15 @@ while [ $(date +%s) -le $timer ]; do remote3) m="${m//\//\?}";; *) error "Uh?";; esac - doveadm -u "$u" mailbox create -- "$m" + doveadm -u "$u" mailbox create --no-userdb-lookup -- "$m" fi # EXPUNGE some messages u="$(shuf -n1 -e -- "${TARGETS[@]}")" # choose target at random n="$(shuf -n1 -i0-3)" while read guid uid; do - doveadm -u "$u" expunge mailbox-guid "$guid" uid "$uid" - done < <(doveadm -u "$u" search all | shuf -n "$n") + doveadm -u "$u" expunge --no-userdb-lookup mailbox-guid "$guid" uid "$uid" + done < <(doveadm -u "$u" search --no-userdb-lookup all | shuf -n "$n") # mark some existing messages as read (toggle \Seen flag as unlike other # flags it's easier to query and check_mailboxes_status checks it) @@ -65,8 +65,8 @@ while [ $(date +%s) -le $timer ]; do n="$(shuf -n1 -i0-9)" while read guid uid; do a="$(shuf -n1 -e add remove replace)" - doveadm -u "$u" flags "$a" "\\Seen" mailbox-guid "$guid" uid "$uid" - done < <(doveadm -u "$u" search all | shuf -n "$n") + doveadm -u "$u" flags "$a" --no-userdb-lookup "\\Seen" mailbox-guid "$guid" uid "$uid" + done < <(doveadm -u "$u" search --no-userdb-lookup all | shuf -n "$n") # select at random a mailbox where to deliver some messages u="$(shuf -n1 -e "local" "remote")" # choose target at random @@ -103,14 +103,14 @@ trap - EXIT INT TERM # check that the mailbox lists match diff -u --label="local/mailboxes" --label="remote1/mailboxes" \ - <( doveadm -u "local" mailbox list | sed -n "s,^foo/,,p" | sort ) \ - <( doveadm -u "remote1" mailbox list | tr '^' '/' | sort ) + <( doveadm -u "local" mailbox list --no-userdb-lookup | sed -n "s,^foo/,,p" | sort ) \ + <( doveadm -u "remote1" mailbox list --no-userdb-lookup | tr '^' '/' | sort ) diff -u --label="local/mailboxes" --label="remote2/mailboxes" \ - <( doveadm -u "local" mailbox list | sed -n "s,^bar/,,p" | sort ) \ - <( doveadm -u "remote2" mailbox list | tr '\\' '/' | sort ) + <( doveadm -u "local" mailbox list --no-userdb-lookup | sed -n "s,^bar/,,p" | sort ) \ + <( doveadm -u "remote2" mailbox list --no-userdb-lookup | tr '\\' '/' | sort ) diff -u --label="local/mailboxes" --label="remote3/mailboxes" \ - <( doveadm -u "local" mailbox list | sed -n "s,^baz/,,p" | sort ) \ - <( doveadm -u "remote3" mailbox list | tr '?' '/' | sort ) + <( doveadm -u "local" mailbox list --no-userdb-lookup | sed -n "s,^baz/,,p" | sort ) \ + <( doveadm -u "remote3" mailbox list --no-userdb-lookup | tr '?' '/' | sort ) for m in "${MAILBOXES[@]}"; do case "$m" in diff --git a/tests/sync-live/t b/tests/sync-live/t index 1d50b00..9b2074b 100644 --- a/tests/sync-live/t +++ b/tests/sync-live/t @@ -26,15 +26,15 @@ while [ $(date +%s) -le $timer ]; do MAILBOXES+=( "$m" ) u="$(shuf -n1 -e "local" "remote")" # choose target at random [ "$u" = "local" ] || m="${m//./^}" - doveadm -u "$u" mailbox create -- "$m" + doveadm -u "$u" mailbox create --no-userdb-lookup -- "$m" fi # EXPUNGE some messages u="$(shuf -n1 -e "local" "remote")" # choose target at random n="$(shuf -n1 -i0-3)" while read guid uid; do - doveadm -u "$u" expunge mailbox-guid "$guid" uid "$uid" - done < <(doveadm -u "$u" search all | shuf -n "$n") + doveadm -u "$u" expunge --no-userdb-lookup mailbox-guid "$guid" uid "$uid" + done < <(doveadm -u "$u" search --no-userdb-lookup all | shuf -n "$n") # mark some existing messages as read (toggle \Seen flag as unlike other # flags it's easier to query and check_mailboxes_status checks it) @@ -42,8 +42,8 @@ while [ $(date +%s) -le $timer ]; do n="$(shuf -n1 -i0-9)" while read guid uid; do a="$(shuf -n1 -e add remove replace)" - doveadm -u "$u" flags "$a" "\\Seen" mailbox-guid "$guid" uid "$uid" - done < <(doveadm -u "$u" search all | shuf -n "$n") + doveadm -u "$u" flags "$a" --no-userdb-lookup "\\Seen" mailbox-guid "$guid" uid "$uid" + done < <(doveadm -u "$u" search --no-userdb-lookup all | shuf -n "$n") # select at random a mailbox where to deliver some messages u="$(shuf -n1 -e "local" "remote")" # choose target at random diff --git a/tests/sync-mailbox-list/t b/tests/sync-mailbox-list/t index d1567fb..ba533f0 100644 --- a/tests/sync-mailbox-list/t +++ b/tests/sync-mailbox-list/t @@ -4,10 +4,10 @@ # baz: present on both, subscribed to remote only # foo.bar: present on local only # foo.baz: present on remote only -doveadm -u "local" mailbox create "foo" "bar" "baz" "foo.bar" "fo!o [b*a%r]" -doveadm -u "local" mailbox subscribe "foo" "bar" -doveadm -u "remote" mailbox create "foo" "bar" "baz" "foo~baz" "foo]bar" -doveadm -u "remote" mailbox subscribe "foo" "baz" +doveadm -u "local" mailbox create --no-userdb-lookup "foo" "bar" "baz" "foo.bar" "fo!o [b*a%r]" +doveadm -u "local" mailbox subscribe --no-userdb-lookup "foo" "bar" +doveadm -u "remote" mailbox create --no-userdb-lookup "foo" "bar" "baz" "foo~baz" "foo]bar" +doveadm -u "remote" mailbox subscribe --no-userdb-lookup "foo" "baz" populate() { local i @@ -45,7 +45,7 @@ step_start "aborts if present in database" for u in "local" "remote"; do [ "$u" = "local" ] && { m="foo.bar"; m2="$m"; } || { m="foo.baz"; m2="foo~baz"; } - doveadm -u "$u" mailbox delete "$m2" + doveadm -u "$u" mailbox delete --no-userdb-lookup "$m2" ! interimap || error grep -Fx "database: ERROR: Mailbox $m exists. Run \`interimap --target=database --delete $m\` to delete." <"$STDERR" @@ -64,10 +64,10 @@ step_done # (un)subscribe from some mailboxes, including a non-existent one step_start "new (un)subscribtions" -doveadm -u "local" mailbox unsubscribe "foo" -doveadm -u "remote" mailbox unsubscribe "bar" -doveadm -u "local" mailbox subscribe "foo.bar" "foo.nonexistent" "foo.baz" -doveadm -u "remote" mailbox subscribe "foo~bar" "bar~nonexistent" +doveadm -u "local" mailbox unsubscribe --no-userdb-lookup "foo" +doveadm -u "remote" mailbox unsubscribe --no-userdb-lookup "bar" +doveadm -u "local" mailbox subscribe --no-userdb-lookup "foo.bar" "foo.nonexistent" "foo.baz" +doveadm -u "remote" mailbox subscribe --no-userdb-lookup "foo~bar" "bar~nonexistent" populate interimap @@ -75,7 +75,7 @@ grep -Fx "remote: Unsubscribe to foo" <"$STDERR" grep -Fx "local: Unsubscribe to bar" <"$STDERR" grep -Fx "remote: Subscribe to foo~baz" <"$STDERR" verify -check_mailbox_list -s $(doveadm -u "local" mailbox list) # exclude "foo.nonexistent" and "bar~nonexistent" +check_mailbox_list -s $(doveadm -u "local" mailbox list --no-userdb-lookup) # exclude "foo.nonexistent" and "bar~nonexistent" # check that "baz", "foo.bar" and "foo.baz" are the only subscribed mailboxes sqlite3 "$XDG_DATA_HOME/interimap/remote.db" >"$TMPDIR/count" <<-EOF diff --git a/tests/tls-pin-fingerprint/t b/tests/tls-pin-fingerprint/t index 6c045a1..679eaa4 100644 --- a/tests/tls-pin-fingerprint/t +++ b/tests/tls-pin-fingerprint/t @@ -1,5 +1,5 @@ -PKEY_SHA256="$(doveconf -c "$HOME_remote/.dovecot/config" -hx ssl_cert \ - | openssl x509 -in /dev/stdin -pubkey \ +ssl_server_cert_file="$(doveconf -c "$HOME_remote/.dovecot/config" -hx ssl_server/cert_file)" +PKEY_SHA256="$(openssl x509 -in "$ssl_server_cert_file" -pubkey \ | openssl pkey -in /dev/stdin -pubin -outform DER \ | openssl dgst -sha256 | sed -rn "/^.*=\\s*/ {s///p;q}")" INVALID_FPR="sha256\$deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" diff --git a/tests/tls-rsa+ecdsa/remote.conf b/tests/tls-rsa+ecdsa/remote.conf index 72ca135..c0f2ff3 100644 --- a/tests/tls-rsa+ecdsa/remote.conf +++ b/tests/tls-rsa+ecdsa/remote.conf @@ -1,5 +1,5 @@ !include conf.d/imapd.conf !include conf.d/ssl.conf -ssl_alt_cert = >"$XDG_CONFIG_HOME/interimap/config" <<-EOF diff --git a/tests/tls-sni/remote.conf b/tests/tls-sni/remote.conf index 4ccfb44..ef76cf9 100644 --- a/tests/tls-sni/remote.conf +++ b/tests/tls-sni/remote.conf @@ -2,6 +2,6 @@ !include conf.d/ssl.conf local_name imap.example.net { - ssl_cert =