--- a/RegressionTests__Win32OperatingSystemTest.st Wed Jun 03 14:16:30 2020 +0200
+++ b/RegressionTests__Win32OperatingSystemTest.st Tue Jun 16 16:19:41 2020 +0200
@@ -46,7 +46,7 @@
^ 'Windows Registry Editor Version 5.00
-[HKEY_CURRENT_USER\Software\SmalltalkX-tests]
+[HKEY_CURRENT_USER\Software\%1]
@="しか OMG"
"emptyToTest"=""
"testEmptyMultiSZ"=hex(7):00,00
@@ -148,9 +148,9 @@
00,59,01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,00,\
29,00,2e,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,00,\
00
-[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか_empty]
-
-[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか]
+[HKEY_CURRENT_USER\Software\%1\ ルすしか_empty]
+
+[HKEY_CURRENT_USER\Software\%1\ ルすしか]
"bledesu"="''Testing Unicode chars ř ž č ルすしかき''). "
"しかき "="Testus gradus"
" ř ž č ル. "="Testing Unicode chars ř ž č ルすしかき"
@@ -249,20 +249,20 @@
29,00,2e,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,00,\
00
-[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end]
+[HKEY_CURRENT_USER\Software\%1\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end]
"testing"=" ルすしか"
"か"=dword:00000002
"256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end"="Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd"
-[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end]
-
-[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\unreachable]
-
-[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\reachable]
-
-[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか_testing_delete]
-
-[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか_testing_delete\ughu]
+[HKEY_CURRENT_USER\Software\%1\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end]
+
+[HKEY_CURRENT_USER\Software\%1\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\unreachable]
+
+[HKEY_CURRENT_USER\Software\%1\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\reachable]
+
+[HKEY_CURRENT_USER\Software\%1\ ルすしか_testing_delete]
+
+[HKEY_CURRENT_USER\Software\%1\ ルすしか_testing_delete\ughu]
"bledesu"="''Testing Unicode chars ř ž č ルすしかき''). "
"しかき "="Testus gradus"
" ř ž č ル. "="Testing Unicode chars ř ž č ルすしかき"
@@ -360,31 +360,34 @@
00,59,01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,00,\
29,00,2e,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,00,\
00
-[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか_testing_delete\zubr]
-
-[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか_testing_delete\reg-none]
+[HKEY_CURRENT_USER\Software\%1\ ルすしか_testing_delete\zubr]
+
+[HKEY_CURRENT_USER\Software\%1\ ルすしか_testing_delete\reg-none]
@=hex(0):
-[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか_testing_delete\bobr]
-
-[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか_testing_delete\bobr\boříččátka]
+[HKEY_CURRENT_USER\Software\%1\ ルすしか_testing_delete\bobr]
+
+[HKEY_CURRENT_USER\Software\%1\ ルすしか_testing_delete\bobr\boříččátka]
'
"Created: / 16-11-2018 / 11:24:57 / svestkap"
- "Modified: / 01-02-2019 / 13:08:58 / svestkap"
+ "Modified: / 16-06-2020 / 12:08:27 / svestkap"
! !
!Win32OperatingSystemTest methodsFor:'release'!
setUp
- | registryToImport file returnString |
+ | registryToImport randomString file returnString |
self skipIf: OperatingSystem isMSWINDOWSlike not description: 'Windows only tests (registry manipulation)'.
super setUp.
windowsDetailsRegistryPath := 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion'.
-
registryToImport := self unicodeRegistryExample.
+ "/ Random is not always truly random so we add random process pid
+ randomString := OperatingSystem getProcessId asString, '_', Random nextInteger asString.
+ "/ each test needs a random registry path
+ registryToImport := registryToImport copy bindWith: 'SmalltalkX-tests_', randomString.
"/ registry path which will be used
registryPath := registryToImport
@@ -424,7 +427,7 @@
self deny: (OperatingSystem registryEntry key: registryPath) isNil.
"Created: / 28-12-2016 / 22:12:14 / jv"
- "Modified (comment): / 03-06-2020 / 12:59:37 / svestkap"
+ "Modified (comment): / 16-06-2020 / 16:18:38 / svestkap"
!
tearDown
@@ -1457,9 +1460,9 @@
self assert: readData path notEmptyOrNil.
self assert:(readData path endsWith: '|end').
-
+
"/ this is maximum path size which can be reached if the SubKey is reached via index
- self assert: readData path size = 563. "/ there is one backslash (for path) more compared to testReadSubKeyNamesAndClassesAtIndex_MaxPath_01
+ self assert: (readData path copyAfterLast: $\) size = 256.
"
self run:#testReadSubKeyAtIndex_MaxPath
@@ -1467,7 +1470,7 @@
"
"Created: / 05-12-2018 / 12:39:54 / svestkap"
- "Modified (format): / 12-02-2019 / 14:51:51 / svestkap"
+ "Modified (comment): / 16-06-2020 / 13:27:59 / svestkap"
!
testReadSubKeyNamesAndClassesAtIndex_01
@@ -1543,7 +1546,7 @@
self assert: readData first = '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end'.
"/ this is maximum path size which can be reached if the SubKey is reached via index
- self assert: (testingRegistryPath path size + readData first size) = 562.
+ self assert: ((testingRegistryPath path copyUpTo: $-) size + readData first size) = 293.
"
self run:#testReadSubKeyNamesAndClassesAtIndex_MaxPath
@@ -1551,7 +1554,7 @@
"
"Created: / 05-12-2018 / 12:40:08 / svestkap"
- "Modified: / 12-02-2019 / 14:52:06 / svestkap"
+ "Modified: / 16-06-2020 / 13:49:57 / svestkap"
!
testReadTooLongPath
@@ -2167,14 +2170,15 @@
self assert: readData notEmptyOrNil.
self assert: readData size = 3.
"/ this is normally unreachable subKey (subkey actually called 'unreachable')
- self assert: (readData at: 2) path size = 575.
+ self assert: ((readData at: 2) path copyUpTo: $-) size + ((readData at: 2) path copyAfterLast: $\) size = 48.
readData := readData copy collect: [ :subEntry | subEntry path copyAfterLast: $\ ].
self assert: readData size = 3.
self assert: (readData first endsWith: '|end').
+ self assert: readData first size = 256.
self assert: readData second = 'unreachable'.
- self assert: readData third = 'reachable'
+ self assert: readData third = 'reachable'.
"
self run:#testReadAllSubKeysDo_MaxPath
@@ -2182,7 +2186,7 @@
"
"Created: / 05-12-2018 / 12:40:53 / svestkap"
- "Modified (comment): / 01-02-2019 / 14:57:24 / svestkap"
+ "Modified (format): / 16-06-2020 / 13:48:58 / svestkap"
!
testReadRemoteKeyOnHost_01
@@ -2277,13 +2281,13 @@
self assert: readData notEmptyOrNil.
self assert: readData size = 2.
- self assert: (readData first) path size = 563.
readData := readData copy collect: [ :subEntry | subEntry path copyAfterLast: $\ ].
self assert: readData size = 2.
self assert: (readData first endsWith: '|end').
self assert: readData second = 'reachable'.
+ self assert: readData first size = 256.
"
self run:#testReadSubKeysDo_MaxPath
@@ -2291,7 +2295,7 @@
"
"Created: / 05-12-2018 / 12:41:49 / svestkap"
- "Modified (comment): / 01-02-2019 / 14:56:31 / svestkap"
+ "Modified: / 16-06-2020 / 13:21:40 / svestkap"
!
testReadSubKeys_MaxPath
@@ -2305,14 +2309,14 @@
readData := testingRegistryPath subKeys.
self assert: readData notEmptyOrNil.
- self assert: readData size = 2.
- self assert: (readData first) path size = 563.
+ self assert: readData size = 2.
readData := readData copy collect: [ :subEntry | subEntry path copyAfterLast: $\ ].
self assert: readData size = 2.
self assert: (readData first endsWith: '|end').
self assert: readData second = 'reachable'.
+ self assert: readData first size = 256.
"
self run:#testReadSubKeys_MaxPath
@@ -2320,7 +2324,7 @@
"
"Created: / 05-12-2018 / 12:41:59 / svestkap"
- "Modified (comment): / 01-02-2019 / 14:56:12 / svestkap"
+ "Modified: / 16-06-2020 / 13:20:53 / svestkap"
!
testReadValueNamesAndValuesDo_MaxPath