####################################################################### ## proc send_expect_report ## ## Copyright (c) David L. Fisher, 1999 ## ## This software is copyrighted David L. Fisher. The following ## terms apply to all files associated with the software unless ## explicitly disclaimed in individual files. ## ## The author hereby grants permission to use, copy, modify, ## distribute, and license this software and its documentation for any ## purpose, provided that existing copyright notices are retained in ## all copies and that this notice is included verbatim in any ## distributions. No written agreement, license, or royalty fee is ## required for any of the authorized uses. Modifications to this ## software may be copyrighted by their authors and need not follow ## the licensing terms described here, provided that the new terms are ## clearly indicated on the first page of each file where they apply. ## ## IN NO EVENT SHALL THE AUTHOR OR DISTRIBUTORS BE LIABLE TO ANY PARTY ## FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ## ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY ## DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE ## POSSIBILITY OF SUCH DAMAGE. ## ## THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, ## INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ## MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND ## NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, ## AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE ## MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. ## ## GOVERNMENT USE: If you are acquiring this software on behalf of the ## U.S. government, the Government shall have only "Restricted Rights" ## in the software and related documentation as defined in the Federal ## Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you ## are acquiring the software on behalf of the Department of Defense, ## the software shall be classified as "Commercial Computer Software" ## and the Government shall have only "Restricted Rights" as defined ## in Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the ## foregoing, the authors grant the U.S. Government and others acting ## in its behalf permission to use and distribute the software in ## accordance with the terms specified in this license. ## ####################################################################### ####################################################################### ## NAME ## send_expect_report ## ## DESCRIPTION ## Generate a report on the settings and results of the ## send_expect interface ## ## INPUTS ## outputmode 0 = output to stderr ## 1 = return data ## 2 = output to stderr and return data ## 3 = no output ## ## OUTPUTS ## If outputmode is 1, returns report as string ## Otherwise, returns 0; ## ## NOTE ## Regardless of outputmode, the sendGlobals(report) is updated. ## ####################################################################### proc send_expect_report { {outputmode 0} } { global sendGlobals; ##------------------------------------------------------------------------ ## here is where to format the report message however you want ##------------------------------------------------------------------------ set data ""; append data "Interface/send_expect statistics:\n"; append data "Transmission Errors: $sendGlobals(errors)\n"; append data "Transmission Kills: $sendGlobals(kills)\n"; append data "Mode failures/Max allowed:\n"; append data "Mode 1: $sendGlobals(Mode1Failures)/$sendGlobals(Mode1FailMax)\n"; append data "Mode 2: $sendGlobals(Mode2Failures)/$sendGlobals(Mode2FailMax)\n"; append data "Mode 3: $sendGlobals(Mode3Failures)/$sendGlobals(Mode3FailMax)\n"; ##------------------------------------------------------------------------ ## report on the interface settings for this execution ##------------------------------------------------------------------------ append data "\nSettings for the send_expect interface:\n\n"; foreach name [lsort [array names sendGlobals]] { if { "$name" == "report" } { ## don't want to add the report to the report here... continue; } append data [format "%-18s : %-s\n" $name $sendGlobals($name)]; } ## update a global for external use set sendGlobals(report) "$data"; ## now determine where the report goes if { $outputmode == 0 || $outputmode == 2 } { puts stderr "$data"; } if { $outputmode == 1 || $outputmode == 2 } { return "$data"; } return 0; }