RegressionTests__Win32OperatingSystemTest.st
author Claus Gittinger <cg@exept.de>
Tue, 02 Dec 2008 12:49:54 +0100
changeset 355 d86e28afd549
parent 354 310c6aca6525
child 675 f98a0bb2f639
permissions -rw-r--r--
changed #testMutex
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'exept:regression' }"
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#Win32OperatingSystemTest
355
d86e28afd549 changed #testMutex
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
     6
        instanceVariableNames:''
d86e28afd549 changed #testMutex
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
     7
        classVariableNames:''
d86e28afd549 changed #testMutex
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
     8
        poolDictionaries:''
d86e28afd549 changed #testMutex
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
     9
        category:'tests-Regression'
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!Win32OperatingSystemTest methodsFor:'release'!
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
tearDown
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
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
!Win32OperatingSystemTest methodsFor:'tests'!
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
testMutex
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    |handle alreadyExists lastErrorCode handleAndLastErrorCode|
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
    handleAndLastErrorCode := Win32OperatingSystem createMutexNamed: '8906f5e0-54ed-11dd-9da4-001558137da0'.
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
    handle := handleAndLastErrorCode first.
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    handle isNil ifTrue:[^ self].
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
    lastErrorCode := handleAndLastErrorCode second.
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
    self assert: lastErrorCode == 0.
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
    alreadyExists := (lastErrorCode == 5 "ERROR_ACCESS_DENIED" or:[ lastErrorCode == 183 "ERROR_ALREADY_EXISTS"]).
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
    alreadyExists ifTrue:[
355
d86e28afd549 changed #testMutex
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    30
        Transcript showCR: 'Mutex already exists!!'.
d86e28afd549 changed #testMutex
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    31
        ^ self.
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
    ].
354
Claus Gittinger <cg@exept.de>
parents: 344
diff changeset
    33
    Transcript showCR: 'Mutex created!!'.
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
    Win32OperatingSystem waitForSingleObject: handle.
355
d86e28afd549 changed #testMutex
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    35
    Delay waitForSeconds:0.5. "/ self halt.
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
    Win32OperatingSystem releaseMutex: handle.
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
    Win32OperatingSystem primCloseHandle: handle.
354
Claus Gittinger <cg@exept.de>
parents: 344
diff changeset
    38
    Transcript showCR: 'Mutex closed!!'.
344
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
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
     self new testMutex
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    "
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
! !
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!Win32OperatingSystemTest class methodsFor:'documentation'!
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
version
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    ^ '$Header$'
21c39da58029 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
! !