*** 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:\=/)] ! < tests.log type tests.log | more !endif