RegressionTests__STCCompilerTests.st
author Claus Gittinger <cg@exept.de>
Mon, 30 May 2016 09:33:10 +0200
changeset 1431 c916f28b79db
parent 1360 a9e32a75b2cb
child 1447 2351db93aa5b
permissions -rw-r--r--
#QUALITY by cg class: RegressionTests::IntegerTest changed: #testInteger1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
638
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'exept:regression' }"
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#STCCompilerTests
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
1166
eead52f6c916 category changes
Claus Gittinger <cg@exept.de>
parents: 1153
diff changeset
     9
	category:'tests-Regression-Compilers'
638
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!STCCompilerTests class methodsFor:'documentation'!
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
documentation
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
"
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    documentation to be added.
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    [author:]
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
        cg
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    [instance variables:]
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
    [class variables:]
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    [see also:]
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
"
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
! !
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!STCCompilerTests methodsFor:'code templates'!
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
1046
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    32
inlinedBlockVariables1
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    33
    "stc generates wrong code for inlined variables"
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    34
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    35
    | b |
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    36
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    37
    b := [:arg1 | 
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    38
        |local1|
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    39
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    40
        local1 := #local1.
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    41
        1 to:3 do:[:argb_1 |
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    42
            |localb_1 localb_2|
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    43
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    44
            localb_1 := #localb_1.
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    45
            localb_2 := #localb_2.
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    46
            1 to:5 do:[:argbb_1 |
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    47
                |localbb_1 localbb_2|
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    48
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    49
                localbb_1 := #localbb_1.
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    50
                localbb_2 := #localbb_2.
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    51
                argbb_1 == 3 ifTrue:[
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    52
                    ^ [:argbbb_1 |
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    53
                        |localbbb_1 localbbb_2|
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    54
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    55
                        localbbb_1 := #localbbb_1.
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    56
                        localbbb_2 := #localbbb_2.
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    57
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    58
                        localb_1 "/ here, in old stc versions, localb_2 is returned
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    59
                    ].
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    60
                ].
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    61
            ]
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    62
        ]
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    63
    ].
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    64
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    65
    ^ b value:#arg1
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    66
!
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
    67
1047
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    68
inlinedBlockVariables2
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    69
    "stc generates wrong code for inlined variables"
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    70
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    71
    | b |
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    72
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    73
    b := [:arg1 | 
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    74
        |local1|
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    75
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    76
        local1 := #local1.
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    77
        1 to:3 do:[:argb_1 |
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    78
            |localb_1 localb_2|
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    79
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    80
            localb_1 := #localb_1.
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    81
            localb_2 := #localb_2.
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    82
            1 to:5 do:[:argbb_1 |
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    83
                |localbb_1 localbb_2|
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    84
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    85
                localbb_1 := #localbb_1.
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    86
                localbb_2 := #localbb_2.
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    87
                argbb_1 == 3 ifTrue:[
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    88
                    ^ [:argbbb_1 |
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    89
                        |localbbb_1 localbbb_2|
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    90
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    91
                        localbbb_1 := #localbbb_1.
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    92
                        localbbb_2 := #localbbb_2.
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    93
                        argbb_1 
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    94
                    ].
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    95
                ].
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    96
            ]
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    97
        ]
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    98
    ].
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    99
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   100
    ^ b value:#arg1
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   101
!
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   102
638
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
nextLittleEndianNumber: n from:bytes
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    "stc generates wrong code for the following s := assignment"
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    | s |
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
    s := 0.
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
    n to: 1 by: -1 do: [:i | s := (s bitShift: 8) bitOr: (bytes at: i)].
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    ^ s
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    "Created: / 17-09-2011 / 10:32:29 / cg"
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
! !
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
!STCCompilerTests methodsFor:'tests'!
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
809
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   117
test01_compilation
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   118
    "checks for an stc compiler bug (detected Sep 2011).
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   119
     stc generates bad code for the bitOr expression in nextLittleEndianNumber"
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   120
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   121
    Class withoutUpdatingChangesDo:[
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   122
        (STCCompilerInterface new)
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   123
            compileToMachineCode:'hello
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   124
%{
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   125
    console_printf("hello world\n");
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   126
%}
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   127
'
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   128
            forClass:self class
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   129
            selector:#'hello'
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   130
            inCategory:'tests'
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   131
            notifying:nil
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   132
            install:true
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   133
            skipIfSame:false
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   134
            silent:true.
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   135
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   136
        self hello.
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   137
        self class removeSelector:#hello.
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   138
    ].
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   139
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   140
    "
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   141
     self run:#test01_compilation
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   142
     self new test01_compilation
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   143
    "
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   144
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   145
    "Created: / 17-09-2011 / 10:32:18 / cg"
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   146
!
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   147
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   148
test02_compilation
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   149
    "checks for an stc compiler bug (detected Sep 2011).
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   150
     stc generates bad code for the bitOr expression in nextLittleEndianNumber"
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   151
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   152
    |val|
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   153
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   154
    Class withoutUpdatingChangesDo:[
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   155
        (STCCompilerInterface new)
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   156
            compileToMachineCode:'x123
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   157
%{
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   158
    RETURN(__MKSMALLINT(123));
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   159
%}
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   160
'
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   161
            forClass:self class
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   162
            selector:#'x123'
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   163
            inCategory:'tests'
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   164
            notifying:nil
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   165
            install:true
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   166
            skipIfSame:false
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   167
            silent:true.
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   168
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   169
        val := self x123.
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   170
        self assert:(val == 123).
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   171
        self class removeSelector:#x123.
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   172
    ].
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   173
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   174
    "
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   175
     self run:#test02_compilation
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   176
     self new test02_compilation
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   177
    "
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   178
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   179
    "Created: / 17-09-2011 / 10:32:18 / cg"
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   180
!
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   181
994
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   182
test03_compilation
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   183
    "As of 2013-09-04, instance variables of Class are not visible
1360
a9e32a75b2cb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1344
diff changeset
   184
     in class methods of ordinary classes. 
a9e32a75b2cb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1344
diff changeset
   185
     For bytecode-compiled method they are.
994
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   186
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   187
     This tests checks for this bug.
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   188
    "
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   189
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   190
    |val|
995
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   191
    [
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   192
       Class withoutUpdatingChangesDo:[
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   193
           "/ Check bytecode version first...
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   194
           self class class compile:'returnMyName
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   195
       ^ name
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   196
   '.
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   197
           val := self class returnMyName.
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   198
           self assert:(val == self class name).
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   199
           self class class removeSelector:#returnMyName.
994
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   200
995
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   201
           "/ Now, compile the same source using stc and check...
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   202
           (STCCompilerInterface new)
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   203
               compileToMachineCode:'returnMyName
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   204
       ^ name
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   205
   '
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   206
               forClass:self class class
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   207
               selector:#'returnMyName'
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   208
               inCategory:'tests'
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   209
               notifying:nil
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   210
               install:true
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   211
               skipIfSame:false
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   212
               silent:true.
994
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   213
995
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   214
           val := self class returnMyName.
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   215
           self assert:(val == self class name).
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   216
           self class class removeSelector:#returnMyName.
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   217
       ].
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   218
    ] ensure:[
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   219
        self class class removeSelector:#returnMyName.
676127617c9e Oops, fixed method removal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 994
diff changeset
   220
    ]
994
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   221
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   222
    "
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   223
     self run:#test02_compilation
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   224
     self new test02_compilation
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   225
    "
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   226
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   227
    "Created: / 04-09-2013 / 09:35:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   228
!
914cf744f89e class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   229
1048
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   230
test04_doubleArraySize_bug
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   231
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   232
    "As of 2014-03-11, __doubleArraySize() seem to return off-by-one size
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   233
     on Windows. Under Linux it seem to work just fine.
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   234
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   235
     This tests checks for this bug.
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   236
    "
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   237
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   238
    | sizes |
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   239
    [
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   240
       Class withoutUpdatingChangesDo:[
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   241
           (STCCompilerInterface new)
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   242
               compileToMachineCode:'doubleArraySize
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   243
                    | arr size1 size2 |
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   244
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   245
                    arr := DoubleArray new: 8.
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   246
                    size1 := arr size.
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   247
%{
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   248
                    size2 = __MKINT(__doubleArraySize(arr));
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   249
%}.
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   250
                    ^ Array with: size1 with: size2.
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   251
   '
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   252
               forClass:self class class
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   253
               selector:#'doubleArraySize'
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   254
               inCategory:'tests'
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   255
               notifying:nil
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   256
               install:true
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   257
               skipIfSame:false
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   258
               silent:true.
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   259
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   260
           sizes := self class perform: #doubleArraySize.
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   261
           self assert:(sizes first == 8).
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   262
           self assert:(sizes second == 8).
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   263
           self class class removeSelector:#doubleArraySize.
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   264
       ].
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   265
    ] ensure:[
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   266
        self class class removeSelector:#doubleArraySize.
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   267
    ]
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   268
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   269
    "
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   270
     self run:#test02_compilation
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   271
     self new test02_compilation
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   272
    "
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   273
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   274
    "Created: / 11-02-2014 / 23:50:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   275
    "Modified (format): / 04-03-2014 / 10:13:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1048
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   276
!
b5f4b15a3dbf Added RegressionTests::STCCompilerTest>>#test04_doubleArraySize_bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1047
diff changeset
   277
809
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   278
test10_bitor_bug
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   279
    "checks for an stc compiler bug (detected Sep 2011).
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   280
     stc generates bad code for the bitOr expression in nextLittleEndianNumber"
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   281
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   282
    |val mthd|
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   283
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   284
    Class withoutUpdatingChangesDo:[
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   285
        self class recompile:#'nextLittleEndianNumber:from:'.
1344
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   286
        
809
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   287
        val := self nextLittleEndianNumber:4 from:#[1 2 3 4].
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   288
        self assert:(val = 16r04030201).
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   289
        val := self nextLittleEndianNumber:8 from:#[1 2 3 4 5 6 7 8].
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   290
        self assert:(val = 16r0807060504030201).
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   291
894
fd92a3529be3 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 809
diff changeset
   292
        mthd := self class compiledMethodAt:#'nextLittleEndianNumber:from:'.
809
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   293
        (STCCompilerInterface new)
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   294
            compileToMachineCode:mthd source
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   295
            forClass:self class
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   296
            selector:#'nextLittleEndianNumber:from:'
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   297
            inCategory:mthd category
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   298
            notifying:nil
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   299
            install:true
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   300
            skipIfSame:false
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   301
            silent:true.
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   302
894
fd92a3529be3 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 809
diff changeset
   303
        self 
fd92a3529be3 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 809
diff changeset
   304
            assert:mthd ~= (self class compiledMethodAt:#'nextLittleEndianNumber:from:')
fd92a3529be3 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 809
diff changeset
   305
            description:'Could not compile with STC'.
fd92a3529be3 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 809
diff changeset
   306
809
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   307
        val := self nextLittleEndianNumber:4 from:#[1 2 3 4].
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   308
        self assert:(val = 16r04030201).
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   309
        val := self nextLittleEndianNumber:8 from:#[1 2 3 4 5 6 7 8].
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   310
        self assert:(val = 16r0807060504030201).
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   311
    ].
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   312
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   313
    "
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   314
     self run:#test10_bitor_bug
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   315
     self new test10_bitor_bug
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   316
    "
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   317
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   318
    "Created: / 17-09-2011 / 10:32:18 / cg"
1046
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   319
!
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   320
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   321
test20_localsOfInlinedBlock_bug
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   322
    "checks for an stc compiler bug (detected Sep 2011).
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   323
     stc generates bad code for the bitOr expression in nextLittleEndianNumber"
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   324
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   325
    |blk mthd|
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   326
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   327
    Class withoutUpdatingChangesDo:[
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   328
        self class recompile:#'inlinedBlockVariables1'.
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   329
        blk := self inlinedBlockVariables1.
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   330
        self assert:((blk value:#argbbb_1) == #localb_1).
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   331
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   332
        mthd := self class compiledMethodAt:#'inlinedBlockVariables1'.
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   333
        (STCCompilerInterface new)
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   334
            compileToMachineCode:mthd source
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   335
            forClass:self class
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   336
            selector:#'inlinedBlockVariables1'
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   337
            inCategory:mthd category
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   338
            notifying:nil
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   339
            install:true
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   340
            skipIfSame:false
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   341
            silent:true.
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   342
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   343
        self 
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   344
            assert:mthd ~= (self class compiledMethodAt:#'inlinedBlockVariables1')
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   345
            description:'Could not compile with STC'.
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   346
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   347
        blk := self inlinedBlockVariables1.
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   348
        self assert:((blk value:#argbbb_1) == #localb_1).
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   349
    ].
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   350
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   351
    "
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   352
     self run:#test20_localsOfInlinedBlock_bug
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   353
     self new test20_localsOfInlinedBlock_bug
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   354
    "
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   355
06719286467f class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 995
diff changeset
   356
    "Created: / 17-09-2011 / 10:32:18 / cg"
1047
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   357
!
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   358
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   359
test21_localsOfInlinedBlock_bug
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   360
    "checks for an stc compiler bug (detected Sep 2011).
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   361
     stc generates bad code for the bitOr expression in nextLittleEndianNumber"
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   362
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   363
    |blk mthd|
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   364
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   365
    Class withoutUpdatingChangesDo:[
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   366
        self class recompile:#'inlinedBlockVariables2'.
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   367
        blk := self inlinedBlockVariables2.
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   368
        self assert:((blk value:#argbbb_1) == 3).
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   369
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   370
        mthd := self class compiledMethodAt:#'inlinedBlockVariables2'.
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   371
        (STCCompilerInterface new)
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   372
            compileToMachineCode:mthd source
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   373
            forClass:self class
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   374
            selector:#'inlinedBlockVariables2'
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   375
            inCategory:mthd category
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   376
            notifying:nil
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   377
            install:true
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   378
            skipIfSame:false
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   379
            silent:true.
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   380
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   381
        self 
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   382
            assert:mthd ~= (self class compiledMethodAt:#'inlinedBlockVariables2')
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   383
            description:'Could not compile with STC'.
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   384
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   385
        blk := self inlinedBlockVariables2.
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   386
        self assert:((blk value:#argbbb_1) == 3).
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   387
    ].
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   388
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   389
    "
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   390
     self run:#test21_localsOfInlinedBlock_bug
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   391
     self new test21_localsOfInlinedBlock_bug
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   392
    "
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   393
c602a3472c37 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   394
    "Created: / 17-09-2011 / 10:32:18 / cg"
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   395
!
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   396
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   397
test_LongIntegerArray_01
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   398
    |sizes|
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   399
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   400
    [
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   401
        Class 
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   402
            withoutUpdatingChangesDo:[
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   403
                "/ Now, compile the same source using stc and check...
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   404
                (STCCompilerInterface new) 
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   405
                    compileToMachineCode:'longIntegerArray_size
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   406
                    | arr size1 size2 |
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   407
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   408
                    arr := LongIntegerArray new: 8.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   409
                    size1 := arr size.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   410
%{
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   411
                    size2 = __MKINT(__longIntegerArraySize(arr));
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   412
%}.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   413
                    ^ Array with: size1 with: size2.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   414
   '
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   415
                    forClass:self class class
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   416
                    selector:#'longIntegerArray_size'
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   417
                    inCategory:'tests'
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   418
                    notifying:nil
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   419
                    install:true
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   420
                    skipIfSame:false
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   421
                    silent:true.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   422
                sizes := self class perform:#'longIntegerArray_size'.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   423
                self assert:(sizes first == 8).
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   424
                self assert:(sizes second == 8).
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   425
                self class class removeSelector:#'longIntegerArray_size'.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   426
            ].
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   427
    ] ensure:[ self class class removeSelector:#'longIntegerArray_size'. ]
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   428
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   429
    "
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   430
     self run:#test02_compilation
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   431
     self new test02_compilation"
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   432
    "Created: / 04-03-2014 / 10:20:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   433
!
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   434
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   435
test_LongIntegerArray_02
1344
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   436
    |sizes verbose|
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   437
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   438
    verbose := false.
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   439
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   440
    [
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   441
        Class 
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   442
            withoutUpdatingChangesDo:[
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   443
                (STCCompilerInterface new) 
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   444
                    compileToMachineCode:'longIntegerArray_i_element
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   445
                    | arr v1 v8 |
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   446
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   447
                    arr := LongIntegerArray new: 8.
1151
8fafc9a108b9 class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1150
diff changeset
   448
                    arr at: 1 put: 11123456789.
8fafc9a108b9 class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1150
diff changeset
   449
                    arr at: 8 put: 11123456789.
8fafc9a108b9 class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1150
diff changeset
   450
                    self assert: (arr at: 1) = 11123456789.
8fafc9a108b9 class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1150
diff changeset
   451
                    self assert: (arr at: 8) = 11123456789.
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   452
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   453
%{
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   454
                    __uint64__ val;
1152
c9762558857f class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1151
diff changeset
   455
                    console_printf("arr: arr = 0x%x\n", (INT)arr);
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   456
#if defined(__x86_64__)
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   457
                    val = 0x0001000100010001;
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   458
#else
1150
8a9b863af504 class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1102
diff changeset
   459
                    val.lo = 1; val.hi = 1;
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   460
#endif
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   461
                    val =  __LongIntegerArrayInstPtr(arr)->i_element[0];
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   462
//                    console_printf("v1: val.lo = %d, val.hi = %d\n", val.lo, val.hi);
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   463
                    v1 = __MKUINT64(&val);
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   464
                    val =  __LongIntegerArrayInstPtr(arr)->i_element[7];
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   465
//                    console_printf("v2: val.lo = %d, val.hi = %d\n", val.lo, val.hi); 
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   466
                    v8 = __MKUINT64(&val);
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   467
%}.
1150
8a9b863af504 class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1102
diff changeset
   468
                    v1 errorPrintCR.
8a9b863af504 class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1102
diff changeset
   469
                    v8 errorPrintCR.
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   470
                    ^ Array with: v1 with: v8.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   471
   '
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   472
                    forClass:self class class
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   473
                    selector:#'longIntegerArray_i_element'
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   474
                    inCategory:'tests'
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   475
                    notifying:nil
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   476
                    install:true
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   477
                    skipIfSame:false
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   478
                    silent:true.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   479
                1 to:100 do:[:i | 
1344
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   480
                    verbose ifTrue:[
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   481
                        ('Pass ' , i printString) errorPrintCR.
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   482
                    ].    
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   483
                    sizes := self class perform:#'longIntegerArray_i_element'.
1344
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   484
                    self assert:(sizes first = 11123456789) description:('failed in pass ',i printString).
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   485
                    self assert:(sizes second = 11123456789) description:('failed in pass ',i printString).
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   486
                ].
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   487
                self class class removeSelector:#'longIntegerArray_i_element'.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   488
            ].
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   489
    ] ensure:[ self class class removeSelector:#'longIntegerArray_i_element'. ]
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   490
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   491
    "
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   492
     self run:#test02_compilation
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   493
     self new test02_compilation"
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   494
    "Created: / 04-03-2014 / 10:21:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1152
c9762558857f class: RegressionTests::STCCompilerTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1151
diff changeset
   495
    "Modified: / 26-06-2014 / 10:44:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   496
!
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   497
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   498
test_LongIntegerArray_03
1344
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   499
    "does many scavenges to check if the moved LongIntegerArray remains at
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   500
     an aligned address"
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   501
     
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   502
    |verbose arr scaveneges|
1153
76b812a0759c Added test to prove that (Signed)LongIntegerArray at:/at:put: behaves wrong on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1152
diff changeset
   503
1344
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   504
    verbose := false.
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   505
    
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   506
    verbose ifTrue:[ 
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   507
        ('=====') errorPrintCR 
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   508
    ].
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   509
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   510
    arr := LongIntegerArray new:8.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   511
    arr at:1 put:11123456789.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   512
    arr at:8 put:11123456789.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   513
    self assert:(arr at:1) = 11123456789.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   514
    self assert:(arr at:8) = 11123456789.
1344
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   515
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   516
    verbose ifTrue:[ 
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   517
        ('   arr = 0x' , (ObjectMemory addressOf:arr) hexPrintString) errorPrintCR.
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   518
    ].
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   519
    
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   520
    1 to:100 do:[:i | 
1344
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   521
        verbose ifTrue:[ 
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   522
            ('Pass ' , i printString) errorPrintCR.
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   523
        ].
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   524
        
1153
76b812a0759c Added test to prove that (Signed)LongIntegerArray at:/at:put: behaves wrong on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1152
diff changeset
   525
        scaveneges := ObjectMemory scavengeCount.
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   526
        [
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   527
            scaveneges == ObjectMemory scavengeCount
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   528
        ] whileTrue:[
1153
76b812a0759c Added test to prove that (Signed)LongIntegerArray at:/at:put: behaves wrong on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1152
diff changeset
   529
            "/ Allocate some gagbage"
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   530
            Array new:(Random nextIntegerBetween:1 and:100)
1153
76b812a0759c Added test to prove that (Signed)LongIntegerArray at:/at:put: behaves wrong on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1152
diff changeset
   531
        ].
1344
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   532
        verbose ifTrue:[ 
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   533
            ('B: arr = 0x' , (ObjectMemory addressOf:arr) hexPrintString) errorPrintCR.
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   534
            ('   arr at: 1 ==> ' , (arr at:1) printString) errorPrintCR.
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   535
            ('   arr at: 8 ==> ' , (arr at:8) printString) errorPrintCR.
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   536
        ].
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   537
        self assert:(arr at:1) = 11123456789 description:('failed in pass ',i printString).
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   538
        self assert:(arr at:8) = 11123456789 description:('failed in pass ',i printString).
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   539
        verbose ifTrue:[ 
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   540
            ('A: arr = 0x' , (ObjectMemory addressOf:arr) hexPrintString) errorPrintCR.
1552f03fe63a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   541
        ]
1153
76b812a0759c Added test to prove that (Signed)LongIntegerArray at:/at:put: behaves wrong on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1152
diff changeset
   542
    ]
76b812a0759c Added test to prove that (Signed)LongIntegerArray at:/at:put: behaves wrong on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1152
diff changeset
   543
76b812a0759c Added test to prove that (Signed)LongIntegerArray at:/at:put: behaves wrong on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1152
diff changeset
   544
    "
76b812a0759c Added test to prove that (Signed)LongIntegerArray at:/at:put: behaves wrong on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1152
diff changeset
   545
     self run:#test_LongIntegeraArray_03
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   546
     self new test_LongIntegeraArray_03"
1153
76b812a0759c Added test to prove that (Signed)LongIntegerArray at:/at:put: behaves wrong on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1152
diff changeset
   547
    "Created: / 26-06-2014 / 12:21:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
76b812a0759c Added test to prove that (Signed)LongIntegerArray at:/at:put: behaves wrong on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1152
diff changeset
   548
!
76b812a0759c Added test to prove that (Signed)LongIntegerArray at:/at:put: behaves wrong on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1152
diff changeset
   549
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   550
test_SignedLongIntegerArray_01
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   551
    |sizes|
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   552
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   553
    [
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   554
        Class 
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   555
            withoutUpdatingChangesDo:[
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   556
                "/ Now, compile the same source using stc and check...
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   557
                (STCCompilerInterface new) 
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   558
                    compileToMachineCode:'signedLongIntegerArray_size
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   559
                    | arr size1 size2 |
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   560
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   561
                    arr := SignedLongIntegerArray new: 8.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   562
                    size1 := arr size.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   563
%{
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   564
                    size2 = __MKINT(__signedLongIntegerArraySize(arr));
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   565
%}.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   566
                    ^ Array with: size1 with: size2.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   567
   '
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   568
                    forClass:self class class
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   569
                    selector:#'signedLongIntegerArray_size'
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   570
                    inCategory:'tests'
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   571
                    notifying:nil
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   572
                    install:true
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   573
                    skipIfSame:false
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   574
                    silent:true.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   575
                sizes := self class perform:#'signedLongIntegerArray_size'.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   576
                self assert:(sizes first == 8).
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   577
                self assert:(sizes second == 8).
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   578
                self class class removeSelector:#'signedLongIntegerArray_size'.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   579
            ].
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   580
    ] ensure:[ self class class removeSelector:#'signedLongIntegerArray_size'. ]
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   581
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   582
    "
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   583
     self run:#test02_compilation
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   584
     self new test02_compilation"
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   585
    "Created: / 04-03-2014 / 10:11:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   586
!
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   587
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   588
test_SignedLongIntegerArray_02
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   589
    |sizes|
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   590
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   591
    [
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   592
        Class 
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   593
            withoutUpdatingChangesDo:[
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   594
                (STCCompilerInterface new) 
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   595
                    compileToMachineCode:'signedLongIntegerArray_i_element
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   596
                    | arr v1 v8 |
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   597
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   598
                    arr := SignedLongIntegerArray new: 8.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   599
                    arr at: 1 put: 1123456789.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   600
                    arr at: 8 put: 1123456789.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   601
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   602
%{
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   603
                    __int64__ val;
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   604
                    val =  __SignedLongIntegerArrayInstPtr(arr)->i_element[0];
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   605
                    v1 = __MKINT64(&val);
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   606
                    val =  __SignedLongIntegerArrayInstPtr(arr)->i_element[7];
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   607
                    v8 = __MKINT64(&val);
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   608
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   609
%}.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   610
                    ^ Array with: v1 with: v8.
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   611
   '
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   612
                    forClass:self class class
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   613
                    selector:#'signedLongIntegerArray_i_element'
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   614
                    inCategory:'tests'
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   615
                    notifying:nil
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   616
                    install:true
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   617
                    skipIfSame:false
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   618
                    silent:true.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   619
                sizes := self class perform:#'signedLongIntegerArray_i_element'.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   620
                self assert:(sizes first = 1123456789).
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   621
                self assert:(sizes second = 1123456789).
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   622
                self class class removeSelector:#'signedLongIntegerArray_i_element'.
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   623
            ].
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   624
    ] ensure:[ self class class removeSelector:#'signedLongIntegerArray_i_element'. ]
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   625
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   626
    "
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   627
     self run:#test02_compilation
1290
9575752f8c52 class: RegressionTests::STCCompilerTests
Stefan Vogel <sv@exept.de>
parents: 1166
diff changeset
   628
     self new test02_compilation"
1102
0b428b9f023f Added some tests for (Signed)LongIntegerArray.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1048
diff changeset
   629
    "Created: / 04-03-2014 / 10:13:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
638
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   630
! !
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   631
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   632
!STCCompilerTests class methodsFor:'documentation'!
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   633
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   634
version
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   635
    ^ '$Header$'
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   636
!
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   637
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   638
version_CVS
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   639
    ^ '$Header$'
58506b6e5ede initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   640
! !
809
63b232026107 class: RegressionTests::STCCompilerTests
Claus Gittinger <cg@exept.de>
parents: 667
diff changeset
   641