Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
John McEleney
/
mailutils
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
41c1f08b
...
41c1f08b9ffcedc1b97d06cd41b9acc96ce6fbd9
authored
2002-08-20 20:23:43 +0000
by
Sergey Poznyakoff
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Added to repository
1 parent
1e3acbf9
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
365 additions
and
0 deletions
testsuite/lib/DISTFILES
testsuite/lib/mailutils.exp
testsuite/lib/DISTFILES
0 → 100644
View file @
41c1f08
mailutils.exp
testsuite/lib/mailutils.exp
0 → 100644
View file @
41c1f08
# -*- 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.
verbose
"STARTED"
1
proc
mu_init
{}
{
global TOOL_EXECUTABLE
global MU_TOOL
global MU_SPOOL_SOURCE
global MU_FOLDER_SOURCE
global MU_SPOOL_DIR
global MU_FOLDER_DIR
global MU_RC_DIR
global MU_MAKESPOOL
global TOOL_NAME
global MU_TOOL_ARGS
global base_dir
global top_srcdir
global objdir
global host_board
if
[
info
exists TOOL_EXECUTABLE
]
{
set MU_TOOL $TOOL_EXECUTABLE
}
if !
[
info
exists MU_TOOL
]
{
if !
[
is_remote host
]
{
set MU_TOOL
[
findfile
$base
_dir/../$TOOL_NAME
"
$base
_dir/../
$
TOOL_NAME"
[
transform $TOOL_NAME
]]
set MU_SPOOL_SOURCE
"
$top
_srcdir/testsuite/spool"
set MU_FOLDER_SOURCE
"
$top
_srcdir/testsuite/folder"
set MU_SPOOL_DIR
"
$objdir
/data/spool"
set MU_FOLDER_DIR
"
$objdir
/data/folder"
set MU_RC_DIR
"
$top
_srcdir/testsuite/etc"
set MU_MAKESPOOL
"
$top
_srcdir/testsuite/makespool"
}
else
{
if
[
info
exists host_board
]
{
if
[
board_info
$host
_board exists top_builddir
]
{
append MU_TOOL
"
[
board_info
$host
_board top_builddir
]
/
$
TOOL_NAME/
$
TOOL_NAME"
}
else
if
[
board_info
$host
_board exists top_srcdir
]
{
append MU_TOOL
"
[
board_info
$host
_board top_srcdir
]
/
$
TOOL_NAME/
$
TOOL_NAME"
}
}
if !
[
info
exists MU_TOOL
]
{
perror
"The test suite is not set up for the remote testing"
perror
"Please, read file README in
$
TOOL_NAME/testsuite subdirectory"
perror
"for instructions on how to set up it."
exit 1
}
set MU_RC_DIR
"
[
board_info
$host
_board top_srcdir
]
/etc"
set MU_SPOOL_SOURCE
"
[
board_info
$host
_board top_srcdir
]
/spool"
set MU_FOLDER_SOURCE
"
[
board_info
$host
_board top_srcdir
]
/folder"
set MU_SPOOL_DIR
"
[
board_info
$host
_board objdir
]
/data/spool"
set MU_FOLDER_DIR
"
[
board_info
$host
_board objdir
]
/data/folder"
set MU_MAKESPOOL
"
[
board_info
$host
_board top_srcdir
]
/makespool"
}
}
}
### Only procedures should come after this point.
proc
mu_prepare_spools
{}
{
global MU_SPOOL_SOURCE
global MU_SPOOL_DIR
global MU_FOLDER_SOURCE
global MU_FOLDER_DIR
global MU_MAKESPOOL
set output
[
remote_exec host
"
$
MU_MAKESPOOL
\
$
MU_SPOOL_SOURCE
$
MU_SPOOL_DIR
\
$
MU_FOLDER_SOURCE
$
MU_FOLDER_DIR"
]
}
proc
mu_cleanup_spools
{}
{
global MU_SPOOL_SOURCE
global MU_SPOOL_DIR
global MU_FOLDER_SOURCE
global MU_FOLDER_DIR
global MU_MAKESPOOL
if
{
$MU_SPOOL_SOURCE != $MU_SPOOL_DIR
}
{
set output
[
remote_exec host
"
$
MU_MAKESPOOL -r
\
$
MU_SPOOL_DIR
$
MU_FOLDER_DIR"
]
}
}
proc mu_version
{}
{
global MU_TOOL
global MU_TOOL_FLAGS
global MU_TOOL_VERSION
if
[
info
exists MU_TOOL_VERSION
]
{
return
}
set output
[
remote_exec host
"
$
MU_TOOL --version"
]
regexp
"
\[
0-9
\]\[
^
\t\n\r\]
+"
"
$output
"
MU_TOOL_VERSION
}
##
proc
mu_send
{
string
}
{
global suppress_flag
;
if
{[
info
exists suppress_flag
]
&&
$suppress
_flag
}
{
return
"suppressed"
;
}
return
[
remote_send host
"
$string
"
]
}
proc
mu_command
{
cmd
}
{
set res
[
mu_send
"
$cmd
\n
"
]
mu_expect 30
{
-ex
"
\r\n
"
{
}
default
{
perror
"mu_command for target failed"
;
return -1
}
}
return
$res
}
proc
mu_expect
{
args
}
{
global env
if
{
[
lindex
$args
0
]
==
"-notransfer"
}
{
set notransfer -notransfer
;
set args
[
lrange
$args
1 end
];
}
else
{
set notransfer
""
;
}
if
{
[
llength
$args
]
== 2 &&
[
lindex
$args
0
]
!=
"-re"
}
{
set gtimeout
[
lindex
$args
0
];
set expcode
[
list
[
lindex
$args
1
]];
}
else
{
upvar timeout timeout
;
set expcode
$args
;
if
[
target_info exists mailutils,timeout
]
{
if
[
info
exists timeout
]
{
if
{
$timeout
<
[
target_info mailutils,timeout
]
}
{
set gtimeout
[
target_info mailutils,timeout
];
}
else
{
set gtimeout
$timeout
;
}
}
else
{
set gtimeout
[
target_info mailutils,timeout
];
}
}
if !
[
info
exists gtimeout
]
{
global timeout
;
if
[
info
exists timeout
]
{
set gtimeout
$timeout
;
}
else
{
# Eeeeew.
set gtimeout 60
;
}
}
}
global suppress_flag
;
global remote_suppress_flag
;
global verbose
if
[
info
exists remote_suppress_flag
]
{
set old_val
$remote
_suppress_flag
;
}
if
[
info
exists suppress_flag
]
{
if
{
$suppress
_flag
}
{
set remote_suppress_flag 1
;
}
}
verbose
"RUNNING remote_expect host
$gtimeout
$notransfer
$expcode
"
2
set code
[
catch
\
{
uplevel
remote_expect host
$gtimeout
$notransfer
$expcode
}
string
];
if
[
info
exists old_val
]
{
set remote_suppress_flag
$old
_val
;
}
else
{
if
[
info
exists remote_suppress_flag
]
{
unset remote_suppress_flag
;
}
}
if
{
$code
== 1
}
{
global errorInfo errorCode
;
return -code error -errorinfo
$error
Info -errorcode
$error
Code
$string
}
else
if
{
$code
== 2
}
{
return -code return
$string
}
else
if
{
$code
== 3
}
{
return
}
else
if
{
$code
> 4
}
{
return -code
$code
$string
}
}
# mu_test COMMAND PATTERN
# COMMAND - Command to send to mail
# PATTERN - A list of strings to expect in return
# Return value:
# -3 - eof
# -2 - timeout
# -1 - generic failure
# 1 - test fails
# 0 - test succeeds
proc
mu_test
{
args
}
{
global verbose
global suppress_flag
upvar timeout timeout
set command
[
lindex
$args
0
]
set pattern
[
lindex
$args
1
]
if
{
[
info
exists suppress_flag
]
&&
$suppress
_flag
}
{
set do_suppress 1
}
else
{
set do_suppress 0
}
if
$verbose
>2
then
{
send_user
"Command:
\"
$command
\"\n
"
send_user
"Pattern:
\"
$pattern
\"\n
"
}
set result -1
if
{
"
${command}
"
!=
""
}
{
if
{
[
mu_command
"
${command}
"
]
!=
""
}
{
if
{
!
$do
_suppress
}
{
perror
"Couldn't send
\"
$command
\"
."
;
}
return
$result
;
}
}
if
[
info
exists timeout
]
{
set tmt
$timeout
;
}
else
{
global timeout
;
if
[
info
exists timeout
]
{
set tmt
$timeout
;
}
else
{
set tmt 60
;
}
}
set result 0
for
{
set
i 0
}
{
$i
<
[
llength
$pattern
]}
{
incr
i
}
{
regsub
"
\[
\t\]
*
$
"
[
lindex
${pattern}
$i
]
""
pat
verbose
"i=
$i
, pat=
$pat
"
2
mu_expect
$tmt
{
-ex
"
$pat
"
{
if
{
$expect
_out
(
buffer
)
!=
$expect
_out
(
0,string
)
}
{
verbose
"Got
\"
$expect
_out(buffer)
\"
"
2
verbose
"instead of expected
\"
$pat
\\
r
\\
n
\"
"
2
set result 1
break
}
mu_expect
$tmt
{
-re
"
\[
\t
]*
\r\n
"
{
}
default
{
set result 1
break
}
timeout
{
set result -2
break
}
eof
{
set result -3
break
}
}
}
default
{
set result 1
break
}
timeout
{
set result -2
break
}
eof
{
set result -3
break
}
}
}
return
$result
}
proc
mu_test_file
{
args
}
{
global verbose
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
}
else
if
{
"
$a
"
==
"-message"
}
{
set message
[
lindex
$args
[
expr
$i
+ 1
]]
incr i
}
else
{
set args
[
lrange
$args
$i
end
]
break
}
}
if
{
"
$message
"
==
""
}
{
set message
"Contents of
[
lindex
$args
0
]
"
}
if
$verbose
>2
then
{
send_user
"Message is
\"
$message
\"\n
"
}
set filename
[
lindex
$args
0
]
set pattern
[
lrange
$args
1 end
]
set res
[
remote_spawn host
"/bin/cat
$filename
"
]
if
{
$res
< 0 ||
$res
==
""
}
{
perror
"Reading
$filename
failed."
return 1
;
}
set result
[
mu_test
""
$pattern
]
if
{
$result
== 0
}
{
pass
"
$message
"
}
else
if
{
$result
== 1
}
{
if
{
"
$default
"
==
""
||
"
$default
"
!=
"FAIL"
}
{
fail
"
$message
"
}
else
{
xfail
"
$message
"
set result 0
}
}
else
if
{
$result
== -2
}
{
fail
"
$message
(timeout)"
}
else
if
{
$result
== -3
}
{
fail
"
$message
(eof)"
}
else
{
fail
"
$message
"
}
return
$result
}
Please
register
or
sign in
to post a comment