Tcl Source Code

Check-in [dc921b725e]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Test cases for DDE package.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | core-8-1-branch-old
Files: files | file ages | folders
SHA1: dc921b725ec0347ece676f60dcc0985cb76d573c
User & Date: redman 1999-04-03 02:27:44
Context
1999-04-03
03:02
removed windows-tk restriction on code that forked another shell--able to make this change because b... check-in: 03e6eecd77 user: hershey tags: core-8-1-branch-old
02:27
Test cases for DDE package. check-in: dc921b725e user: redman tags: core-8-1-branch-old
01:46
Change log entry for Tcl_ConditionNotify and Tcl_ConditionWait check-in: 523bfb774e user: welch tags: core-8-1-branch-old
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Added tests/winDde.test.
















































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# 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.1.2.1 1999/04/03 02:27:44 redman Exp $

if {[lsearch [namespace children] ::tcltest] == -1} {
    source [file join [pwd] [file dirname [info script]] defs.tcl]
}

if {$tcl_platform(platform) == "windows"} {
    if [catch {
	set lib [lindex [glob [file join [pwd] [file dirname \
		[info nameofexecutable]] tcldde*.dll]] 0]
	load $lib dde
    }] {
	puts "Unable to find the dde package. Skipping registry tests."
	::tcltest::cleanupTests
	return
    }
}

set scriptName script1.tcl


proc createChildProcess { ddeServerName } {
    
    file delete -force $::scriptName
    
    set f [open $::scriptName w+]
    puts $f {
	if [catch {
	    set lib [lindex [glob [file join [pwd] [file dirname \
		    [info nameofexecutable]] tcldde*.dll]] 0]
	    load $lib dde
	}] {
	    puts "Unable to find the dde package. Skipping registry tests."
	    ::tcltest::cleanupTests
	    return
	}
    }
    puts $f "dde servername $ddeServerName"
    puts $f {
	puts ready
	vwait done
	update
	exit
    }
    close $f
    
    set f [open "|$::tcltest $::scriptName" r]
    gets $f
    return $f
}

test winDde-1.1 {Settings the server's topic name} {
    list [dde servername foobar] [dde servername] [dde servername self]
}  {foobar foobar self}

test winDde-2.1 {Checking for other services} {
    expr [llength [dde services {} {}]] >= 0
} 1

test winDde-2.2 {Checking for existence in services list, with service and
topic specified} {
    llength [dde services TclEval self]
} 1

test winDde-2.3 {Checking for existence n services list, with only the service
specified} {
    expr [llength [dde services TclEval {}]] >= 1
} 1

test winDde-3.1 {DDE execute locally} {
    set a ""
    dde execute TclEval self {set a "foo"}
    set a
} foo

test winDde-3.2 {DDE execute -async locally} {
    set a ""
    dde execute -async TclEval self {set a "foo"}
    update
    set a
} foo

test winDde-3.3 {DDE request locally} {
    set a ""
    dde execute TclEval self {set a "foo"}
    dde request TclEval self a
} foo

test winDde-3.4 {DDE eval locally} {
    set a ""
    dde eval self set a "foo"
} foo

test winDde-4.1 {DDE execute remotely} {
    set a ""
    set child [createChildProcess child]
    dde execute TclEval child {set a "foo"}

    dde execute TclEval child {set done 1}

    set a
} ""

test winDde-4.2 {DDE execute remotely} {
    set a ""
    set child [createChildProcess child]
    dde execute -async TclEval child {set a "foo"}

    dde execute TclEval child {set done 1}

    set a
} ""

test winDde-4.3 {DDE request locally} {
    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
} foo

test winDde-4.4 {DDE eval locally} {
    set a ""
    set child [createChildProcess child]
    set a [dde eval child set a "foo"]

    dde execute TclEval child {set done 1}

    set a
} foo


#cleanup
file delete -force $::scriptName
::tcltest::cleanupTests
return