diff -r 000000000000 -r bde4ae8d615e os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/tests/winDde.test --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/tests/winDde.test Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,183 @@ +# This file tests the tclWinDde.c file. +# +# This file contains a collection of tests for one or more of the Tcl +# built-in commands. Sourcing this file into Tcl runs the tests and +# generates output for errors. No output means no errors were found. +# +# Copyright (c) 1999 by Scriptics Corporation. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# RCS: @(#) $Id: winDde.test,v 1.13.2.2 2005/06/21 22:59:03 patthoyts Exp $ + +if {[lsearch [namespace children] ::tcltest] == -1} { + package require tcltest + namespace import -force ::tcltest::* +} + +if {$tcl_platform(platform) == "windows"} { + if [catch { + set lib [lindex [glob -directory [file join [pwd] [file dirname \ + [info nameofexecutable]]] tcldde*.dll] 0] + load $lib dde + }] { + puts "WARNING: Unable to find the dde package. Skipping dde tests." + ::tcltest::cleanupTests + return + } +} + +set scriptName script1.tcl + +proc createChildProcess { ddeServerName } { + file delete -force $::scriptName + + set f [open $::scriptName w+] + puts $f { + if {[lsearch [namespace children] ::tcltest] == -1} { + package require tcltest + namespace import -force ::tcltest::* + } + if [catch { + set lib [lindex [glob -directory \ + [file join [pwd] [file dirname [info nameofexecutable]]] \ + tcldde*.dll] 0] + load $lib dde + }] { + puts "Unable to find the dde package. Skipping dde tests." + ::tcltest::cleanupTests + return + } + } + puts $f [list dde servername $ddeServerName] + puts $f { + after 200 {set ready 1} + vwait ready + puts ready + vwait done + after 200 {set final 1} + vwait final + exit + } + close $f + + set f [open |[list [interpreter] $::scriptName] r] + fconfigure $f -buffering line -blocking 1 + gets $f + return $f +} + +test winDde-1.1 {Settings the server's topic name} {pcOnly} { + list [dde servername foobar] [dde servername] [dde servername self] +} {foobar foobar self} + +test winDde-2.1 {Checking for other services} {pcOnly} { + expr [llength [dde services {} {}]] >= 0 +} 1 + +test winDde-2.2 {Checking for existence, with service and topic specified} \ + {pcOnly} { + llength [dde services TclEval self] +} 1 + +test winDde-2.3 {Checking for existence, with only the service specified} \ + {pcOnly} { + expr [llength [dde services TclEval {}]] >= 1 +} 1 + +test winDde-3.1 {DDE execute locally} {pcOnly} { + set a "" + dde execute TclEval self {set a "foo"} + set a +} foo + +test winDde-3.2 {DDE execute -async locally} {pcOnly} { + set a "" + dde execute -async TclEval self {set a "foo"} + update + set a +} foo + +test winDde-3.3 {DDE request locally} {pcOnly} { + set a "" + dde execute TclEval self {set a "foo"} + dde request TclEval self a +} foo + +test winDde-3.4 {DDE eval locally} {pcOnly} { + set a "" + dde eval self set a "foo" +} foo + +test winDde-3.5 {DDE request locally} {pcOnly} { + set a "" + dde execute TclEval self {set a "foo"} + dde request -binary TclEval self a +} "foo\x00" + +test winDde-4.1 {DDE execute remotely} {stdio pcOnly} { + list [catch { + set a "" + set child [createChildProcess child] + dde execute TclEval child {set a "foo"} + dde execute TclEval child {set done 1} + set a + } err] $err +} [list 0 ""] + +test winDde-4.2 {DDE execute remotely} {stdio pcOnly} { + list [catch { + set a "" + set child [createChildProcess child] + dde execute -async TclEval child {set a "foo"} + after 400 {set ::_dde_forever 1} ; vwait ::_dde_forever; #update + dde execute TclEval child {set done 1} + set a + } err] $err +} [list 0 ""] + +test winDde-4.3 {DDE request locally} {stdio pcOnly} { + list [catch { + set a "" + set child [createChildProcess child] + dde execute TclEval child {set a "foo"} + set a [dde request TclEval child a] + dde execute TclEval child {set done 1} + set a + } err] $err +} [list 0 foo] + +test winDde-4.4 {DDE eval locally} {stdio pcOnly} { + list [catch { + set a "" + set child [createChildProcess child] + set a [dde eval child set a "foo"] + dde execute TclEval child {set done 1} + set a + } err] $err +} [list 0 foo] + +test winDde-5.1 {check for bad arguments} {pcOnly} { + catch {dde execute "" "" "" ""} result + set result +} {wrong # args: should be "dde execute ?-async? serviceName topicName value"} + +test winDde-5.2 {check for bad arguments} {pcOnly} { + catch {dde execute "" "" ""} result + set result +} {cannot execute null data} + +test winDde-5.3 {check for bad arguments} {pcOnly} { + catch {dde execute -foo "" "" ""} result + set result +} {wrong # args: should be "dde execute ?-async? serviceName topicName value"} + +test winDde-5.4 {DDE eval bad arguments} {pcOnly} { + list [catch {dde eval "" "foo"} msg] $msg +} {1 {invalid service name ""}} + +#cleanup +file delete -force $::scriptName +::tcltest::cleanupTests +return