Hello Clément, Clément Lassieur writes: > Oleg Pykhalov writes: > >> * gnu/tests/mail.scm (%dovecot-os, %test-dovecot): New variables. >> (run-dovecot-test): New procedure. >> --- >> gnu/tests/mail.scm | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++- >> 1 file changed, 112 insertions(+), 1 deletion(-) > > Thank you for these patches! Thank you for review! […] >> + (sleep 1) ; give the service time to start talking > > Here, it would probably be safer to wait for the PID file to arrive. > You could use 'wait-for-file' for this, there are examples in other > tests. Dovecot's PID file is /var/run/dovecot/master.pid. OK. >> + (test-eq "accept an email" >> + #t > > Could you use 'test-assert' here? OK. […] >> + ;; Get a message ID >> + (string->number >> + (match (scandir "/home/alice/Maildir/TESTBOX/new/") >> + ((_ _ message) > > Could you write "." ".." here instead of _ _? It makes it easier to > understand the code. Seems it's not possible for ".": --8<---------------cut here---------------start------------->8--- natsu@magnolia ~/src/guix$ ./pre-inst-env make check-system TESTS="dovecot" Compiling Scheme modules... LOAD gnu/tests/mail.scm ERROR: In procedure read: In procedure scm_i_lreadparen: gnu/tests/mail.scm:378:28: missing close paren make: *** [Makefile:5227: make-go] Error 1 --8<---------------cut here---------------end--------------->8--- WDYT about replacing "." (or first ‘_’) with ‘cwd’? I also rename ‘message’ to ‘message-file’ if you don't mind. So in the end we will have ‘(match … (cwd .. message-file) …)’. >> + (match (string-split message #\.) >> + ((message-id _ _) message-id)))))) > > Here I think it would be great to compare the arrived message and the > sent message to check that they are the same. If they are the same, > then the test succeeds. WDYT? OK. I'll attach the patch after this email. Oleg.