RegressionTests__StackFrameTest.st
author Claus Gittinger <cg@exept.de>
Tue, 25 Feb 2020 17:18:51 +0100
changeset 2579 bec2c103be07
parent 2475 4f7b81468c3f
permissions -rw-r--r--
#OTHER by cg s
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1160
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
99
c06dffcc18d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 71
diff changeset
     5
TestCase subclass:#StackFrameTest
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
1160
8dd3ef314aa6 category changes
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
     9
	category:'tests-Regression-RuntimeSystem'
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
99
c06dffcc18d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 71
diff changeset
    13
!StackFrameTest methodsFor:'tests'!
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
2474
82fa46883b75 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2123
diff changeset
    15
deepRecursionTest
82fa46883b75 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2123
diff changeset
    16
    |b|
82fa46883b75 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2123
diff changeset
    17
82fa46883b75 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2123
diff changeset
    18
    b := [:n |
82fa46883b75 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2123
diff changeset
    19
            n printCR.
82fa46883b75 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2123
diff changeset
    20
            b value:(n + 1)
82fa46883b75 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2123
diff changeset
    21
         ].
82fa46883b75 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2123
diff changeset
    22
82fa46883b75 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2123
diff changeset
    23
    b value:1.
2475
4f7b81468c3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2474
diff changeset
    24
4f7b81468c3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2474
diff changeset
    25
    "
4f7b81468c3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2474
diff changeset
    26
     self new deepRecursionTest
4f7b81468c3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2474
diff changeset
    27
    "
2474
82fa46883b75 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2123
diff changeset
    28
!
82fa46883b75 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2123
diff changeset
    29
145
940e50066f85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 99
diff changeset
    30
testUnlimitedStack1
1714
e859d29370c8 #FEATURE by sr
sr
parents: 1447
diff changeset
    31
    self 
e859d29370c8 #FEATURE by sr
sr
parents: 1447
diff changeset
    32
        skipIf:(OperatingSystem isMSDOSlike and:[ExternalAddress pointerSize == 8])
e859d29370c8 #FEATURE by sr
sr
parents: 1447
diff changeset
    33
        description:'Fails under Win64 (stx will exit), requires deeper inspection'.
145
940e50066f85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 99
diff changeset
    34
1714
e859d29370c8 #FEATURE by sr
sr
parents: 1447
diff changeset
    35
    10 timesRepeat:[
e859d29370c8 #FEATURE by sr
sr
parents: 1447
diff changeset
    36
        |a|
e859d29370c8 #FEATURE by sr
sr
parents: 1447
diff changeset
    37
e859d29370c8 #FEATURE by sr
sr
parents: 1447
diff changeset
    38
        a := Array with:('1' copy) with:('2' copy) with:('3' copy) with:('4' copy) with:('5' copy).
e859d29370c8 #FEATURE by sr
sr
parents: 1447
diff changeset
    39
        self unlimitedStackTest1:a.
e859d29370c8 #FEATURE by sr
sr
parents: 1447
diff changeset
    40
        true.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1160
diff changeset
    41
    ]
145
940e50066f85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 99
diff changeset
    42
940e50066f85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 99
diff changeset
    43
    "
940e50066f85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 99
diff changeset
    44
     self run:#testUnlimitedStack1
940e50066f85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 99
diff changeset
    45
    "
940e50066f85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 99
diff changeset
    46
!
940e50066f85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 99
diff changeset
    47
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
unlimitedStackTest1:anArray
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
"
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
[
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    |a|
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    a := Array with:'1' copy with:'2' copy with:'3' copy with:'4' copy with:'5' copy.
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    self unlimitedStackTest1:a.
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    true.
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
] whileTrue
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
"
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
%{  /* UNLIMITEDSTACK */
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    OBJ __returnArray;
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    OBJ __symbol;
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    OBJ __returnCode;
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
2123
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    64
    if (!__isStringLike(__ArrayInstPtr(anArray)->a_element[0])) {
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    65
        printf("OOPS\n");
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    };
2123
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    67
    if (!__isStringLike(__ArrayInstPtr(anArray)->a_element[1])) {
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    68
        printf("OOPS\n");
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    };
2123
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    70
    if (!__isStringLike(__ArrayInstPtr(anArray)->a_element[2])) {
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    71
        printf("OOPS\n");
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    };
2123
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    73
    if (!__isStringLike(__ArrayInstPtr(anArray)->a_element[3])) {
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    74
        printf("OOPS\n");
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
    };
2123
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    76
    if (!__isStringLike(__ArrayInstPtr(anArray)->a_element[4])) {
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    77
        printf("OOPS\n");
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    };
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
    __PROTECT__(anArray);
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    __scavenge();
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
    __UNPROTECT__(anArray);
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
2123
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    84
    if (!__isStringLike(__ArrayInstPtr(anArray)->a_element[0])) {
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    85
        printf("OOPS2\n");
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    };
2123
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    87
    if (!__isStringLike(__ArrayInstPtr(anArray)->a_element[1])) {
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    88
        printf("OOPS2\n");
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    };
2123
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    90
    if (!__isStringLike(__ArrayInstPtr(anArray)->a_element[2])) {
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    91
        printf("OOPS2\n");
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    };
2123
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    93
    if (!__isStringLike(__ArrayInstPtr(anArray)->a_element[3])) {
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    94
        printf("OOPS2\n");
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    };
2123
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    96
    if (!__isStringLike(__ArrayInstPtr(anArray)->a_element[4])) {
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
    97
        printf("OOPS2\n");
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
    };
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
%}.
2123
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
   100
73df3f21c5a8 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 1714
diff changeset
   101
    "Modified: / 22-03-2019 / 03:01:38 / Claus Gittinger"
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
! !
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
!StackFrameTest class methodsFor:'documentation'!
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
version
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
    ^ '$Header$'
2475
4f7b81468c3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2474
diff changeset
   108
!
4f7b81468c3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2474
diff changeset
   109
4f7b81468c3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2474
diff changeset
   110
version_CVS
4f7b81468c3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2474
diff changeset
   111
    ^ '$Header$'
71
5d3b7394a36a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
! !
1160
8dd3ef314aa6 category changes
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   113