From b18fc60aff2a1e99be1714c6a56a85d2287ecd58 Mon Sep 17 00:00:00 2001 From: Jacob Bachmeyer Date: Fri, 28 Oct 2022 17:43:15 -0500 Subject: [PATCH] Add testsuite infrastructure for detecting repeated email addresses --- testsuite/lib/gatekeeper.exp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/testsuite/lib/gatekeeper.exp b/testsuite/lib/gatekeeper.exp index 38e996c..817c861 100644 --- a/testsuite/lib/gatekeeper.exp +++ b/testsuite/lib/gatekeeper.exp @@ -947,12 +947,14 @@ proc analyze_mail { base_dir name args } { foreach address $opt(to) { set expected_address($address) $address } verbose -log "begin: [string repeat - 60]" + set message_counter 0 set messages_remain 1 spawn -open [open [file join $base_dir mbox]] while { $messages_remain } { expect { -re {^From } { # at beginning of message + incr message_counter } -re {^[^\r\n]*[\r\n]+} { exp_continue } eof { @@ -970,6 +972,12 @@ proc analyze_mail { base_dir name args } { expect { -re {^<([^>]+)> *} { set env_address($expect_out(1,string)) $expect_out(1,string) + if { [info exists \ + repeated($message_counter,$expect_out(1,string))] } { + incr repeated($message_counter,$expect_out(1,string)) + } else { + set repeated($message_counter,$expect_out(1,string)) 1 + } exp_continue } -re {^[\r\n]+} { @@ -980,6 +988,13 @@ proc analyze_mail { base_dir name args } { verbose -log " done: [string repeat - 60]" set result pass + foreach { key count } [array get repeated] { + if { $count > 1 } { + regexp -- {^(\d+),(.*)$} $key -> message address + verbose -log "message $message repeats address $address" 0 + set result fail + } + } foreach address [array names expected_address] { if { [info exists env_address($address)] } { unset env_address($address) -- 2.25.1