Replacing the hardcoded registry path in order for the registry tests to run correctly in parallel, duh! Fixed tests that relied on the fixed size of the hardcoded path. jv
authorPatrik Svestka <patrik.svestka@gmail.com>
Tue, 16 Jun 2020 16:19:41 +0200
branchjv
changeset 2593 773015856b61
parent 2592 7aa9af5b0ddb
child 2594 e5f39c0a5bd6
Replacing the hardcoded registry path in order for the registry tests to run correctly in parallel, duh! Fixed tests that relied on the fixed size of the hardcoded path.
RegressionTests__Win32OperatingSystemTest.st
--- 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