aboutsummaryrefslogtreecommitdiff
path: root/unit-tests/test/script/parser/setup-teardown.testscript
blob: 12fde8c7e62bd16bfb580e3724b22ece64560360 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# file      : unit-tests/test/script/parser/setup-teardown.testscript
# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
# license   : MIT; see accompanying LICENSE file

: setup
:
{
  : followed
  :
  {
    : semi
    :
    $* <"+cmd;" 2>>EOE != 0
    testscript:1:5: error: ';' after setup command
    EOE

    : colon
    :
    $* <"+cmd:" 2>>EOE != 0
    testscript:1:5: error: ':' after setup command
    EOE
  }

  : after
  :
  {
    : test
    :
    $* <<EOI 2>>EOE != 0
    cmd
    +cmd
    EOI
    testscript:2:1: error: setup command after tests
    EOE

    : after-tdownt
    :
    $* <<EOI 2>>EOE != 0
    -cmd
    +cmd
    EOI
    testscript:2:1: error: setup command after teardown
    EOE
  }

  : in-test
  :
  $* <<EOI 2>>EOE != 0
  cmd;
  +cmd
  EOI
  testscript:2:1: error: setup command in test
  EOE
}

: tdown
:
{
  : followed
  :
  {
    : semi
    :
    $* <"-cmd;" 2>>EOE != 0
    testscript:1:5: error: ';' after teardown command
    EOE

    : colon
    :
    $* <"-cmd:" 2>>EOE != 0
    testscript:1:5: error: ':' after teardown command
    EOE
  }

  : in-test
  :
  $* <<EOI 2>>EOE != 0
  cmd;
  -cmd
  EOI
  testscript:2:1: error: teardown command in test
  EOE
}

: var
:
{
  : between-tests
  :
  $* <<EOI 2>>EOE != 0
  cmd
  x = y
  cmd
  EOI
  testscript:3:1: error: test after teardown
    testscript:2:1: info: last teardown line appears here
  EOE

  : between-tests-scope
  :
  $* <<EOI 2>>EOE != 0
  cmd
  x = y
  {
    cmd
  }
  EOI
  testscript:3:1: error: scope after teardown
    testscript:2:1: info: last teardown line appears here
  EOE

  : between-tests-command-if
  :
  $* <<EOI 2>>EOE != 0
  cmd
  x = y
  if true
    cmd
  end
  EOI
  testscript:3:1: error: test after teardown
    testscript:2:1: info: last teardown line appears here
  EOE

  : between-tests-scope-if
  :
  $* <<EOI 2>>EOE != 0
  cmd
  x = y
  if true
  {
    cmd
  }
  EOI
  testscript:3:1: error: scope after teardown
    testscript:2:1: info: last teardown line appears here
  EOE

  : between-tests-variable-if
  :
  $* <<EOI >>EOO
  cmd
  x = y
  if true
    y = x
  end
  EOI
  cmd
  ? true
  EOO
}