RegressionTests__Win32OperatingSystemTest.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 28 Jun 2018 09:13:44 +0100
branchjv
changeset 1977 f53c1ec52418
parent 1974 f2eaf05205d6
child 2078 9d76442a61bb
permissions -rwxr-xr-x
`Win32OperatingSystemTest`: use generated mutex name to allow tests to run in parallel and don't fail with "already exists" message.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1974
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
     1
"
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
     2
 COPYRIGHT (c) Claus Gittinger / eXept Software AG
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
     3
 COPYRIGHT (c) 2016 Jan Vrany
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
     4
              All Rights Reserved
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
     5
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
     6
 This software is furnished under a license and may be used
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
     7
 only in accordance with the terms of that license and with the
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
     8
 inclusion of the above copyright notice.   This software may not
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
     9
 be provided or otherwise made available to, or used by, any
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    10
 other person.  No title to or ownership of the software is
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    11
 hereby transferred.
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    12
"
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1392
diff changeset
    13
"{ Package: 'stx:goodies/regression' }"
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
"{ NameSpace: RegressionTests }"
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
TestCase subclass:#Win32OperatingSystemTest
675
f98a0bb2f639 changed: #testMutex
Stefan Vogel <sv@exept.de>
parents: 355
diff changeset
    18
	instanceVariableNames:''
f98a0bb2f639 changed: #testMutex
Stefan Vogel <sv@exept.de>
parents: 355
diff changeset
    19
	classVariableNames:''
f98a0bb2f639 changed: #testMutex
Stefan Vogel <sv@exept.de>
parents: 355
diff changeset
    20
	poolDictionaries:''
1161
3d9b4eaddcf3 category changes
Claus Gittinger <cg@exept.de>
parents: 675
diff changeset
    21
	category:'tests-Regression-RuntimeSystem'
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
1974
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    24
!Win32OperatingSystemTest class methodsFor:'documentation'!
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    25
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    26
copyright
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    27
"
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    28
 COPYRIGHT (c) Claus Gittinger / eXept Software AG
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    29
 COPYRIGHT (c) 2016 Jan Vrany
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    30
              All Rights Reserved
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    31
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    32
 This software is furnished under a license and may be used
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    33
 only in accordance with the terms of that license and with the
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    35
 be provided or otherwise made available to, or used by, any
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    36
 other person.  No title to or ownership of the software is
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    37
 hereby transferred.
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    38
"
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1566
diff changeset
    39
! !
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
!Win32OperatingSystemTest methodsFor:'release'!
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
1566
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    43
setUp
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    44
    self skipIf: OperatingSystem isMSWINDOWSlike not description: 'Windows specific tests'.
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    45
    super setUp
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    46
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    47
    "Created: / 28-12-2016 / 22:12:14 / jv"
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
! !
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
!Win32OperatingSystemTest methodsFor:'tests'!
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
testMutex
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    |handle alreadyExists lastErrorCode handleAndLastErrorCode|
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
1977
f53c1ec52418 `Win32OperatingSystemTest`: use generated mutex name to allow tests to run in parallel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1974
diff changeset
    55
    handleAndLastErrorCode := Win32OperatingSystem createMutexNamed: UUID new printString.
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    handle := handleAndLastErrorCode first.
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    handle isNil ifTrue:[^ self].
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    lastErrorCode := handleAndLastErrorCode second.
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    self assert: lastErrorCode == 0.
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    alreadyExists := (lastErrorCode == 5 "ERROR_ACCESS_DENIED" or:[ lastErrorCode == 183 "ERROR_ALREADY_EXISTS"]).
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    alreadyExists ifTrue:[
1566
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    62
        Transcript showCR: 'Mutex already exists!!'.
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    63
        ^ self.
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    ].
1977
f53c1ec52418 `Win32OperatingSystemTest`: use generated mutex name to allow tests to run in parallel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1974
diff changeset
    65
    [
f53c1ec52418 `Win32OperatingSystemTest`: use generated mutex name to allow tests to run in parallel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1974
diff changeset
    66
        Transcript showCR: 'Mutex created!!'.
f53c1ec52418 `Win32OperatingSystemTest`: use generated mutex name to allow tests to run in parallel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1974
diff changeset
    67
        Win32OperatingSystem waitForSingleObject: handle.
f53c1ec52418 `Win32OperatingSystemTest`: use generated mutex name to allow tests to run in parallel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1974
diff changeset
    68
        Delay waitForSeconds:0.5. "/ self halt.
f53c1ec52418 `Win32OperatingSystemTest`: use generated mutex name to allow tests to run in parallel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1974
diff changeset
    69
        Win32OperatingSystem releaseMutex: handle.
f53c1ec52418 `Win32OperatingSystemTest`: use generated mutex name to allow tests to run in parallel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1974
diff changeset
    70
    ] ensure:[
f53c1ec52418 `Win32OperatingSystemTest`: use generated mutex name to allow tests to run in parallel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1974
diff changeset
    71
        Win32OperatingSystem primCloseHandle: handle.
f53c1ec52418 `Win32OperatingSystemTest`: use generated mutex name to allow tests to run in parallel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1974
diff changeset
    72
        Transcript showCR: 'Mutex closed!!'.
f53c1ec52418 `Win32OperatingSystemTest`: use generated mutex name to allow tests to run in parallel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1974
diff changeset
    73
    ].
f53c1ec52418 `Win32OperatingSystemTest`: use generated mutex name to allow tests to run in parallel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1974
diff changeset
    74
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    "
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
     self new testMutex
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    "
1566
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    79
1977
f53c1ec52418 `Win32OperatingSystemTest`: use generated mutex name to allow tests to run in parallel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1974
diff changeset
    80
    "Modified: / 28-06-2018 / 09:14:35 / jv"
1352
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    81
!
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    82
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    83
testRegistry
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    84
    |k hasContentType|
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    85
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    86
    k := OperatingSystem registryEntry key:'HKEY_CLASSES_ROOT\MIME\Database\'.
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    87
    self assert:(k notNil).
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    88
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    89
    hasContentType := false.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1392
diff changeset
    90
    k subKeyNamesAndClassesDo:[:nm :clsNm |
1566
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    91
        "/ Transcript showCR:nm.
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    92
        nm = 'Content Type' ifTrue:[hasContentType := true].
1352
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    93
    ].
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    94
    self assert:hasContentType.
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    95
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    96
    "/ k subKeysDo:[:k | Transcript showCR:k].
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    97
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    98
    "
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
    99
     self new testRegistry
e0d857144dbf #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
   100
    "
1566
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   101
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   102
    "Modified: / 28-12-2016 / 22:13:43 / jv"
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   103
!
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   104
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   105
testRegistry02a
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   106
    | root key |
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   107
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   108
    root :=OperatingSystem registryEntry key:'HKEY_CURRENT_USER'.
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   109
    root deleteSubKeyNamed: testSelector.
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   110
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   111
    self assert:(root subKeyNamed: testSelector) isNil.
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   112
    self deny: (root deleteSubKeyNamed: testSelector).
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   113
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   114
    key := root createSubKeyNamed:testSelector.
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   115
    self assert: key notNil.
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   116
    self assert:(root subKeyNamed: testSelector) notNil.
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   117
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   118
    self assert: (root deleteSubKeyNamed:testSelector).
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   119
    self assert:(root subKeyNamed: testSelector) isNil.
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   120
    self deny: (root deleteSubKeyNamed: testSelector).
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   121
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   122
    "Created: / 28-12-2016 / 23:14:15 / jv"
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   123
    "Modified: / 05-01-2017 / 21:45:20 / jv"
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
! !
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
!Win32OperatingSystemTest class methodsFor:'documentation'!
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
version
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
    ^ '$Header$'
1566
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   130
!
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   131
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   132
version_HG
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   133
2ca58098256d Issue #109: Added tests for registry key creation / deletion
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   134
    ^ '$Changeset: <not expanded> $'
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
! !
1161
3d9b4eaddcf3 category changes
Claus Gittinger <cg@exept.de>
parents: 675
diff changeset
   136