Skip to content

Commit 046ed2b

Browse files
Fix issue 317 - add SCS and SCC as legal target for IUT in TCT (#350)
* Fix issue 317 - add SCS and SCC as legal target for IUT in TCT --------- Co-authored-by: Tobias Persson <[email protected]>
1 parent 37b2d1b commit 046ed2b

File tree

3 files changed

+487
-2
lines changed

3 files changed

+487
-2
lines changed
Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
# Copyright 2017-2023 Ericsson AB and others.
2+
# For a full list of individual contributors, please see the commit history.
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "License");
5+
# you may not use this file except in compliance with the License.
6+
# You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
---
16+
$schema: http://json-schema.org/draft-04/schema#
17+
_abbrev: TCT
18+
_description: |-
19+
The EiffelTestCaseTriggeredEvent declares that the execution of a test case has been triggered, but not yet started. This can either be declared stand-alone or as part of an activity or test suite, using either a __CAUSE__ or a __CONTEXT__ link type, respectively.
20+
21+
This event is used to communicate intent, and thereby serves a similar purpose to that of [EiffelActivityTriggeredEvent](./EiffelActivityTriggeredEvent.md). A triggered test case execution is expected to either be started (represented by [EiffelTestCaseStartedEvent](./EiffelTestCaseStartedEvent.md)) or canceled (represented by [EiffelTestCaseCanceledEvent](./EiffelTestCaseCanceledEvent.md)). Consequently, any delay between triggering and execution can be assumed to imply queuing time (e.g. waiting for available test resources) and monitored as such.
22+
type: object
23+
properties:
24+
meta:
25+
$ref: ../EiffelMetaProperty/3.1.0.yml
26+
data:
27+
type: object
28+
properties:
29+
testCase:
30+
_description: Identification of the test case to be executed.
31+
type: object
32+
properties:
33+
tracker:
34+
_description: The name of the test case tracker - typically
35+
a test management system.
36+
type: string
37+
id:
38+
_description: The unique identity of the test case to be
39+
executed.
40+
type: string
41+
version:
42+
_description: The unique version of the identified test
43+
case to be executed. Where this property is not used
44+
it is assumed that test cases are not version controlled.
45+
type: string
46+
uri:
47+
_description: A location where a description of the test
48+
case can be retrieved. To the extent that multiple versions
49+
of the same test case co-exist, this property SHALL identify
50+
the exact version to be executed.
51+
type: string
52+
required:
53+
- id
54+
additionalProperties: false
55+
recipeId:
56+
_description: If triggering this test case execution was the
57+
result of an Execution Recipe, as defined by an [EiffelTestExecutionRecipeCollectionCreatedEvent](./EiffelTestExecutionRecipeCollectionCreatedEvent.md),
58+
this UUID SHALL match the relevant __data.batches.recipes.id__
59+
in that event.
60+
type: string
61+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
62+
triggers:
63+
_description: The circumstances triggering the test case execution.
64+
type: array
65+
items:
66+
type: object
67+
properties:
68+
type:
69+
_description: |-
70+
The type of trigger.
71+
MANUAL signifies that the test case execution was manually triggered.
72+
EIFFEL_EVENT signifies that the test case execution was triggered by one or more Eiffel events. These events should be represented via __CAUSE__ links.
73+
SOURCE_CHANGE signifies that the test case execution was triggered as a consequence of a detected source change __not__ represented by Eiffel events.
74+
TIMER signifies that the test case execution was triggered by a timer.
75+
OTHER signifies any other triggering cause.
76+
type: string
77+
enum:
78+
- MANUAL
79+
- EIFFEL_EVENT
80+
- SOURCE_CHANGE
81+
- TIMER
82+
- OTHER
83+
description:
84+
_description: A description of the trigger.
85+
type: string
86+
required:
87+
- type
88+
additionalProperties: false
89+
executionType:
90+
_description: The type of execution (often related to, but
91+
ultimately separate from, __data.triggers.type__).
92+
type: string
93+
enum:
94+
- MANUAL
95+
- SEMI_AUTOMATED
96+
- AUTOMATED
97+
- OTHER
98+
parameters:
99+
_description: A list of parameters to be passed to the test
100+
case execution.
101+
type: array
102+
items:
103+
type: object
104+
properties:
105+
name:
106+
_description: The name of the parameter.
107+
type: string
108+
value:
109+
_description: The value of the parameter.
110+
type: string
111+
required:
112+
- name
113+
- value
114+
additionalProperties: false
115+
customData:
116+
type: array
117+
items:
118+
$ref: ../EiffelCustomDataProperty/1.0.0.yml
119+
required:
120+
- testCase
121+
additionalProperties: false
122+
links:
123+
type: array
124+
items:
125+
$ref: ../EiffelEventLink/1.1.1.yml
126+
required:
127+
- meta
128+
- data
129+
- links
130+
additionalProperties: false
131+
_links:
132+
CAUSE:
133+
description: 'Identifies a cause of the event occurring. SHOULD
134+
not be used in conjunction with __CONTEXT__: individual events
135+
providing __CAUSE__ within a larger context gives rise to ambiguity.
136+
It is instead recommended to let the root event of the context
137+
declare __CAUSE__.'
138+
required: false
139+
multiple: true
140+
targets:
141+
any_type: true
142+
types: []
143+
CONTEXT:
144+
description: Identifies the activity or test suite of which this
145+
event constitutes a part.
146+
required: false
147+
multiple: false
148+
targets:
149+
any_type: false
150+
types:
151+
- EiffelActivityTriggeredEvent
152+
- EiffelTestSuiteStartedEvent
153+
FLOW_CONTEXT:
154+
description: 'Identifies the flow context of the event: which is
155+
the continuous integration and delivery flow in which this occurred
156+
– e.g. which product, project, track or version this is applicable
157+
to.'
158+
required: false
159+
multiple: true
160+
targets:
161+
any_type: false
162+
types:
163+
- EiffelFlowContextDefinedEvent
164+
IUT:
165+
description: Identifies the Item Under Test; in other words, the
166+
entity that is about to be tested.
167+
required: true
168+
multiple: false
169+
targets:
170+
any_type: false
171+
types:
172+
- EiffelArtifactCreatedEvent
173+
- EiffelCompositionDefinedEvent
174+
- EiffelSourceChangeCreatedEvent
175+
- EiffelSourceChangeSubmittedEvent
176+
PRECURSOR:
177+
description: 'Used to declare temporal relationships between
178+
[activities](../eiffel-syntax-and-usage/glossary.md#activity) in a
179+
[pipeline](../eiffel-syntax-and-usage/glossary.md#pipeline), i.e. what
180+
other activity/activities preceded this activity. This link type applies
181+
primarily to non event-triggered activities. For more information on
182+
the usage of this link type please see
183+
[Activity Linking](../eiffel-syntax-and-usage/activity-linking.md).'
184+
required: false
185+
multiple: true
186+
targets:
187+
any_type: false
188+
types:
189+
- EiffelTestCaseTriggeredEvent
190+
_history:
191+
- version: 3.3.0
192+
introduced_in: Current version
193+
changes: Add SCS and SCC as legal target for IUT in TCT (see [Issue 317](https://github.com/eiffel-community/eiffel/issues/317)).
194+
- version: 3.2.0
195+
introduced_in: '[edition-arica](../../../tree/edition-arica)'
196+
changes: Add schema URL to the meta object (see [Issue 280](https://github.com/eiffel-community/eiffel/issues/280)).
197+
- version: 3.1.0
198+
introduced_in: '[edition-lyon](../../../tree/edition-lyon)'
199+
changes: Add links.domainId member (see [Issue 233](https://github.com/eiffel-community/eiffel/issues/233)).
200+
- version: 3.0.0
201+
introduced_in: '[edition-agen](../../../tree/edition-agen)'
202+
changes: Improved information integrity protection (see [Issue
203+
185](https://github.com/eiffel-community/eiffel/issues/185)).
204+
- version: 2.0.0
205+
introduced_in: '[dc5ec6f](../../../blob/dc5ec6fb87e293eeffe88fdafe698eec0f5a2c89/eiffel-vocabulary/EiffelTestCaseTriggeredEvent.md)'
206+
changes: Introduced purl identifiers instead of GAVs (see [Issue
207+
182](https://github.com/eiffel-community/eiffel/issues/182))
208+
- version: 1.1.0
209+
introduced_in: '[edition-toulouse](../../../tree/edition-toulouse)'
210+
changes: Multiple links of type FLOW_CONTEXT allowed.
211+
- version: 1.0.0
212+
introduced_in: '[edition-bordeaux](../../../tree/edition-bordeaux)'
213+
changes: Initial version.
214+
_examples:
215+
- title: Simple example
216+
url: ../examples/events/EiffelTestCaseTriggeredEvent/simple.json
217+
- title: Simple example using pre-3.0.0 meta.security object
218+
url: ../examples/events/EiffelTestCaseTriggeredEvent/simple-2.0.0.json

eiffel-vocabulary/EiffelTestCaseTriggeredEvent.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!---
2-
This file was generated from ../definitions/EiffelTestCaseTriggeredEvent/3.2.0.yml.
2+
This file was generated from ../definitions/EiffelTestCaseTriggeredEvent/3.3.0.yml.
33
See that file for a copyright notice.
44
--->
55

@@ -107,7 +107,7 @@ __Description:__ Identifies the flow context of the event: which is the continuo
107107

108108
### IUT
109109
__Required:__ Yes
110-
__Legal targets:__ [EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtifactCreatedEvent.md), [EiffelCompositionDefinedEvent](../eiffel-vocabulary/EiffelCompositionDefinedEvent.md)
110+
__Legal targets:__ [EiffelArtifactCreatedEvent](../eiffel-vocabulary/EiffelArtifactCreatedEvent.md), [EiffelCompositionDefinedEvent](../eiffel-vocabulary/EiffelCompositionDefinedEvent.md), [EiffelSourceChangeCreatedEvent](../eiffel-vocabulary/EiffelSourceChangeCreatedEvent.md), [EiffelSourceChangeSubmittedEvent](../eiffel-vocabulary/EiffelSourceChangeSubmittedEvent.md)
111111
__Multiple allowed:__ No
112112
__Description:__ Identifies the Item Under Test; in other words, the entity that is about to be tested.
113113

@@ -251,6 +251,7 @@ __Description:__ A URI pointing at a location from where the schema used when cr
251251

252252
| Version | Introduced in | Changes |
253253
| ------- | ------------- | ------- |
254+
| 3.3.0 | Current version | Add SCS and SCC as legal target for IUT in TCT (see [Issue 317](https://github.com/eiffel-community/eiffel/issues/317)). |
254255
| 3.2.0 | [edition-arica](../../../tree/edition-arica) | Add schema URL to the meta object (see [Issue 280](https://github.com/eiffel-community/eiffel/issues/280)). |
255256
| 3.1.0 | [edition-lyon](../../../tree/edition-lyon) | Add links.domainId member (see [Issue 233](https://github.com/eiffel-community/eiffel/issues/233)). |
256257
| 3.0.0 | [edition-agen](../../../tree/edition-agen) | Improved information integrity protection (see [Issue 185](https://github.com/eiffel-community/eiffel/issues/185)). |

0 commit comments

Comments
 (0)