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 {
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]+} {
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)