MCClassDefinitionTest.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 276 f65551a3cc92
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
276
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCTestCase subclass:#MCClassDefinitionTest
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'previousChangeSet'
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'Monticello-Tests'
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCClassDefinitionTest class methodsFor:'as yet unclassified'!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
classAComment
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^ 'This is a mock class. The Monticello tests manipulated it to simulate a developer modifying code in the image.'
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
classACommentStamp
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	^  'cwp 8/10/2003 16:43'
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
restoreClassAComment
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	Smalltalk 
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
		at: #MCMockClassA 
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
		ifPresent: [:a | a classComment: self classAComment stamp: self classACommentStamp]
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
! !
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
!MCClassDefinitionTest methodsFor:'as yet unclassified'!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
classAComment
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
	^ self class classAComment
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
creationMessage
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
	^ MessageSend
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
		receiver: MCClassDefinition
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
		selector: #name:superclassName:category:instVarNames:classVarNames:poolDictionaryNames:classInstVarNames:type:comment:commentStamp:
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
tearDown
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
        Smalltalk at: #'MCMockClassC' ifPresent: [:c | c removeFromSystem]
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    "Modified: / 09-09-2010 / 15:23:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
testCannotLoad
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
	| d |
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	d :=  self mockClass: 'MCMockClassC' super: 'NotAnObject'.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
	self should: [d load] raise: Error.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
	self deny: (Smalltalk hasClassNamed: 'MCMockClassC').
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
testComparison
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
	| d1 d2 d3 d4 |
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
	d1 := self mockClass: 'A' super: 'X'.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
	d2 := self mockClass: 'A' super: 'Y'.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
	d3 := self mockClass: 'B' super: 'X'.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
	d4 := self mockClass: 'B' super: 'X'.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
	
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
	self assert: (d1 isRevisionOf: d2).
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
	self deny: (d1 isSameRevisionAs: d2).
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	self assert: (d3 isRevisionOf: d4).
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
	self assert: (d3 isSameRevisionAs: d4).
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
	
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
	self deny: (d1 isRevisionOf: d3).
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
	self deny: (d4 isRevisionOf: d2).
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
testCreation
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
        | d |
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
        d :=  self mockClassA asClassDefinition.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
        self assert: d className = #MCMockClassA.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
        self assert: d superclassName = #MCMock.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
        self assert: d type = #normal.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
        self assert: d category = self mockCategoryName.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
        self assert: d instVarNames asArray = #('ivar').
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
        self assert: d classVarNames asArray = #('CVar').
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
        self assert: d classInstVarNames asArray = #().
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
        self assert: d comment isString.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
        self assert: d comment = self classAComment.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
        "/TODO: Fix it later
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
        "/self assert: d commentStamp = self mockClassA organization commentStamp
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    "Modified: / 11-09-2010 / 18:24:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
testDefinitionString
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
        | d |
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
        d := self mockClassA asClassDefinition.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
        self assert: d definitionString = self mockClassA mcDefinition.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    "Modified: / 11-09-2010 / 18:04:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
testEquals
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
	| a b |
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
	a := self mockClass: 'ClassA' super: 'SuperA'.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
	b := self mockClass: 'ClassA' super: 'SuperA'.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
	self assert: a = b
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
testEqualsSensitivity
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
	| message a b defA args defB |
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
	message := self creationMessage.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
	a := #(ClassA SuperA CategoryA #(iVarA) #(CVarA) #(PoolA) #(ciVarA)
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
			typeA 'A comment' 'A').
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
	b := #(ClassB SuperB CategoryB #(iVarB) #(CVarB) #(PoolB) #(ciVarB)
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
			typeB 'B comment' 'B').
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
	
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
	defA := message valueWithArguments: a.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
	1 to: 8 do: [:index |
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
				args := a copy.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
				args at: index put: (b at: index).
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
				defB := message valueWithArguments: args.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
				self deny: defA = defB.]
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
testKindOfSubclass
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
        | classes d |
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
        classes := Array 
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
                    with: self mockClassA
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
                    with: String 
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
                    with: Context
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
                    with: WeakArray
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
                    with: Float.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
        classes do: [:c |
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
                d :=  c asClassDefinition.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
                self assert: d kindOfSubclass = c kindOfSubclass.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
        ].
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
    "Modified: / 28-08-2010 / 23:03:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
testLoadAndUnload
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
        | d c |
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
        d :=  self mockClass: 'MCMockClassC' super: 'Object'.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
        d load.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
        self assert: (Smalltalk hasClassNamed: 'MCMockClassC').
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
        c := (Smalltalk classNamed: 'MCMockClassC').
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
        self assert: (c isKindOf: Class).
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
        self assert: c superclass = Object.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
        self assert: c instVarNames isEmpty.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
        self assert: c classVarNames isEmpty.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
        self assert: c sharedPools isEmpty.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
        self assert: c category = self mockCategoryName.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
        self assert: c organization classComment = (self commentForClass: 'MCMockClassC').
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
        "/Fix it later
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
        "/self assert: c organization commentStamp = (self commentStampForClass: 'MCMockClassC').
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
        d unload.
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
        self deny: (Smalltalk hasClassNamed: 'MCMockClassC').
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
    "Modified: / 11-09-2010 / 17:54:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
! !
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
!MCClassDefinitionTest class methodsFor:'documentation'!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
version
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassDefinitionTest.st,v 1.1 2011-08-20 12:03:37 cg Exp $'
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
version_CVS
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassDefinitionTest.st,v 1.1 2011-08-20 12:03:37 cg Exp $'
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
!
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
version_SVN
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
    ^ '§Id: MCClassDefinitionTest.st 7 2010-09-12 07:18:55Z vranyj1 §'
f65551a3cc92 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
! !