diff options
Diffstat (limited to 'tests/07-sync-live/run')
-rw-r--r-- | tests/07-sync-live/run | 80 |
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 : |