Another try, do_request and globals issues

Gordon Molek <[email protected]> Fri, 8 Aug 2003 04:58:40 -0500 (CDT)
Newsgroups gmane.comp.web.tclwebtest
Message-ID <3457223.1060343920454.JavaMail.nobody@daisy.psp.pas.earthlink.net>
Distinguisehd members of the tclwebtest-general list.

I am going to try using a different e-mail address to see if this one allows me to properly respond to messages, so thanks for your patience.

First, thanks to everyone for the responses to my "can't do_request" inquiry.  For whatever reason, it seems to have cleared up as I am now able to receive the contents of arbitrary dotted decimal address URLs.

Secondly, I am still having trouble with globals.

From my previous posting, the problem is:

I was trying to develop a link-walk algorithm to validate that all the links on a web-site were valid and recursion combined with a list of already visited links appeared to be the way to implement it.  However, I can't seem to use globals within tclwebtest.  Here's a dumb TCL script which I found on a web site somewhere that illustrates global variables:
 
 #! /cygdrive/c/tcl/bin/tclsh.exe
 proc dumb_proc {} {
     set myvar 4
     puts "The value of the local variable is $myvar"
 
     global myglobalvar
     puts "The value of the global variable is $myglobalvar"
 }
 
 set myglobalvar 79
 dumb_proc
 
 As expected, when run, it produces the following output:
 
 $ ./global.tcl
 The value of the local variable is 4
 The value of the global variable is 79
 
 However, if I try to run it using tclwebtest (without the "#!
 /cygdrive/c/tcl/bin/tclsh.exe"
 line, I get the following:
 
 $ ../tclwebtest global.test
 
 ----- START: global.test at [30/Jul/2003:07:52:51] -----
 The value of the local variable is 4
 
 can't read "myglobalvar": no such variable
     while executing
 "puts "The value of the global variable is $myglobalvar""
     (procedure "dumb_proc" line 6)
     invoked from within
 "dumb_proc"
     (file "global.test" line 10)
     invoked from within
 "source global.test"
     ("uplevel" body line 3)
     invoked from within
 "uplevel $uplevel $to_eval "
 in "global.test" line 10:
     puts "The value of the global variable is $myglobalvar"
 }
 
 set myglobalvar 79
 dumb_proc
 
 -----  FAILED: global.test (took 1s)               -----
 
 DURATION: 1
 1 of 1 tests FAILED:
 global.test
 
Does tclwebtest do something that interferes with global variables?

I have also played around with upvar with the following test:

proc dumb_proc {} {
   set myvar 4
   puts "The value of the local variable is $myvar"

   upvar "#0" myglobalvar mylocalvar
   puts "The value of the global variable is $mylocalvar"
   set mylocalvar 69
}

set myglobalvar 79
dumb_proc
puts "The value of the global variable is now $myglobalvar"

Which generates the following errors:

----- START: upvar.test at [08/Aug/2003:06:55:55] -----
The value of the local variable is 4

can't read "mylocalvar": no such variable
    while executing
"puts "The value of the global variable is $mylocalvar""
    (procedure "dumb_proc" line 6)
    invoked from within
"dumb_proc"
    (file "upvar.test" line 11)
    invoked from within
"source upvar.test"
    ("uplevel" body line 3)
    invoked from within
"uplevel $uplevel $to_eval "
in "upvar.test" line 11:
   set mylocalvar 69
}

set myglobalvar 79
dumb_proc

-----  FAILED: upvar.test (took 0s)               -----

DURATION: 0
1 of 1 tests FAILED:
upvar.test

Again, when run under "straight" TCL it works as expected:

$ ./upvar.tcl
The value of the local variable is 4
The value of the global variable is 79
The value of the global variable is now 69

Thanks in advance,

Gordon Molek



-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01