Commit 1659714c 1659714c7a9ac81b7b1378d82132a6ba81db9024 by Sergey Poznyakoff

Added to repository

1 parent e24d8bb9
Makefile
Makefile.in
*.log
*.sum
site.exp
remote.exp
data
AUTOMAKE_OPTIONS = dejagnu
DEJATOOL = pop3d
RUNTESTFLAGS =
CLEANFILES = *.log
test_dirs = lib pop3d
dist-hook:
here=`cd $(top_builddir)/$(subdir) && pwd`; \
srcdir=`cd $(srcdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
for dir in $(test_dirs); \
do \
cd $$srcdir;\
mkdir $$distdir/$$dir;\
cd $$dir;\
for file in DISTFILES `cat DISTFILES`; do \
d=$$srcdir/$$dir; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $$distdir/$$dir/$$file; \
else \
test -f $$distdir/$$dir/$$file \
|| cp -p $$d/$$file $$distdir/$$dir/$$file || exit; \
fi; \
done;\
done;\
cd $$here
site.exp: Makefile remote.exp
@echo 'Making a new site.exp file...'
@test ! -f site.bak || rm -f site.bak
@echo '## these variables are automatically generated by make ##' > $@-t
@echo '# Do not edit here. If you wish to override these values' >> $@-t
@echo '# edit the last section' >> $@-t
@echo 'set tool $(DEJATOOL)' >> $@-t
@echo "set top_srcdir `cd $(top_srcdir); pwd`" >> $@-t
@echo "set srcdir `cd $(srcdir); pwd`" >> $@-t
@echo 'set objdir' `pwd` >> $@-t
@echo 'set host_alias "$(host_alias)"' >> $@-t
@echo 'set host_triplet $(host_triplet)' >> $@-t
@echo 'set target_alias "$(target_alias)"' >> $@-t
@echo 'set target_triplet $(target_triplet)' >> $@-t
@echo 'set build_alias "$(build_alias)"' >> $@-t
@echo 'set build_triplet $(build_triplet)' >> $@-t
@echo '## All variables above are generated by configure. Do Not Edit ##' >> $@-t
@test ! -f site.exp || sed '1,/^## All variables above are.*##/ d' site.exp >> $@-t
@test ! -f site.exp || mv site.exp site.bak
@mv $@-t site.exp
remote.exp:;
@echo 'Making a new remote.exp file...'
@test ! -f remote.bak || rm -f remote.bak
@echo '## These variables are used to set up for the remote testing.' >> $@-t
@echo '## Please, read file README in this directory for instructions' >> $@-t
@echo '## on how to use this file' >> $@-t
@echo "set host_board `hostname`" >> $@-t
@echo 'set board_info($$host_board,connect) rlogin' >> $@-t
@echo 'set board_info($$host_board,shell_prompt) "\\$$ "' >> $@-t
@echo "set board_info(\$$host_board,top_srcdir) `cd $(top_srcdir); pwd`" >> $@-t
@echo "set board_info(\$$host_board,srcdir) `cd $(srcdir); pwd`" >> $@-t
@echo "set board_info(\$$host_board,objdir) `pwd`" >> $@-t
@echo "set board_info(\$$host_board,top_srcdir) `cd $(top_srcdir); pwd`" >> $@-t
@echo "set board_info(\$$host_board,top_builddir) `cd $(top_builddir); pwd`" >> $@-t
@test ! -f remote.exp || mv remote.exp remote.bak
@mv $@-t remote.exp
DISTCLEANFILES=*.exp *.log *.sum
distclean-local:
-rm -rf data
# -*- tcl -*-
# This file is part of Mailutils testsuite.
# Copyright (C) 2002, Free Software Foundation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
source $top_srcdir/testsuite/lib/mailutils.exp
mu_init "--authentication generic --authorization virtdomain"
mu_version
if ![mu_check_capability USE_VIRTUAL_DOMAINS] {
clone_output "WARNING: Support for virtual domains not compiled in"
clone_output "WARNING: Skipping tests for pop3d"
exit 0
}
set POP3D_ETC_DIR "$MU_DATA_DIR/etc"
set output [remote_exec host "$MU_MAKESPOOL \
-subst \"s,@MU_SPOOL_DIR@,$MU_SPOOL_DIR,\" \
$MU_RC_DIR $POP3D_ETC_DIR" ]
if [lindex $output 0] {
perror "Cannot create $POP3D_ETC_DIR: [lindex $output 1]"
exit 1
}
append MU_TOOL_FLAGS " --virtual-passwd-dir $POP3D_ETC_DIR"
### Only procedures should come after this point.
proc pop3d_version {} {
global MU_TOOL
global MU_TOOL_FLAGS
global MU_TOOL_VERSION
mu_version
if ![is_remote host] {
clone_output "[which $MU_TOOL] version $MU_TOOL_VERSION"
} else {
clone_output "$MU_TOOL on remote host version $MU_TOOL_VERSION"
}
}
proc default_pop3d_start {args} {
global verbose
global MU_TOOL
global MU_TOOL_FLAGS
global expect_out
mu_version
set args [lindex $args 0]
if [info exists MU_TOOL_FLAGS] {
set sw $MU_TOOL_FLAGS
} else {
set sw ""
}
if [llength $args] {
append sw $args
}
if [info exists host_board] {
if [board_info $host_board exists top_srcdir] {
append sw " --mail-spool [board_info $host_board top_srcdir]/mail/testsuite/spool"
}
}
set pop3d_cmd "$MU_TOOL $sw"
verbose "Spawning $pop3d_cmd"
set res [remote_spawn host $pop3d_cmd]
if { $res < 0 || $res == "" } {
perror "Spawning $pop3d_cmd failed."
return 1;
}
mu_expect 360 {
-re "\\+OK.*" {
verbose "pop3d initialized."
}
default {
perror "pop3d not initialized"
exit 1
}
}
return 0
}
proc default_pop3d_stop {} {
verbose "Stopping pop3d"
}
proc pop3d_start {args} {
global MU_SPOOL_DIR
verbose "Starting pop3d"
set reuse_spool 0
for {set i 0} {$i < [llength $args]} {incr i} {
set a [lindex $args $i]
if {"$a" == "-reuse-spool"} {
set reuse_spool 1
} else {
break;
}
}
if {$reuse_spool == 0} {
mu_prepare_spools
set output [remote_exec host \
"cp $MU_SPOOL_DIR/teaparty.mbox $MU_SPOOL_DIR/INBOX"]
if [lindex $output 0] {
perror "Cannot create $MU_SPOOL_DIR/INBOX: [lindex $output 1]"
exit 1
}
}
return [default_pop3d_start [concat [lrange $args $i end]]]
}
proc pop3d_stop {} {
return [default_pop3d_stop];
}
##
proc pop3d_send { string } {
return [mu_send "$string"]
}
proc pop3d_command { cmd } {
return [mu_command $cmd]
}
proc pop3d_exit {} {
set res [pop3d_send "quit\n"]
mu_expect 360 {
-re "\\+OK.*$" { }
default {
perror "quit failed"
exit 1
}
}
return res
}
proc pop3d_auth {args} {
set user [lindex $args 0]
set pass [lindex $args 1]
pop3d_test "USER $user"
if [pop3d_test "PASS $pass"] {
perror "Failed to authorize."
exit 1
}
}
# pop3d_test [-message MESSAGE][-default (FAIL|XFAIL)]
# COMMAND [PATTERN...]
# COMMAND - Command to send.
# PATTERN - Sequence to expect in return. Defaults to "+OK"
# MESSAGE - [optional] message to output
proc pop3d_test { args } {
global verbose
global suppress_flag;
upvar timeout timeout
set default ""
set message ""
for {set i 0} {$i < [llength $args]} {incr i} {
set a [lindex $args $i]
if {"$a" == "-default"} {
set default [lindex $args [expr $i + 1]]
incr i
} elseif {"$a" == "-message"} {
set message [lindex $args [expr $i + 1]]
incr i
} else {
set args [lrange $args $i end]
break
}
}
if {"$message" == ""} {
set message [lindex $args 0]
}
if $verbose>2 then {
send_user "Message is \"$message\"\n"
}
set command [lindex $args 0]
if {[llength $args] >= 2} {
set pattern [lrange $args 1 end]
} else {
set pattern "+OK"
}
set result [mu_test $command $pattern]
if {$result == 0} {
pass "$message"
} elseif {$result == 1} {
if { "$default" == "" || "$default" != "FAIL" } {
fail "$message"
} else {
xfail "$message"
set result 0
}
} elseif {$result == -2} {
fail "$message (timeout)"
} elseif {$result == -3} {
fail "$message (eof)"
} else {
fail "$message"
}
return $result
}
# -*- tcl -*-
# This file is part of Mailutils testsuite.
# Copyright (C) 2002, Free Software Foundation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
pop3d_start
pop3d_auth "user!passwd" "guessme"
## Test STAT command
pop3d_test "STAT" "+OK 95 35014"
## Test LIST command. This will be used twice.
proc test_list {} {
pop3d_test "LIST" \
"+OK" \
"1 317" \
"2 327" \
"3 322" \
"4 351" \
"5 368" \
"6 384" \
"7 331" \
"8 374" \
"9 360" \
"10 329" \
"11 364" \
"12 313" \
"13 354" \
"14 385" \
"15 427" \
"16 403" \
"17 460" \
"18 346" \
"19 326" \
"20 313" \
"21 363" \
"22 327" \
"23 403" \
"24 338" \
"25 421" \
"26 364" \
"27 396" \
"28 340" \
"29 336" \
"30 343" \
"31 381" \
"32 335" \
"33 339" \
"34 331" \
"35 308" \
"36 423" \
"37 389" \
"38 338" \
"39 373" \
"40 375" \
"41 668" \
"42 347" \
"43 394" \
"44 396" \
"45 339" \
"46 554" \
"47 340" \
"48 430" \
"49 365" \
"50 443" \
"51 334" \
"52 389" \
"53 382" \
"54 395" \
"55 342" \
"56 342" \
"57 358" \
"58 444" \
"59 343" \
"60 389" \
"61 399" \
"62 341" \
"63 337" \
"64 392" \
"65 489" \
"66 330" \
"67 329" \
"68 368" \
"69 331" \
"70 354" \
"71 317" \
"72 347" \
"73 375" \
"74 333" \
"75 346" \
"76 351" \
"77 330" \
"78 330" \
"79 375" \
"80 381" \
"81 395" \
"82 327" \
"83 316" \
"84 368" \
"85 371" \
"86 419" \
"87 333" \
"88 338" \
"89 407" \
"90 322" \
"91 316" \
"92 506" \
"93 347" \
"94 327" \
"95 396" \
"."
}
## Actually test LIST
test_list
## Test RETRY on an existing message
pop3d_test "RETR 1" \
"+OK" \
"Received: (from hare@wonder.land)" \
" by wonder.land id 3d3b1d91" \
" for alice@wonder.land; Sun, 21 Jul 2002 23:46:09 EEST" \
"Date: Sun, 21 Jul 2002 23:46:09 EEST" \
"From: March Hare <hare@wonder.land>" \
"Message-Id: <200207212346.3d3b1d91@wonder.land>" \
"To: Alice <alice@wonder.land>" \
"Subject: Invitation" \
"" \
"Have some wine" \
"."
## Test TOP command
pop3d_test "TOP 48" \
"-ERR Invalid arguments"
pop3d_test "TOP 48 2" \
"+OK" \
"Received: (from hatter@wonder.land)" \
" by wonder.land id 3d3b1d95" \
" for alice@wonder.land; Sun, 21 Jul 2002 23:46:13 EEST" \
"Date: Sun, 21 Jul 2002 23:46:13 EEST" \
"From: Hatter <hatter@wonder.land>" \
"Message-Id: <200207212346.3d3b1d95@wonder.land>" \
"To: Alice <alice@wonder.land>" \
"Subject: Re: Discussing Time" \
"" \
"It goes on, you know in this way:--" \
"" \
"."
pop3d_test "TOP 48 3" \
"+OK" \
"Received: (from hatter@wonder.land)" \
" by wonder.land id 3d3b1d95" \
" for alice@wonder.land; Sun, 21 Jul 2002 23:46:13 EEST" \
"Date: Sun, 21 Jul 2002 23:46:13 EEST" \
"From: Hatter <hatter@wonder.land>" \
"Message-Id: <200207212346.3d3b1d95@wonder.land>" \
"To: Alice <alice@wonder.land>" \
"Subject: Re: Discussing Time" \
"" \
"It goes on, you know in this way:--" \
"" \
"\"Up above the world you fly," \
"."
pop3d_test "TOP 48 4" \
"+OK" \
"Received: (from hatter@wonder.land)" \
" by wonder.land id 3d3b1d95" \
" for alice@wonder.land; Sun, 21 Jul 2002 23:46:13 EEST" \
"Date: Sun, 21 Jul 2002 23:46:13 EEST" \
"From: Hatter <hatter@wonder.land>" \
"Message-Id: <200207212346.3d3b1d95@wonder.land>" \
"To: Alice <alice@wonder.land>" \
"Subject: Re: Discussing Time" \
"" \
"It goes on, you know in this way:--" \
"" \
"\"Up above the world you fly," \
"Like a tea-tray in the sky." \
"."
pop3d_test "TOP 48 1000" \
"+OK" \
"Received: (from hatter@wonder.land)" \
" by wonder.land id 3d3b1d95" \
" for alice@wonder.land; Sun, 21 Jul 2002 23:46:13 EEST" \
"Date: Sun, 21 Jul 2002 23:46:13 EEST" \
"From: Hatter <hatter@wonder.land>" \
"Message-Id: <200207212346.3d3b1d95@wonder.land>" \
"To: Alice <alice@wonder.land>" \
"Subject: Re: Discussing Time" \
"" \
"It goes on, you know in this way:--" \
"" \
"\"Up above the world you fly," \
"Like a tea-tray in the sky." \
"Twinkle, twinkle--\"'" \
"."
## Test DELE -- RETR -- RSET -- RETR
pop3d_test "DELE 2" \
"+OK Message 2 marked"
pop3d_test "RETR 2" \
"-ERR Message has been deleted"
pop3d_test "RSET" "+OK"
pop3d_test "RETR 2" \
"+OK" \
"Received: (from alice@wonder.land)" \
" by wonder.land id 3d3b1d91" \
" for hare@wonder.land; Sun, 21 Jul 2002 23:46:09 EEST" \
"Date: Sun, 21 Jul 2002 23:46:09 EEST" \
"From: Alice <alice@wonder.land>" \
"Message-Id: <200207212346.3d3b1d91@wonder.land>" \
"To: March Hare <hare@wonder.land>" \
"Subject: Re: Invitation" \
""\
"I don't see any wine"\
"."
## Delete all messages
for {set i 1} {$i <= 95} {incr i} {
pop3d_test "DELE $i" "+OK Message $i marked"
}
## This should produce empty output
pop3d_test "LIST" \
"+OK" \
"."
## Restore deleted messages
pop3d_test "RSET" "+OK"
## Test LIST again
test_list
#end of read.exp