aboutsummaryrefslogtreecommitdiffstats
path: root/tests/07-sync-live/run
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2019-11-09 03:13:45 +0100
committerGuilhem Moulin <guilhem@fripost.org>2019-11-13 06:23:56 +0100
commit67440844c422ee30b31df9a46a7f99ac0e833add (patch)
tree989381e5b94d5939dafdd1e99c7db2ada95355ec /tests/07-sync-live/run
parentb9da6cc7ecf71026d1023dc3354b820c7518426e (diff)
Refactor and improve test suite.
Diffstat (limited to 'tests/07-sync-live/run')
-rw-r--r--tests/07-sync-live/run80
1 files changed, 0 insertions, 80 deletions
diff --git a/tests/07-sync-live/run b/tests/07-sync-live/run
deleted file mode 100644
index 04d8247..0000000
--- a/tests/07-sync-live/run
+++ /dev/null
@@ -1,80 +0,0 @@
-# create database
-interimap
-
-# start a long-lived interimap process
-interimap --watch=1 & pid=$!
-
-abort() {
- # kill interimap process and its children
- pkill -P "$pid" -TERM || true
- kill -TERM "$pid" || true
- wait
-}
-trap abort EXIT INT TERM
-
-# mailbox list and alphabet (exclude &, / and ~, which dovecot treats specially)
-declare -a mailboxes=( "INBOX" ) alphabet=()
-str="!\"#\$'()+,-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]_\`abcdefghijklmnopqrstuvwxyz{|}"
-for ((i=0; i < ${#str}; i++)); do
- alphabet[i]="${str:i:1}"
-done
-
-timer=$(( $(date +%s) + 30 ))
-while [ $(date +%s) -le $timer ]; do
- # create new mailbox with 10% probability
- if [ $(shuf -n1 -i0-9) -eq 0 ]; then
- m=
- d=$(shuf -n1 -i1-3) # random depth
- for (( i=0; i < d; i++)); do
- l=$(shuf -n1 -i1-16)
- m="${m:+$m.}$(shuf -n "$l" -e -- "${alphabet[@]}" | tr -d '\n')"
- done
- mailboxes+=( "$m" )
- u="$(shuf -n1 -e "local" "remote")" # choose target at random
- [ "$u" = "local" ] || m="${m//./^}"
- doveadm -u "$u" mailbox create -- "$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")
-
- # mark some existing messages as read (toggle \Seen flag as unlike other
- # flags it's easier to query and check_mailboxes_status checks it)
- u="$(shuf -n1 -e "local" "remote")" # choose target at random
- 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")
-
- # select at random a mailbox where to deliver some messages
- u="$(shuf -n1 -e "local" "remote")" # choose target at random
- m="$(shuf -n1 -e -- "${mailboxes[@]}")"
- [ "$u" = "local" ] || m="${m//./^}"
-
- # deliver between 1 and 5 messages to the chosen mailbox
- n="$(shuf -n1 -i1-5)"
- for (( i=0; i < n; i++)); do
- sample_message | deliver -u "$u" -- -m "$m"
- done
-
- # sleep a little bit
- sleep "$(printf "0.%03d" "$(shuf -n1 -i1-999)")"
-done
-
-# wait a little longer so interimap has time to run loop() again and
-# synchronize outstanding changes, then terminate the process we started
-# above
-sleep 2
-
-abort
-trap - EXIT INT TERM
-
-check_mailbox_list
-check_mailboxes_status "${mailboxes[@]}"
-
-# vim: set filetype=sh :