Tcl Source Code

Artifact [51b1b45272]
Login

Artifact 51b1b45272e5450c5b3eb49a98a3871784a14a55:

Attachment "patch.txt" to ticket [926088ffff] added by davygrvy 2004-10-27 04:32:49.
*** tests/registry.test	23 Jun 2004 15:36:58 -0000	1.17
--- tests/registry.test	26 Oct 2004 21:15:17 -0000
***************
*** 19,30 ****
  
  if {$tcl_platform(platform) == "windows"} {
      if [catch {
! 	set lib [lindex [glob -directory [file join [pwd] [file dirname \
! 		[info nameofexecutable]]] tclreg*.dll] 0]
! 	load $lib registry
      }] {
! 	puts "Unable to find the registry package. Skipping registry tests."
! 	return
      }
  }
  
--- 19,29 ----
  
  if {$tcl_platform(platform) == "windows"} {
      if [catch {
! 	::tcltest::loadTestedCommands
! 	load $::reglib Registry
! 	::tcltest::testConstraint reg 1
      }] {
! 	::tcltest::testConstraint reg 0
      }
  }
  
***************
*** 35,153 ****
  
  set hostname [info hostname]
  
! test registry-1.1 {argument parsing for registry command} {win} {
      list [catch {registry} msg] $msg
  } {1 {wrong # args: should be "registry option ?arg arg ...?"}}
! test registry-1.2 {argument parsing for registry command} {win} {
      list [catch {registry foo} msg] $msg
  } {1 {bad option "foo": must be broadcast, delete, get, keys, set, type, or values}}
  
! test registry-1.3 {argument parsing for registry command} {win} {
      list [catch {registry d} msg] $msg
  } {1 {wrong # args: should be "registry delete keyName ?valueName?"}}
! test registry-1.4 {argument parsing for registry command} {win} {
      list [catch {registry delete} msg] $msg
  } {1 {wrong # args: should be "registry delete keyName ?valueName?"}}
! test registry-1.5 {argument parsing for registry command} {win} {
      list [catch {registry delete foo bar baz} msg] $msg
  } {1 {wrong # args: should be "registry delete keyName ?valueName?"}}
  
! test registry-1.6 {argument parsing for registry command} {win} {
      list [catch {registry g} msg] $msg
  } {1 {wrong # args: should be "registry get keyName valueName"}}
! test registry-1.7 {argument parsing for registry command} {win} {
      list [catch {registry get} msg] $msg
  } {1 {wrong # args: should be "registry get keyName valueName"}}
! test registry-1.8 {argument parsing for registry command} {win} {
      list [catch {registry get foo} msg] $msg
  } {1 {wrong # args: should be "registry get keyName valueName"}}
! test registry-1.9 {argument parsing for registry command} {win} {
      list [catch {registry get foo bar baz} msg] $msg
  } {1 {wrong # args: should be "registry get keyName valueName"}}
  
! test registry-1.10 {argument parsing for registry command} {win} {
      list [catch {registry k} msg] $msg
  } {1 {wrong # args: should be "registry keys keyName ?pattern?"}}
! test registry-1.11 {argument parsing for registry command} {win} {
      list [catch {registry keys} msg] $msg
  } {1 {wrong # args: should be "registry keys keyName ?pattern?"}}
! test registry-1.12 {argument parsing for registry command} {win} {
      list [catch {registry keys foo bar baz} msg] $msg
  } {1 {wrong # args: should be "registry keys keyName ?pattern?"}}
  
! test registry-1.13 {argument parsing for registry command} {win} {
      list [catch {registry s} msg] $msg
  } {1 {wrong # args: should be "registry set keyName ?valueName data ?type??"}}
! test registry-1.14 {argument parsing for registry command} {win} {
      list [catch {registry set} msg] $msg
  } {1 {wrong # args: should be "registry set keyName ?valueName data ?type??"}}
! test registry-1.15 {argument parsing for registry command} {win} {
      list [catch {registry set foo bar} msg] $msg
  } {1 {wrong # args: should be "registry set keyName ?valueName data ?type??"}}
! test registry-1.16 {argument parsing for registry command} {win} {
      list [catch {registry set foo bar baz blat gorp} msg] $msg
  } {1 {wrong # args: should be "registry set keyName ?valueName data ?type??"}}
  
! test registry-1.17 {argument parsing for registry command} {win} {
      list [catch {registry t} msg] $msg
  } {1 {wrong # args: should be "registry type keyName valueName"}}
! test registry-1.18 {argument parsing for registry command} {win} {
      list [catch {registry type} msg] $msg
  } {1 {wrong # args: should be "registry type keyName valueName"}}
! test registry-1.19 {argument parsing for registry command} {win} {
      list [catch {registry type foo} msg] $msg
  } {1 {wrong # args: should be "registry type keyName valueName"}}
! test registry-1.20 {argument parsing for registry command} {win} {
      list [catch {registry type foo bar baz} msg] $msg
  } {1 {wrong # args: should be "registry type keyName valueName"}}
  
! test registry-1.21 {argument parsing for registry command} {win} {
      list [catch {registry v} msg] $msg
  } {1 {wrong # args: should be "registry values keyName ?pattern?"}}
! test registry-1.22 {argument parsing for registry command} {win} {
      list [catch {registry values} msg] $msg
  } {1 {wrong # args: should be "registry values keyName ?pattern?"}}
! test registry-1.23 {argument parsing for registry command} {win} {
      list [catch {registry values foo bar baz} msg] $msg
  } {1 {wrong # args: should be "registry values keyName ?pattern?"}}
  
! test registry-2.1 {DeleteKey: bad key} {win} {
      list [catch {registry delete foo} msg] $msg
  } {1 {bad root name "foo": must be HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_CURRENT_CONFIG, HKEY_PERFORMANCE_DATA, or HKEY_DYN_DATA}}
! test registry-2.2 {DeleteKey: bad key} {win} {
      list [catch {registry delete HKEY_CLASSES_ROOT} msg] $msg
  } {1 {bad key: cannot delete root keys}}
! test registry-2.3 {DeleteKey: bad key} {win} {
      list [catch {registry delete HKEY_CLASSES_ROOT\\} msg] $msg
  } {1 {bad key: cannot delete root keys}}
! test registry-2.4 {DeleteKey: subkey at root level} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry keys HKEY_CLASSES_ROOT TclFoobar
  } {}
! test registry-2.5 {DeleteKey: subkey below root level} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test
      registry delete HKEY_CLASSES_ROOT\\TclFoobar\\test
      set result [registry keys HKEY_CLASSES_ROOT TclFoobar\\test]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {}
! test registry-2.6 {DeleteKey: recursive delete} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test1
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test2\\test3
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result [registry keys HKEY_CLASSES_ROOT TclFoobar]
      set result
  } {}
! test registry-2.7 {DeleteKey: trailing backslashes} {win english} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz
      list [catch {registry delete HKEY_CLASSES_ROOT\\TclFoobar\\} msg] $msg
  } {1 {unable to delete key: The configuration registry key is invalid.}}
! test registry-2.8 {DeleteKey: failure} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
  } {}
! test registry-2.9 {DeleteKey: unicode} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test\u00c7bar\\a
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test\u00c7bar\\b
--- 34,152 ----
  
  set hostname [info hostname]
  
! test registry-1.1 {argument parsing for registry command} {win reg} {
      list [catch {registry} msg] $msg
  } {1 {wrong # args: should be "registry option ?arg arg ...?"}}
! test registry-1.2 {argument parsing for registry command} {win reg} {
      list [catch {registry foo} msg] $msg
  } {1 {bad option "foo": must be broadcast, delete, get, keys, set, type, or values}}
  
! test registry-1.3 {argument parsing for registry command} {win reg} {
      list [catch {registry d} msg] $msg
  } {1 {wrong # args: should be "registry delete keyName ?valueName?"}}
! test registry-1.4 {argument parsing for registry command} {win reg} {
      list [catch {registry delete} msg] $msg
  } {1 {wrong # args: should be "registry delete keyName ?valueName?"}}
! test registry-1.5 {argument parsing for registry command} {win reg} {
      list [catch {registry delete foo bar baz} msg] $msg
  } {1 {wrong # args: should be "registry delete keyName ?valueName?"}}
  
! test registry-1.6 {argument parsing for registry command} {win reg} {
      list [catch {registry g} msg] $msg
  } {1 {wrong # args: should be "registry get keyName valueName"}}
! test registry-1.7 {argument parsing for registry command} {win reg} {
      list [catch {registry get} msg] $msg
  } {1 {wrong # args: should be "registry get keyName valueName"}}
! test registry-1.8 {argument parsing for registry command} {win reg} {
      list [catch {registry get foo} msg] $msg
  } {1 {wrong # args: should be "registry get keyName valueName"}}
! test registry-1.9 {argument parsing for registry command} {win reg} {
      list [catch {registry get foo bar baz} msg] $msg
  } {1 {wrong # args: should be "registry get keyName valueName"}}
  
! test registry-1.10 {argument parsing for registry command} {win reg} {
      list [catch {registry k} msg] $msg
  } {1 {wrong # args: should be "registry keys keyName ?pattern?"}}
! test registry-1.11 {argument parsing for registry command} {win reg} {
      list [catch {registry keys} msg] $msg
  } {1 {wrong # args: should be "registry keys keyName ?pattern?"}}
! test registry-1.12 {argument parsing for registry command} {win reg} {
      list [catch {registry keys foo bar baz} msg] $msg
  } {1 {wrong # args: should be "registry keys keyName ?pattern?"}}
  
! test registry-1.13 {argument parsing for registry command} {win reg} {
      list [catch {registry s} msg] $msg
  } {1 {wrong # args: should be "registry set keyName ?valueName data ?type??"}}
! test registry-1.14 {argument parsing for registry command} {win reg} {
      list [catch {registry set} msg] $msg
  } {1 {wrong # args: should be "registry set keyName ?valueName data ?type??"}}
! test registry-1.15 {argument parsing for registry command} {win reg} {
      list [catch {registry set foo bar} msg] $msg
  } {1 {wrong # args: should be "registry set keyName ?valueName data ?type??"}}
! test registry-1.16 {argument parsing for registry command} {win reg} {
      list [catch {registry set foo bar baz blat gorp} msg] $msg
  } {1 {wrong # args: should be "registry set keyName ?valueName data ?type??"}}
  
! test registry-1.17 {argument parsing for registry command} {win reg} {
      list [catch {registry t} msg] $msg
  } {1 {wrong # args: should be "registry type keyName valueName"}}
! test registry-1.18 {argument parsing for registry command} {win reg} {
      list [catch {registry type} msg] $msg
  } {1 {wrong # args: should be "registry type keyName valueName"}}
! test registry-1.19 {argument parsing for registry command} {win reg} {
      list [catch {registry type foo} msg] $msg
  } {1 {wrong # args: should be "registry type keyName valueName"}}
! test registry-1.20 {argument parsing for registry command} {win reg} {
      list [catch {registry type foo bar baz} msg] $msg
  } {1 {wrong # args: should be "registry type keyName valueName"}}
  
! test registry-1.21 {argument parsing for registry command} {win reg} {
      list [catch {registry v} msg] $msg
  } {1 {wrong # args: should be "registry values keyName ?pattern?"}}
! test registry-1.22 {argument parsing for registry command} {win reg} {
      list [catch {registry values} msg] $msg
  } {1 {wrong # args: should be "registry values keyName ?pattern?"}}
! test registry-1.23 {argument parsing for registry command} {win reg} {
      list [catch {registry values foo bar baz} msg] $msg
  } {1 {wrong # args: should be "registry values keyName ?pattern?"}}
  
! test registry-2.1 {DeleteKey: bad key} {win reg} {
      list [catch {registry delete foo} msg] $msg
  } {1 {bad root name "foo": must be HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_CURRENT_CONFIG, HKEY_PERFORMANCE_DATA, or HKEY_DYN_DATA}}
! test registry-2.2 {DeleteKey: bad key} {win reg} {
      list [catch {registry delete HKEY_CLASSES_ROOT} msg] $msg
  } {1 {bad key: cannot delete root keys}}
! test registry-2.3 {DeleteKey: bad key} {win reg} {
      list [catch {registry delete HKEY_CLASSES_ROOT\\} msg] $msg
  } {1 {bad key: cannot delete root keys}}
! test registry-2.4 {DeleteKey: subkey at root level} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry keys HKEY_CLASSES_ROOT TclFoobar
  } {}
! test registry-2.5 {DeleteKey: subkey below root level} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test
      registry delete HKEY_CLASSES_ROOT\\TclFoobar\\test
      set result [registry keys HKEY_CLASSES_ROOT TclFoobar\\test]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {}
! test registry-2.6 {DeleteKey: recursive delete} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test1
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test2\\test3
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result [registry keys HKEY_CLASSES_ROOT TclFoobar]
      set result
  } {}
! test registry-2.7 {DeleteKey: trailing backslashes} {win reg english} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz
      list [catch {registry delete HKEY_CLASSES_ROOT\\TclFoobar\\} msg] $msg
  } {1 {unable to delete key: The configuration registry key is invalid.}}
! test registry-2.8 {DeleteKey: failure} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
  } {}
! test registry-2.9 {DeleteKey: unicode} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test\u00c7bar\\a
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test\u00c7bar\\b
***************
*** 157,163 ****
      set result
  } {}
  
! test registry-3.1 {DeleteValue} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz test1 blort
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz test2 blat
--- 156,162 ----
      set result
  } {}
  
! test registry-3.1 {DeleteValue} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz test1 blort
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz test2 blat
***************
*** 166,183 ****
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } test2
! test registry-3.2 {DeleteValue: bad key} {win english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry delete HKEY_CLASSES_ROOT\\TclFoobar test} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
! test registry-3.3 {DeleteValue: bad value} {win english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz test2 blort
      set result [list [catch {registry delete HKEY_CLASSES_ROOT\\TclFoobar test1} msg] $msg]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {1 {unable to delete value "test1" from key "HKEY_CLASSES_ROOT\TclFoobar": The system cannot find the file specified.}}
! test registry-3.4 {DeleteValue: Unicode} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\\u00c7baz \u00c7test1 blort
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\\u00c7baz test2 blat
--- 165,182 ----
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } test2
! test registry-3.2 {DeleteValue: bad key} {win reg english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry delete HKEY_CLASSES_ROOT\\TclFoobar test} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
! test registry-3.3 {DeleteValue: bad value} {win reg english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz test2 blort
      set result [list [catch {registry delete HKEY_CLASSES_ROOT\\TclFoobar test1} msg] $msg]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {1 {unable to delete value "test1" from key "HKEY_CLASSES_ROOT\TclFoobar": The system cannot find the file specified.}}
! test registry-3.4 {DeleteValue: Unicode} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\\u00c7baz \u00c7test1 blort
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\\u00c7baz test2 blat
***************
*** 187,217 ****
      set result
  } test2
  
! test registry-4.1 {GetKeyNames: bad key} {win english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry keys HKEY_CLASSES_ROOT\\TclFoobar} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
! test registry-4.2 {GetKeyNames} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz
      set result [registry keys HKEY_CLASSES_ROOT\\TclFoobar]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {baz}
! test registry-4.3 {GetKeyNames: remote key} {win nonPortable english} {
      registry set \\\\$hostname\\HKEY_CLASSES_ROOT\\TclFoobar\\baz
      set result [registry keys \\\\gaspode\\HKEY_CLASSES_ROOT\\TclFoobar]
      registry delete \\\\$hostname\\HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {baz}
! test registry-4.4 {GetKeyNames: empty key} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar
      set result [registry keys HKEY_CLASSES_ROOT\\TclFoobar]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {}
! test registry-4.5 {GetKeyNames: patterns} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\blat
--- 186,216 ----
      set result
  } test2
  
! test registry-4.1 {GetKeyNames: bad key} {win reg english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry keys HKEY_CLASSES_ROOT\\TclFoobar} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
! test registry-4.2 {GetKeyNames} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz
      set result [registry keys HKEY_CLASSES_ROOT\\TclFoobar]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {baz}
! test registry-4.3 {GetKeyNames: remote key} {win reg nonPortable english} {
      registry set \\\\$hostname\\HKEY_CLASSES_ROOT\\TclFoobar\\baz
      set result [registry keys \\\\gaspode\\HKEY_CLASSES_ROOT\\TclFoobar]
      registry delete \\\\$hostname\\HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {baz}
! test registry-4.4 {GetKeyNames: empty key} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar
      set result [registry keys HKEY_CLASSES_ROOT\\TclFoobar]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {}
! test registry-4.5 {GetKeyNames: patterns} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\blat
***************
*** 220,226 ****
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {baz blat}
! test registry-4.6 {GetKeyNames: names with spaces} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz\ bar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\blat
--- 219,225 ----
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {baz blat}
! test registry-4.6 {GetKeyNames: names with spaces} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz\ bar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\blat
***************
*** 229,235 ****
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {{baz bar} blat}
! test registry-4.7 {GetKeyNames: Unicode} {win english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz\u00c7bar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\blat
--- 228,234 ----
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {{baz bar} blat}
! test registry-4.7 {GetKeyNames: Unicode} {win reg english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz\u00c7bar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\blat
***************
*** 238,244 ****
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } "baz\u00c7bar blat"
! test registry-4.8 {GetKeyNames: Unicode} {win nt} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz\u30b7bar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\blat
--- 237,243 ----
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } "baz\u00c7bar blat"
! test registry-4.8 {GetKeyNames: Unicode} {win reg nt} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz\u30b7bar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\blat
***************
*** 248,464 ****
      set result
  } "baz\u30b7bar blat"
  
! test registry-5.1 {GetType} {win english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry type HKEY_CLASSES_ROOT\\TclFoobar val1} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
! test registry-5.2 {GetType} {win english} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry type HKEY_CLASSES_ROOT\\TclFoobar val1} msg] $msg
  } {1 {unable to get type of value "val1" from key "HKEY_CLASSES_ROOT\TclFoobar": The system cannot find the file specified.}}
! test registry-5.3 {GetType} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar none
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } none
! test registry-5.4 {GetType} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } sz
! test registry-5.5 {GetType} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar sz
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } sz
! test registry-5.6 {GetType} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar expand_sz
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } expand_sz
! test registry-5.7 {GetType} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 binary
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } binary
! test registry-5.8 {GetType} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 dword
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } dword
! test registry-5.9 {GetType} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 dword_big_endian
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } dword_big_endian
! test registry-5.10 {GetType} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 link
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } link
! test registry-5.11 {GetType} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar multi_sz
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } multi_sz
! test registry-5.12 {GetType} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 resource_list
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } resource_list
! test registry-5.13 {GetType: unknown types} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 24
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 24
! test registry-5.14 {GetType: Unicode} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar va\u00c7l1 1 24
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar va\u00c7l1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 24
  
! test registry-6.1 {GetValue} {win english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry get HKEY_CLASSES_ROOT\\TclFoobar val1} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
! test registry-6.2 {GetValue} {win english} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry get HKEY_CLASSES_ROOT\\TclFoobar val1} msg] $msg
  } {1 {unable to get value "val1" from key "HKEY_CLASSES_ROOT\TclFoobar": The system cannot find the file specified.}}
! test registry-6.3 {GetValue} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar none
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } foobar
! test registry-6.4 {GetValue} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } foobar
! test registry-6.5 {GetValue} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } foobar
! test registry-6.6 {GetValue} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar expand_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } foobar
! test registry-6.7 {GetValue} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 binary
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 1
! test registry-6.8 {GetValue} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 0x20 dword
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 32
! test registry-6.9 {GetValue} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 0x20 dword_big_endian
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 32
! test registry-6.10 {GetValue} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 link
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 1
! test registry-6.11 {GetValue} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } foobar
! test registry-6.12 {GetValue} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 {foo\ bar baz} multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {{foo bar} baz}
! test registry-6.13 {GetValue} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 {} multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {}
  test registry-6.14 {GetValue: truncation of multivalues with null elements} \
! 	{win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 {a {} b} multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } a
! test registry-6.15 {GetValue} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 resource_list
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 1
! test registry-6.16 {GetValue: unknown types} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 24
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 1
! test registry-6.17 {GetValue: Unicode value names} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val\u00c71 foobar multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val\u00c71]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } foobar
! test registry-6.18 {GetValue: values with Unicode strings} {win nt} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 {foo ba\u30b7r baz} multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } "foo ba\u30b7r baz"
! test registry-6.19 {GetValue: values with Unicode strings} {win english} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 {foo ba\u00c7r baz} multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } "foo ba\u00c7r baz"
! test registry-6.20 {GetValue: values with Unicode strings with embedded nulls} {win} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 {foo ba\u0000r baz} multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } "foo ba r baz"
  
! test registry-7.1 {GetValueNames: bad key} {win english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry values HKEY_CLASSES_ROOT\\TclFoobar} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
! test registry-7.2 {GetValueNames} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar baz foobar
      set result [registry values HKEY_CLASSES_ROOT\\TclFoobar]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } baz
! test registry-7.3 {GetValueNames} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar baz foobar1
      registry set HKEY_CLASSES_ROOT\\TclFoobar blat foobar2
--- 247,463 ----
      set result
  } "baz\u30b7bar blat"
  
! test registry-5.1 {GetType} {win reg english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry type HKEY_CLASSES_ROOT\\TclFoobar val1} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
! test registry-5.2 {GetType} {win reg english} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry type HKEY_CLASSES_ROOT\\TclFoobar val1} msg] $msg
  } {1 {unable to get type of value "val1" from key "HKEY_CLASSES_ROOT\TclFoobar": The system cannot find the file specified.}}
! test registry-5.3 {GetType} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar none
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } none
! test registry-5.4 {GetType} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } sz
! test registry-5.5 {GetType} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar sz
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } sz
! test registry-5.6 {GetType} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar expand_sz
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } expand_sz
! test registry-5.7 {GetType} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 binary
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } binary
! test registry-5.8 {GetType} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 dword
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } dword
! test registry-5.9 {GetType} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 dword_big_endian
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } dword_big_endian
! test registry-5.10 {GetType} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 link
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } link
! test registry-5.11 {GetType} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar multi_sz
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } multi_sz
! test registry-5.12 {GetType} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 resource_list
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } resource_list
! test registry-5.13 {GetType: unknown types} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 24
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 24
! test registry-5.14 {GetType: Unicode} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar va\u00c7l1 1 24
      set result [registry type HKEY_CLASSES_ROOT\\TclFoobar va\u00c7l1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 24
  
! test registry-6.1 {GetValue} {win reg english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry get HKEY_CLASSES_ROOT\\TclFoobar val1} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
! test registry-6.2 {GetValue} {win reg english} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry get HKEY_CLASSES_ROOT\\TclFoobar val1} msg] $msg
  } {1 {unable to get value "val1" from key "HKEY_CLASSES_ROOT\TclFoobar": The system cannot find the file specified.}}
! test registry-6.3 {GetValue} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar none
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } foobar
! test registry-6.4 {GetValue} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } foobar
! test registry-6.5 {GetValue} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } foobar
! test registry-6.6 {GetValue} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar expand_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } foobar
! test registry-6.7 {GetValue} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 binary
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 1
! test registry-6.8 {GetValue} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 0x20 dword
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 32
! test registry-6.9 {GetValue} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 0x20 dword_big_endian
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 32
! test registry-6.10 {GetValue} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 link
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 1
! test registry-6.11 {GetValue} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 foobar multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } foobar
! test registry-6.12 {GetValue} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 {foo\ bar baz} multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {{foo bar} baz}
! test registry-6.13 {GetValue} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 {} multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {}
  test registry-6.14 {GetValue: truncation of multivalues with null elements} \
! 	{win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 {a {} b} multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } a
! test registry-6.15 {GetValue} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 resource_list
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 1
! test registry-6.16 {GetValue: unknown types} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 1 24
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } 1
! test registry-6.17 {GetValue: Unicode value names} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val\u00c71 foobar multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val\u00c71]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } foobar
! test registry-6.18 {GetValue: values with Unicode strings} {win reg nt} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 {foo ba\u30b7r baz} multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } "foo ba\u30b7r baz"
! test registry-6.19 {GetValue: values with Unicode strings} {win reg english} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 {foo ba\u00c7r baz} multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } "foo ba\u00c7r baz"
! test registry-6.20 {GetValue: values with Unicode strings with embedded nulls} {win reg} {
      registry set HKEY_CLASSES_ROOT\\TclFoobar val1 {foo ba\u0000r baz} multi_sz
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar val1]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } "foo ba r baz"
  
! test registry-7.1 {GetValueNames: bad key} {win reg english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry values HKEY_CLASSES_ROOT\\TclFoobar} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
! test registry-7.2 {GetValueNames} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar baz foobar
      set result [registry values HKEY_CLASSES_ROOT\\TclFoobar]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } baz
! test registry-7.3 {GetValueNames} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar baz foobar1
      registry set HKEY_CLASSES_ROOT\\TclFoobar blat foobar2
***************
*** 467,486 ****
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {{} baz blat}
! test registry-7.4 {GetValueNames: remote key} {win nonPortable english} {
      registry set \\\\$hostname\\HKEY_CLASSES_ROOT\\TclFoobar baz blat
      set result [registry values \\\\$hostname\\HKEY_CLASSES_ROOT\\TclFoobar]
      registry delete \\\\$hostname\\HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } baz
! test registry-7.5 {GetValueNames: empty key} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar
      set result [registry values HKEY_CLASSES_ROOT\\TclFoobar]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {}
! test registry-7.6 {GetValueNames: patterns} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar baz foobar1
      registry set HKEY_CLASSES_ROOT\\TclFoobar blat foobar2
--- 466,485 ----
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {{} baz blat}
! test registry-7.4 {GetValueNames: remote key} {win reg nonPortable english} {
      registry set \\\\$hostname\\HKEY_CLASSES_ROOT\\TclFoobar baz blat
      set result [registry values \\\\$hostname\\HKEY_CLASSES_ROOT\\TclFoobar]
      registry delete \\\\$hostname\\HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } baz
! test registry-7.5 {GetValueNames: empty key} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar
      set result [registry values HKEY_CLASSES_ROOT\\TclFoobar]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {}
! test registry-7.6 {GetValueNames: patterns} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar baz foobar1
      registry set HKEY_CLASSES_ROOT\\TclFoobar blat foobar2
***************
*** 489,495 ****
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {baz blat}
! test registry-7.7 {GetValueNames: names with spaces} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar baz\ bar foobar1
      registry set HKEY_CLASSES_ROOT\\TclFoobar blat foobar2
--- 488,494 ----
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } {baz blat}
! test registry-7.7 {GetValueNames: names with spaces} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar baz\ bar foobar1
      registry set HKEY_CLASSES_ROOT\\TclFoobar blat foobar2
***************
*** 499,550 ****
      set result
  } {{baz bar} blat}
  
! test registry-8.1 {OpenSubKey} {win nonPortable english} {
      # This test will only succeed if the current user does not have registry
      # access on the specified machine.
      list [catch {registry keys {\\mom\HKEY_LOCAL_MACHINE}} msg] $msg
  } {1 {unable to open key: Access is denied.}}
! test registry-8.2 {OpenSubKey} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar
      set result [registry keys HKEY_CLASSES_ROOT TclFoobar]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } TclFoobar
! test registry-8.3 {OpenSubKey} {win english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry keys HKEY_CLASSES_ROOT\\TclFoobar} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
  
! test registry-9.1 {ParseKeyName: bad keys} {win} {
      list [catch {registry values \\} msg] $msg
  } "1 {bad key \"\\\": must start with a valid root}"
! test registry-9.2 {ParseKeyName: bad keys} {win} {
      list [catch {registry values \\foobar} msg] $msg
  } {1 {bad key "\foobar": must start with a valid root}}
! test registry-9.3 {ParseKeyName: bad keys} {win} {
      list [catch {registry values \\\\} msg] $msg
  } {1 {bad root name "": must be HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_CURRENT_CONFIG, HKEY_PERFORMANCE_DATA, or HKEY_DYN_DATA}}
! test registry-9.4 {ParseKeyName: bad keys} {win} {
      list [catch {registry values \\\\\\} msg] $msg
  } {1 {bad root name "": must be HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_CURRENT_CONFIG, HKEY_PERFORMANCE_DATA, or HKEY_DYN_DATA}}
! test registry-9.5 {ParseKeyName: bad keys} {win english nt} {
      list [catch {registry values \\\\\\HKEY_CLASSES_ROOT} msg] $msg
  } {1 {unable to open key: The network address is invalid.}}
! test registry-9.6 {ParseKeyName: bad keys} {win} {
      list [catch {registry values \\\\gaspode} msg] $msg
  } {1 {bad root name "": must be HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_CURRENT_CONFIG, HKEY_PERFORMANCE_DATA, or HKEY_DYN_DATA}}
! test registry-9.7 {ParseKeyName: bad keys} {win} {
      list [catch {registry values foobar} msg] $msg
  } {1 {bad root name "foobar": must be HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_CURRENT_CONFIG, HKEY_PERFORMANCE_DATA, or HKEY_DYN_DATA}}
! test registry-9.8 {ParseKeyName: null keys} {win} {
      list [catch {registry delete HKEY_CLASSES_ROOT\\} msg] $msg
  } {1 {bad key: cannot delete root keys}}
! test registry-9.9 {ParseKeyName: null keys} {win english} {
      list [catch {registry keys HKEY_CLASSES_ROOT\\TclFoobar\\baz} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
  
! test registry-10.1 {RecursiveDeleteKey} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test1
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test2\\test3
--- 498,549 ----
      set result
  } {{baz bar} blat}
  
! test registry-8.1 {OpenSubKey} {win reg nonPortable english} {
      # This test will only succeed if the current user does not have registry
      # access on the specified machine.
      list [catch {registry keys {\\mom\HKEY_LOCAL_MACHINE}} msg] $msg
  } {1 {unable to open key: Access is denied.}}
! test registry-8.2 {OpenSubKey} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar
      set result [registry keys HKEY_CLASSES_ROOT TclFoobar]
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      set result
  } TclFoobar
! test registry-8.3 {OpenSubKey} {win reg english} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      list [catch {registry keys HKEY_CLASSES_ROOT\\TclFoobar} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
  
! test registry-9.1 {ParseKeyName: bad keys} {win reg} {
      list [catch {registry values \\} msg] $msg
  } "1 {bad key \"\\\": must start with a valid root}"
! test registry-9.2 {ParseKeyName: bad keys} {win reg} {
      list [catch {registry values \\foobar} msg] $msg
  } {1 {bad key "\foobar": must start with a valid root}}
! test registry-9.3 {ParseKeyName: bad keys} {win reg} {
      list [catch {registry values \\\\} msg] $msg
  } {1 {bad root name "": must be HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_CURRENT_CONFIG, HKEY_PERFORMANCE_DATA, or HKEY_DYN_DATA}}
! test registry-9.4 {ParseKeyName: bad keys} {win reg} {
      list [catch {registry values \\\\\\} msg] $msg
  } {1 {bad root name "": must be HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_CURRENT_CONFIG, HKEY_PERFORMANCE_DATA, or HKEY_DYN_DATA}}
! test registry-9.5 {ParseKeyName: bad keys} {win reg english nt} {
      list [catch {registry values \\\\\\HKEY_CLASSES_ROOT} msg] $msg
  } {1 {unable to open key: The network address is invalid.}}
! test registry-9.6 {ParseKeyName: bad keys} {win reg} {
      list [catch {registry values \\\\gaspode} msg] $msg
  } {1 {bad root name "": must be HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_CURRENT_CONFIG, HKEY_PERFORMANCE_DATA, or HKEY_DYN_DATA}}
! test registry-9.7 {ParseKeyName: bad keys} {win reg} {
      list [catch {registry values foobar} msg] $msg
  } {1 {bad root name "foobar": must be HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_CURRENT_CONFIG, HKEY_PERFORMANCE_DATA, or HKEY_DYN_DATA}}
! test registry-9.8 {ParseKeyName: null keys} {win reg} {
      list [catch {registry delete HKEY_CLASSES_ROOT\\} msg] $msg
  } {1 {bad key: cannot delete root keys}}
! test registry-9.9 {ParseKeyName: null keys} {win reg english} {
      list [catch {registry keys HKEY_CLASSES_ROOT\\TclFoobar\\baz} msg] $msg
  } {1 {unable to open key: The system cannot find the file specified.}}
  
! test registry-10.1 {RecursiveDeleteKey} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test1
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test2\\test3
***************
*** 552,558 ****
      set result [registry keys HKEY_CLASSES_ROOT TclFoobar]
      set result
  } {}
! test registry-10.2 {RecursiveDeleteKey} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test1
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test2\\test3
--- 551,557 ----
      set result [registry keys HKEY_CLASSES_ROOT TclFoobar]
      set result
  } {}
! test registry-10.2 {RecursiveDeleteKey} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test1
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\test2\\test3
***************
*** 561,596 ****
      set result
  } {}
  
! test registry-11.1 {SetValue: recursive creation} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz blat foobar
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar\\baz blat]
  } foobar
! test registry-11.2 {SetValue: modification} {win} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz blat foobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz blat frob
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar\\baz blat]
  } frob
! test registry-11.3 {SetValue: failure} {win nonPortable english} {
      # This test will only succeed if the current user does not have registry
      # access on the specified machine.
      list [catch {registry set {\\mom\HKEY_CLASSES_ROOT\TclFoobar} bar foobar} msg] $msg
  } {1 {unable to open key: Access is denied.}}
  
! test registry-12.1 {BroadcastValue} {win} {
      list [catch {registry broadcast} msg] $msg
  } {1 {wrong # args: should be "registry broadcast keyName ?-timeout millisecs?"}}
! test registry-12.2 {BroadcastValue} {win} {
      list [catch {registry broadcast "" -time} msg] $msg
  } {1 {wrong # args: should be "registry broadcast keyName ?-timeout millisecs?"}}
! test registry-12.3 {BroadcastValue} {win} {
      list [catch {registry broadcast "" - 500} msg] $msg
  } {1 {wrong # args: should be "registry broadcast keyName ?-timeout millisecs?"}}
! test registry-12.4 {BroadcastValue} {win} {
      list [catch {registry broadcast {Environment}} msg] $msg
  } {0 {1 0}}
! test registry-12.5 {BroadcastValue} {win} {
      list [catch {registry b {}} msg] $msg
  } {0 {1 0}}
  
--- 560,595 ----
      set result
  } {}
  
! test registry-11.1 {SetValue: recursive creation} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz blat foobar
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar\\baz blat]
  } foobar
! test registry-11.2 {SetValue: modification} {win reg} {
      registry delete HKEY_CLASSES_ROOT\\TclFoobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz blat foobar
      registry set HKEY_CLASSES_ROOT\\TclFoobar\\baz blat frob
      set result [registry get HKEY_CLASSES_ROOT\\TclFoobar\\baz blat]
  } frob
! test registry-11.3 {SetValue: failure} {win reg nonPortable english} {
      # This test will only succeed if the current user does not have registry
      # access on the specified machine.
      list [catch {registry set {\\mom\HKEY_CLASSES_ROOT\TclFoobar} bar foobar} msg] $msg
  } {1 {unable to open key: Access is denied.}}
  
! test registry-12.1 {BroadcastValue} {win reg} {
      list [catch {registry broadcast} msg] $msg
  } {1 {wrong # args: should be "registry broadcast keyName ?-timeout millisecs?"}}
! test registry-12.2 {BroadcastValue} {win reg} {
      list [catch {registry broadcast "" -time} msg] $msg
  } {1 {wrong # args: should be "registry broadcast keyName ?-timeout millisecs?"}}
! test registry-12.3 {BroadcastValue} {win reg} {
      list [catch {registry broadcast "" - 500} msg] $msg
  } {1 {wrong # args: should be "registry broadcast keyName ?-timeout millisecs?"}}
! test registry-12.4 {BroadcastValue} {win reg} {
      list [catch {registry broadcast {Environment}} msg] $msg
  } {0 {1 0}}
! test registry-12.5 {BroadcastValue} {win reg} {
      list [catch {registry b {}} msg] $msg
  } {0 {1 0}}
  

*** tests/winDde.test	23 Jun 2004 22:45:27 -0000	1.23
--- tests/winDde.test	26 Oct 2004 21:15:31 -0000
***************
*** 19,34 ****
  
  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
! 	testConstraint dde 1
      }] {
! 	testConstraint dde 0
! 	puts "WARNING: Unable to find the dde package. Skipping dde tests."
      }
  }
  
  # -------------------------------------------------------------------------
  # Setup a script for a test server
  #
--- 19,33 ----
  
  if {$tcl_platform(platform) == "windows"} {
      if [catch {
! 	::tcltest::loadTestedCommands
! 	load $::ddelib Dde
! 	::tcltest::testConstraint dde 1
      }] {
! 	::tcltest::testConstraint dde 0
      }
  }
  
+ 
  # -------------------------------------------------------------------------
  # Setup a script for a test server
  #
***************
*** 40,45 ****
--- 39,47 ----
  
      set f [open $::scriptName w+]
      puts $f [list set ddeServerName $ddeServerName]
+     if {$::ddelib != ""} {
+ 	puts $f [list load $::ddelib Dde]
+     }
      puts $f {
          # DDE child server -
          #
***************
*** 47,63 ****
  	    package require tcltest
  	    namespace import -force ::tcltest::*
  	}
-         # Load the dde package to test.
- 	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
- 	}
          
          # If an error occurs during the tests, this process may end up not
          # being closed down. To deal with this we create a 30s timeout.
--- 49,54 ----
***************
*** 261,274 ****
  test winDde-7.1 {Load DDE in slave interpreter } -constraints {win dde} -setup {
      interp create slave
  } -body {
!     slave eval [list load $lib dde]
      slave eval [list dde servername -- dde-interp-7.1]
  } -cleanup {
      interp delete slave
  } -result {dde-interp-7.1}
  test winDde-7.2 {DDE slave cleanup} -constraints {win dde} -setup {
      interp create slave
!     slave eval [list load $lib dde]
      slave eval [list dde servername -- dde-interp-7.5]
      interp delete slave
  } -body {
--- 252,265 ----
  test winDde-7.1 {Load DDE in slave interpreter } -constraints {win dde} -setup {
      interp create slave
  } -body {
!     slave eval [list load $::ddelib Dde]
      slave eval [list dde servername -- dde-interp-7.1]
  } -cleanup {
      interp delete slave
  } -result {dde-interp-7.1}
  test winDde-7.2 {DDE slave cleanup} -constraints {win dde} -setup {
      interp create slave
!     slave eval [list load $::ddelib Dde]
      slave eval [list dde servername -- dde-interp-7.5]
      interp delete slave
  } -body {
***************
*** 281,287 ****
  } -result {}
  test winDde-7.3 {DDE present in slave interp} -constraints {win dde} -setup {
      interp create slave
!     slave eval [list load $lib dde]
      slave eval [list dde servername -- dde-interp-7.3]
  } -body {
      dde services TclEval dde-interp-7.3
--- 272,278 ----
  } -result {}
  test winDde-7.3 {DDE present in slave interp} -constraints {win dde} -setup {
      interp create slave
!     slave eval [list load $::ddelib Dde]
      slave eval [list dde servername -- dde-interp-7.3]
  } -body {
      dde services TclEval dde-interp-7.3
***************
*** 290,296 ****
  } -result {{TclEval dde-interp-7.3}}
  test winDde-7.4 {interp name collision with -force} -constraints {win dde} -setup {
      interp create slave
!     slave eval [list load $lib dde]
      slave eval [list dde servername -- dde-interp-7.4]
  } -body {
      dde servername -force -- dde-interp-7.4
--- 281,287 ----
  } -result {{TclEval dde-interp-7.3}}
  test winDde-7.4 {interp name collision with -force} -constraints {win dde} -setup {
      interp create slave
!     slave eval [list load $::ddelib Dde]
      slave eval [list dde servername -- dde-interp-7.4]
  } -body {
      dde servername -force -- dde-interp-7.4
***************
*** 299,305 ****
  } -result {dde-interp-7.4}
  test winDde-7.5 {interp name collision without -force} -constraints {win dde} -setup {
      interp create slave
!     slave eval [list load $lib dde]
      slave eval [list dde servername -- dde-interp-7.5]
  } -body {
      dde servername -- dde-interp-7.5
--- 290,296 ----
  } -result {dde-interp-7.4}
  test winDde-7.5 {interp name collision without -force} -constraints {win dde} -setup {
      interp create slave
!     slave eval [list load $::ddelib Dde]
      slave eval [list dde servername -- dde-interp-7.5]
  } -body {
      dde servername -- dde-interp-7.5
***************
*** 311,317 ****
  
  test winDde-8.1 {Safe DDE load} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $lib dde
  } -body {
      list [catch {slave eval dde servername slave} msg] $msg
  } -cleanup {
--- 302,308 ----
  
  test winDde-8.1 {Safe DDE load} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $::ddelib Dde
  } -body {
      list [catch {slave eval dde servername slave} msg] $msg
  } -cleanup {
***************
*** 319,338 ****
  } -result {1 {invalid command name "dde"}}
  test winDde-8.2 {Safe DDE set servername} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $lib dde
  } -body {
      slave invokehidden dde servername slave
  } -cleanup {interp delete slave} -result {slave}
  test winDde-8.3 {Safe DDE check handler required for eval} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $lib dde
      slave invokehidden dde servername slave
  } -body {
      catch {dde eval slave set a 1} msg
  } -cleanup {interp delete slave} -result {1}
  test winDde-8.4 {Safe DDE check that execute is denied} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $lib dde
      slave invokehidden dde servername slave
  } -body {
      slave eval set a 1
--- 310,329 ----
  } -result {1 {invalid command name "dde"}}
  test winDde-8.2 {Safe DDE set servername} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $::ddelib Dde
  } -body {
      slave invokehidden dde servername slave
  } -cleanup {interp delete slave} -result {slave}
  test winDde-8.3 {Safe DDE check handler required for eval} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $::ddelib Dde
      slave invokehidden dde servername slave
  } -body {
      catch {dde eval slave set a 1} msg
  } -cleanup {interp delete slave} -result {1}
  test winDde-8.4 {Safe DDE check that execute is denied} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $::ddelib Dde
      slave invokehidden dde servername slave
  } -body {
      slave eval set a 1
***************
*** 343,349 ****
  } -cleanup {interp delete slave} -result {0 1}
  test winDde-8.5 {Safe DDE check that request is denied} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $lib dde
      slave invokehidden dde servername slave
  } -body {
      slave eval set a 1
--- 334,340 ----
  } -cleanup {interp delete slave} -result {0 1}
  test winDde-8.5 {Safe DDE check that request is denied} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $::ddelib Dde
      slave invokehidden dde servername slave
  } -body {
      slave eval set a 1
***************
*** 353,366 ****
  } -result {1 {remote server cannot handle this command}}
  test winDde-8.6 {Safe DDE assign handler procedure} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $lib dde
      slave eval {proc DDEACCEPT {cmd} {set ::DDECMD $cmd}}
  } -body {
      slave invokehidden dde servername -handler DDEACCEPT slave
  } -cleanup {interp delete slave} -result slave
  test winDde-8.7 {Safe DDE check simple command} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $lib dde
      slave eval {proc DDEACCEPT {cmd} {set ::DDECMD $cmd}}
      slave invokehidden dde servername -handler DDEACCEPT slave
  } -body {
--- 344,357 ----
  } -result {1 {remote server cannot handle this command}}
  test winDde-8.6 {Safe DDE assign handler procedure} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $::ddelib Dde
      slave eval {proc DDEACCEPT {cmd} {set ::DDECMD $cmd}}
  } -body {
      slave invokehidden dde servername -handler DDEACCEPT slave
  } -cleanup {interp delete slave} -result slave
  test winDde-8.7 {Safe DDE check simple command} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $::ddelib Dde
      slave eval {proc DDEACCEPT {cmd} {set ::DDECMD $cmd}}
      slave invokehidden dde servername -handler DDEACCEPT slave
  } -body {
***************
*** 370,376 ****
  } -cleanup {interp delete slave} -result {0 {set x 1}}
  test winDde-8.8 {Safe DDE check non-list command} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $lib dde
      slave eval {proc DDEACCEPT {cmd} {set ::DDECMD $cmd}}
      slave invokehidden dde servername -handler DDEACCEPT slave
  } -body {
--- 361,367 ----
  } -cleanup {interp delete slave} -result {0 {set x 1}}
  test winDde-8.8 {Safe DDE check non-list command} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $::ddelib Dde
      slave eval {proc DDEACCEPT {cmd} {set ::DDECMD $cmd}}
      slave invokehidden dde servername -handler DDEACCEPT slave
  } -body {
***************
*** 382,388 ****
  } -cleanup {interp delete slave} -result {0 0}
  test winDde-8.9 {Safe DDE check command evaluation} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $lib dde
      slave eval {proc DDEACCEPT {cmd} {set ::DDECMD [uplevel \#0 $cmd]}}
      slave invokehidden dde servername -handler DDEACCEPT slave
  } -body {
--- 373,379 ----
  } -cleanup {interp delete slave} -result {0 0}
  test winDde-8.9 {Safe DDE check command evaluation} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $::ddelib Dde
      slave eval {proc DDEACCEPT {cmd} {set ::DDECMD [uplevel \#0 $cmd]}}
      slave invokehidden dde servername -handler DDEACCEPT slave
  } -body {
***************
*** 393,399 ****
  } -cleanup {interp delete slave} -result {0 1}
  test winDde-8.10 {Safe DDE check command evaluation (2)} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $lib dde
      slave eval {proc DDEACCEPT {cmd} {set ::DDECMD [uplevel \#0 $cmd]}}
      slave invokehidden dde servername -handler DDEACCEPT slave
  } -body {
--- 384,390 ----
  } -cleanup {interp delete slave} -result {0 1}
  test winDde-8.10 {Safe DDE check command evaluation (2)} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $::ddelib Dde
      slave eval {proc DDEACCEPT {cmd} {set ::DDECMD [uplevel \#0 $cmd]}}
      slave invokehidden dde servername -handler DDEACCEPT slave
  } -body {
***************
*** 404,410 ****
  } -cleanup {interp delete slave} -result {0 1}
  test winDde-8.11 {Safe DDE check command evaluation (3)} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $lib dde
      slave eval {proc DDEACCEPT {cmd} {set ::DDECMD [uplevel \#0 $cmd]}}
      slave invokehidden dde servername -handler DDEACCEPT slave
  } -body {
--- 395,401 ----
  } -cleanup {interp delete slave} -result {0 1}
  test winDde-8.11 {Safe DDE check command evaluation (3)} -constraints {win dde} -setup {
      interp create -safe slave
!     slave invokehidden load $::ddelib Dde
      slave eval {proc DDEACCEPT {cmd} {set ::DDECMD [uplevel \#0 $cmd]}}
      slave invokehidden dde servername -handler DDEACCEPT slave
  } -body {

*** win/makefile.vc	27 Sep 2004 14:31:21 -0000	1.134
--- win/makefile.vc	26 Oct 2004 21:15:51 -0000
***************
*** 465,474 ****
  test: setup $(TCLTEST) dlls $(CAT32)
  	set TCL_LIBRARY=$(ROOT)/library
  !if "$(OS)" == "Windows_NT"  || "$(MSVCDIR)" == "IDE"
! 	$(TCLTEST) "$(ROOT)/tests/all.tcl" $(TESTFLAGS)
  !else
  	@echo Please wait while the tests are collected...
! 	$(TCLTEST) "$(ROOT)/tests/all.tcl" $(TESTFLAGS) > tests.log
  	type tests.log | more
  !endif
  
--- 465,481 ----
  test: setup $(TCLTEST) dlls $(CAT32)
  	set TCL_LIBRARY=$(ROOT)/library
  !if "$(OS)" == "Windows_NT"  || "$(MSVCDIR)" == "IDE"
! 	$(TCLTEST) "$(ROOT)/tests/all.tcl" $(TESTFLAGS) -loadfile <<
! 		set ::ddelib [file normalize $(TCLDDELIB:\=/)]
! 		set ::reglib [file normalize $(TCLREGLIB:\=/)]
! <<keep
! 
  !else
  	@echo Please wait while the tests are collected...
! 	$(TCLTEST) "$(ROOT)/tests/all.tcl" $(TESTFLAGS) -loadfile <<
! 		set ::ddelib [file normalize $(TCLDDELIB:\=/)]
! 		set ::reglib [file normalize $(TCLREGLIB:\=/)]
! << > tests.log
  	type tests.log | more
  !endif