See also the 32bit build failures on Debian:
https://buildd.debian.org/status/package.php?p=dovecot
There are some compiler warnings on 32bit architectures in test-mech.c
test-mech.c: In function ?test_mechs?:
test-mech.c:326:61: warning: format ?%lu? expects argument of type
?long unsigned int?, but argument 4 has type ?unsigned int?
[-Wformat=]
  326 |   const char *testname = t_strdup_printf("auth mech %s
%d/%lu",
      |                                                           ~~^
      |                                                             |
      |
long unsigned int
      |                                                           %u
test-mech.c:338:12: warning: passing argument 2 of
?test_mech_construct_apop_challenge? from incompatible pointer type
[-Wincompatible-pointer-types]
  338 |            &test_case->len);
      |            ^~~~~~~~~~~~~~~
      |            |
      |            size_t * {aka unsigned int *}
test-mech.c:195:77: note: expected ?long unsigned int *? but argument
is of type ?size_t *? {aka ?unsigned int *?}
  195 | test_mech_construct_apop_challenge(unsigned int connect_uid,
unsigned long *len_r)
      |
~~~~~~~~~~~~~~~^~~~~
But the unit test still fails after a commit like:
diff --git a/src/auth/test-mech.c b/src/auth/test-mech.c
index cf05370..90c2215 100644
--- a/src/auth/test-mech.c
+++ b/src/auth/test-mech.c
@@ -192,7 +192,7 @@ static void test_mech_handle_challenge(struct
auth_request *request,
 }
 static inline const unsigned char *
-test_mech_construct_apop_challenge(unsigned int connect_uid, unsigned
long *len_r)
+test_mech_construct_apop_challenge(unsigned int connect_uid, size_t *len_r)
 {
  string_t *apop_challenge = t_str_new(128);
@@ -323,7 +323,7 @@ static void test_mechs(void)
  struct test_case *test_case = &tests[running_test];
  const struct mech_module *mech = test_case->mech;
  struct auth_request *request;
- const char *testname = t_strdup_printf("auth mech %s %d/%lu",
+ const char *testname = t_strdup_printf("auth mech %s %d/%zu",
        mech->mech_name,
        running_test+1,
        N_ELEMENTS(tests));