aboutsummaryrefslogtreecommitdiffstats
path: root/tests/largeint/t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/largeint/t')
-rw-r--r--tests/largeint/t39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/largeint/t b/tests/largeint/t
new file mode 100644
index 0000000..b0877d5
--- /dev/null
+++ b/tests/largeint/t
@@ -0,0 +1,39 @@
+doveadm -u "local" mailbox create "foo" "bar" "baz"
+doveadm -u "remote" mailbox create "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 "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" #
+
+run() {
+ local u m i
+ for ((i = 0; i < 64; i++)); do
+ u="$(shuf -n1 -e "local" "remote")" # choose target at random
+ m="$(shuf -n1 -e -- "INBOX" "foo" "bar" "baz")"
+ sample_message | deliver -u "$u" -- -m "$m"
+ done
+ interimap || error
+ check_mailbox_list
+ check_mailbox_status "INBOX" "foo" "bar" "baz"
+}
+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
+
+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
+
+run
+
+# vim: set filetype=sh :