xref: /aosp_15_r20/external/parameter-framework/upstream/test/functional-tests/plan.md (revision c33452fb792a5495ec310a9626f2638b053af5dd)
1*c33452fbSAndroid Build Coastguard Worker# Parameter Framework (PF) test plan
2*c33452fbSAndroid Build Coastguard Worker
3*c33452fbSAndroid Build Coastguard Worker## Notes
4*c33452fbSAndroid Build Coastguard Worker- The unit test code MAY be able to list implemented scenarios
5*c33452fbSAndroid Build Coastguard Worker  in this same BDD format in order to check scenario coverage.
6*c33452fbSAndroid Build Coastguard Worker- All scenarios implicitly start by _"GIVEN a parameter framework"_.
7*c33452fbSAndroid Build Coastguard Worker- If a scenario does not specify a config files,
8*c33452fbSAndroid Build Coastguard Worker  the following minimal files SHOULD be used:
9*c33452fbSAndroid Build Coastguard Worker
10*c33452fbSAndroid Build Coastguard WorkerTop level file (replace `{structurePath}` by its value):
11*c33452fbSAndroid Build Coastguard Worker~~~ xml
12*c33452fbSAndroid Build Coastguard Worker<?xml version='1.0' encoding='UTF-8'?>
13*c33452fbSAndroid Build Coastguard Worker<ParameterFrameworkConfiguration SystemClassName='test'
14*c33452fbSAndroid Build Coastguard Worker                                 TuningAllowed='false' ServerPort='1'>
15*c33452fbSAndroid Build Coastguard Worker    <SubsystemPlugins/>
16*c33452fbSAndroid Build Coastguard Worker    <StructureDescriptionFileLocation Path='{structurePath}'/>
17*c33452fbSAndroid Build Coastguard Worker</ParameterFrameworkConfiguration>
18*c33452fbSAndroid Build Coastguard Worker~~~
19*c33452fbSAndroid Build Coastguard Worker
20*c33452fbSAndroid Build Coastguard WorkerStructure file:
21*c33452fbSAndroid Build Coastguard Worker~~~ xml
22*c33452fbSAndroid Build Coastguard Worker<?xml version='1.0' encoding='UTF-8'?>
23*c33452fbSAndroid Build Coastguard Worker<SystemClass Name='test'>
24*c33452fbSAndroid Build Coastguard Worker    <Subsystem Name='test' Type='Virtual'>
25*c33452fbSAndroid Build Coastguard Worker        <ComponentLibrary/>
26*c33452fbSAndroid Build Coastguard Worker        <InstanceDefinition>
27*c33452fbSAndroid Build Coastguard Worker            <BooleanParameter Name="placeholder"/>
28*c33452fbSAndroid Build Coastguard Worker        </InstanceDefinition>
29*c33452fbSAndroid Build Coastguard Worker    </Subsystem>
30*c33452fbSAndroid Build Coastguard Worker</SystemClass>
31*c33452fbSAndroid Build Coastguard Worker~~~
32*c33452fbSAndroid Build Coastguard Worker
33*c33452fbSAndroid Build Coastguard Worker## Starting the Parameter Framework
34*c33452fbSAndroid Build Coastguard Worker
35*c33452fbSAndroid Build Coastguard Worker- set a logger
36*c33452fbSAndroid Build Coastguard Worker    - [X] Scenario: Default logger
37*c33452fbSAndroid Build Coastguard Worker        * WHEN no logger is set
38*c33452fbSAndroid Build Coastguard Worker        * THEN start should succeed
39*c33452fbSAndroid Build Coastguard Worker
40*c33452fbSAndroid Build Coastguard Worker    - [X] Scenario: No logger
41*c33452fbSAndroid Build Coastguard Worker        * WHEN a nullptr logger is set
42*c33452fbSAndroid Build Coastguard Worker        * THEN start should succeed
43*c33452fbSAndroid Build Coastguard Worker
44*c33452fbSAndroid Build Coastguard Worker    - [X] Scenario: Logger should receive info and warnings
45*c33452fbSAndroid Build Coastguard Worker        * GIVEN config files that emit warnings
46*c33452fbSAndroid Build Coastguard Worker        * GIVEN a logger that store logs
47*c33452fbSAndroid Build Coastguard Worker        * WHEN the record logger is set
48*c33452fbSAndroid Build Coastguard Worker        * THEN start should succeed
49*c33452fbSAndroid Build Coastguard Worker        * AND_THEN the logger should have stored info and warning log
50*c33452fbSAndroid Build Coastguard Worker
51*c33452fbSAndroid Build Coastguard Worker    - [X] Scenario: Unset logger
52*c33452fbSAndroid Build Coastguard Worker        * GIVEN config files that emit warnings
53*c33452fbSAndroid Build Coastguard Worker        * GIVEN a logger that store logs
54*c33452fbSAndroid Build Coastguard Worker        * WHEN the record logger is set
55*c33452fbSAndroid Build Coastguard Worker        * AND_WHEN a nullptr logger is set
56*c33452fbSAndroid Build Coastguard Worker        * THEN start should succeed
57*c33452fbSAndroid Build Coastguard Worker        * AND_THEN the record logger should NOT have stored any info or warning log
58*c33452fbSAndroid Build Coastguard Worker
59*c33452fbSAndroid Build Coastguard Worker- set/get various properties before startup:
60*c33452fbSAndroid Build Coastguard Worker    - "force no remote interface"
61*c33452fbSAndroid Build Coastguard Worker        - [ ] Scenario: Tuning OK
62*c33452fbSAndroid Build Coastguard Worker            * GIVEN config files with tuning enabled on a valid port
63*c33452fbSAndroid Build Coastguard Worker            * WHEN the remote interface is NOT forbiden
64*c33452fbSAndroid Build Coastguard Worker            * THEN start should succeed
65*c33452fbSAndroid Build Coastguard Worker
66*c33452fbSAndroid Build Coastguard Worker        - [ ] Scenario: Invalid tunning
67*c33452fbSAndroid Build Coastguard Worker            * GIVEN config files with tuning enabled on an invalid port (0?)
68*c33452fbSAndroid Build Coastguard Worker            * WHEN the remote interface is NOT forbiden
69*c33452fbSAndroid Build Coastguard Worker            * THEN start should fail
70*c33452fbSAndroid Build Coastguard Worker
71*c33452fbSAndroid Build Coastguard Worker        - [ ] Scenario: Forbiden invalid tunning
72*c33452fbSAndroid Build Coastguard Worker            * GIVEN config files with tuning enabled on an invalid port (0?)
73*c33452fbSAndroid Build Coastguard Worker            * WHEN the remote interface is forbiden
74*c33452fbSAndroid Build Coastguard Worker            * THEN start should succeed
75*c33452fbSAndroid Build Coastguard Worker
76*c33452fbSAndroid Build Coastguard Worker    - "failure on missing subsystem"
77*c33452fbSAndroid Build Coastguard Worker        - [ ] Scenario: Plugin OK
78*c33452fbSAndroid Build Coastguard Worker            * GIVEN config files with a valid plugin
79*c33452fbSAndroid Build Coastguard Worker            * WHEN the missing subsystem policy is set to failure
80*c33452fbSAndroid Build Coastguard Worker            * THEN start should succeed
81*c33452fbSAndroid Build Coastguard Worker
82*c33452fbSAndroid Build Coastguard Worker        - [X] Scenario: Wrong plugin
83*c33452fbSAndroid Build Coastguard Worker            * GIVEN config files with a invalid plugin
84*c33452fbSAndroid Build Coastguard Worker            * WHEN the missing subsystem policy is set to failure
85*c33452fbSAndroid Build Coastguard Worker            * THEN start should fail
86*c33452fbSAndroid Build Coastguard Worker
87*c33452fbSAndroid Build Coastguard Worker        - [ ] Scenario: Wrong plugin but fallback
88*c33452fbSAndroid Build Coastguard Worker            * GIVEN config files with a invalid plugin
89*c33452fbSAndroid Build Coastguard Worker            * WHEN the missing subsystem policy is set to success
90*c33452fbSAndroid Build Coastguard Worker            * THEN start should succeed
91*c33452fbSAndroid Build Coastguard Worker
92*c33452fbSAndroid Build Coastguard Worker    - "failure on failed settings load"
93*c33452fbSAndroid Build Coastguard Worker        - [X] Scenario: Settings OK
94*c33452fbSAndroid Build Coastguard Worker            * GIVEN config files with a valid settings file
95*c33452fbSAndroid Build Coastguard Worker            * WHEN settings load failure is requested to abort start
96*c33452fbSAndroid Build Coastguard Worker            * THEN start should succeed
97*c33452fbSAndroid Build Coastguard Worker
98*c33452fbSAndroid Build Coastguard Worker        - [X] Scenario: Wrong settings
99*c33452fbSAndroid Build Coastguard Worker            * GIVEN config files with a invalid (non existant?) settings file
100*c33452fbSAndroid Build Coastguard Worker            * WHEN settings load failure is requested to abort start
101*c33452fbSAndroid Build Coastguard Worker            * THEN start should fail
102*c33452fbSAndroid Build Coastguard Worker
103*c33452fbSAndroid Build Coastguard Worker        - [X] Scenario: Wrong settings but ignore
104*c33452fbSAndroid Build Coastguard Worker            * GIVEN config files with a invalid (non existant?) settings file
105*c33452fbSAndroid Build Coastguard Worker            * WHEN settings load failure is requested to abort start
106*c33452fbSAndroid Build Coastguard Worker            * THEN start should succeed
107*c33452fbSAndroid Build Coastguard Worker
108*c33452fbSAndroid Build Coastguard Worker    - "schema folder location" and "validate schema on start"
109*c33452fbSAndroid Build Coastguard Worker        - [ ] Scenario: Schema OK
110*c33452fbSAndroid Build Coastguard Worker            * GIVEN config files with correct default schema location
111*c33452fbSAndroid Build Coastguard Worker            * WHEN schema folder location is left to default
112*c33452fbSAndroid Build Coastguard Worker            * WHEN schema validation is enabled
113*c33452fbSAndroid Build Coastguard Worker            * THEN start should succeed
114*c33452fbSAndroid Build Coastguard Worker
115*c33452fbSAndroid Build Coastguard Worker        - [ ] Scenario: Inexisting schemas
116*c33452fbSAndroid Build Coastguard Worker            * GIVEN config files with correct default schema location
117*c33452fbSAndroid Build Coastguard Worker            * WHEN schema folder location is set to an invalid location (/doesNotExist ?)
118*c33452fbSAndroid Build Coastguard Worker            * WHEN schema validation is enabled
119*c33452fbSAndroid Build Coastguard Worker            * THEN start should fail
120*c33452fbSAndroid Build Coastguard Worker
121*c33452fbSAndroid Build Coastguard Worker        - [ ] Scenario: Inexisting ignored schemas
122*c33452fbSAndroid Build Coastguard Worker            * GIVEN config files with correct default schema location
123*c33452fbSAndroid Build Coastguard Worker            * WHEN schema folder location is set to an invalid location (/doesNotExist ?)
124*c33452fbSAndroid Build Coastguard Worker            * WHEN schema validation is disabled
125*c33452fbSAndroid Build Coastguard Worker            * THEN start should succeed
126*c33452fbSAndroid Build Coastguard Worker
127*c33452fbSAndroid Build Coastguard Worker        - [ ] Scenario: Inexisting used schemas
128*c33452fbSAndroid Build Coastguard Worker            * GIVEN config files with custom schema location (./shemaCustomFolderName)
129*c33452fbSAndroid Build Coastguard Worker            * WHEN schema folder location is set to the custom shema location
130*c33452fbSAndroid Build Coastguard Worker            * WHEN schema validation is enabled
131*c33452fbSAndroid Build Coastguard Worker            * THEN start should succeed
132*c33452fbSAndroid Build Coastguard Worker
133*c33452fbSAndroid Build Coastguard Worker        - [ ] Scenario: Schema OK, config KO
134*c33452fbSAndroid Build Coastguard Worker            * GIVEN incorect config files with correct default schema location
135*c33452fbSAndroid Build Coastguard Worker            * WHEN schema validation is enabled
136*c33452fbSAndroid Build Coastguard Worker            * THEN start should fail
137*c33452fbSAndroid Build Coastguard Worker
138*c33452fbSAndroid Build Coastguard Worker### Error cases/special cases
139*c33452fbSAndroid Build Coastguard Worker
140*c33452fbSAndroid Build Coastguard Worker- invalid configuration or a file can't be read:
141*c33452fbSAndroid Build Coastguard Worker    - [X] Scenario: invalid top level config file
142*c33452fbSAndroid Build Coastguard Worker        * GIVEN an incorect (empty ? wrong balisa ?) config top level file.
143*c33452fbSAndroid Build Coastguard Worker        * THEN start should fail
144*c33452fbSAndroid Build Coastguard Worker
145*c33452fbSAndroid Build Coastguard Worker    - [X] Scenario: invalid structure
146*c33452fbSAndroid Build Coastguard Worker        * GIVEN an incorect (empty ? wrong balisa ?) structure file.
147*c33452fbSAndroid Build Coastguard Worker        * THEN start should fail
148*c33452fbSAndroid Build Coastguard Worker
149*c33452fbSAndroid Build Coastguard Worker    - [X] Scenario: invalid settings
150*c33452fbSAndroid Build Coastguard Worker        * GIVEN an incorect (empty ? wrong balisa ?) settings file.
151*c33452fbSAndroid Build Coastguard Worker        * THEN start should fail
152*c33452fbSAndroid Build Coastguard Worker
153*c33452fbSAndroid Build Coastguard Worker- plugins can't be found (unless silenced by the user)
154*c33452fbSAndroid Build Coastguard Worker    - Done in "failure on missing subsystem"
155*c33452fbSAndroid Build Coastguard Worker
156*c33452fbSAndroid Build Coastguard Worker- usage of `<xi:include .../>`
157*c33452fbSAndroid Build Coastguard Worker    - [ ] Scenario: Arbitrary xincluded node
158*c33452fbSAndroid Build Coastguard Worker        * GIVEN a top level file xincluding a file with the "SettingsConfiguration" balisa
159*c33452fbSAndroid Build Coastguard Worker        * THEN start should succeed
160*c33452fbSAndroid Build Coastguard Worker
161*c33452fbSAndroid Build Coastguard Worker- plugins:
162*c33452fbSAndroid Build Coastguard Worker    - non-empty "Location" attribute
163*c33452fbSAndroid Build Coastguard Worker        - [ ] Scenario: Plugin location OK
164*c33452fbSAndroid Build Coastguard Worker            * GIVEN a top level file with a plugin folder location attribute
165*c33452fbSAndroid Build Coastguard Worker            * THEN start should succeed
166*c33452fbSAndroid Build Coastguard Worker    - empty "Location" attribute
167*c33452fbSAndroid Build Coastguard Worker        - relative path
168*c33452fbSAndroid Build Coastguard Worker            - [ ] Scenario: Empty Location, standard plugin install
169*c33452fbSAndroid Build Coastguard Worker                * GIVEN config files with an empty location attribute
170*c33452fbSAndroid Build Coastguard Worker                * GIVEN a plugin installed in a dlopen standard path
171*c33452fbSAndroid Build Coastguard Worker                * GIVEN that "Location/Plugin[name]" is the plugin name
172*c33452fbSAndroid Build Coastguard Worker                * THEN start should succeed
173*c33452fbSAndroid Build Coastguard Worker
174*c33452fbSAndroid Build Coastguard Worker            - [ ] Scenario: Empty Location, non standard plugin install
175*c33452fbSAndroid Build Coastguard Worker                * GIVEN config files with an empty location attribute
176*c33452fbSAndroid Build Coastguard Worker                * GIVEN a plugin NOT installed in a dlopen standard path
177*c33452fbSAndroid Build Coastguard Worker                * GIVEN that "Location/Plugin[name]" is the plugin name
178*c33452fbSAndroid Build Coastguard Worker                * THEN start should fail
179*c33452fbSAndroid Build Coastguard Worker
180*c33452fbSAndroid Build Coastguard Worker        - absolute path
181*c33452fbSAndroid Build Coastguard Worker            - [ ] Scenario: Empty Location, plugin absolute path
182*c33452fbSAndroid Build Coastguard Worker                * GIVEN config files with an empty location attribute
183*c33452fbSAndroid Build Coastguard Worker                * GIVEN a plugin
184*c33452fbSAndroid Build Coastguard Worker                * GIVEN that "Location/Plugin[name]" is the plugin absolute path
185*c33452fbSAndroid Build Coastguard Worker                * THEN start should succeed
186*c33452fbSAndroid Build Coastguard Worker
187*c33452fbSAndroid Build Coastguard Worker            - [ ] Scenario: Empty Location, plugin non existing path
188*c33452fbSAndroid Build Coastguard Worker                * GIVEN config files with an empty location attribute
189*c33452fbSAndroid Build Coastguard Worker                * GIVEN that "Location/Plugin[name]" is an non existing path (/libDoesNotExist.so?)
190*c33452fbSAndroid Build Coastguard Worker                * THEN start should fail
191*c33452fbSAndroid Build Coastguard Worker
192*c33452fbSAndroid Build Coastguard Worker* * *
193*c33452fbSAndroid Build Coastguard Worker
194*c33452fbSAndroid Build Coastguard Worker## Logging
195*c33452fbSAndroid Build Coastguard Worker
196*c33452fbSAndroid Build Coastguard Worker- info and warning
197*c33452fbSAndroid Build Coastguard Worker    - Partly covered by the "set a logger" section
198*c33452fbSAndroid Build Coastguard Worker    - [ ] Scenario: Plugin info and warning log
199*c33452fbSAndroid Build Coastguard Worker        * GIVEN a plugin that log a unique string as info and warning
200*c33452fbSAndroid Build Coastguard Worker        * GIVEN a logger that store logs
201*c33452fbSAndroid Build Coastguard Worker        * WHEN the record logger is set
202*c33452fbSAndroid Build Coastguard Worker        * THEN start should succeed
203*c33452fbSAndroid Build Coastguard Worker        * AND_THEN the logger should have stored the plugin specific info and warning log
204*c33452fbSAndroid Build Coastguard Worker
205*c33452fbSAndroid Build Coastguard Worker* * *
206*c33452fbSAndroid Build Coastguard Worker
207*c33452fbSAndroid Build Coastguard Worker## Basic Domains & Configurations management
208*c33452fbSAndroid Build Coastguard Worker
209*c33452fbSAndroid Build Coastguard Worker- [ ] Scenario: create and delete an empty domain
210*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework without domains
211*c33452fbSAndroid Build Coastguard Worker    * THEN creating a domain with an arbitrary name ("domain1"?) should succeed
212*c33452fbSAndroid Build Coastguard Worker    * (AND_THEN the domain list should contain the domain name)
213*c33452fbSAndroid Build Coastguard Worker    * THEN deleting the domain should succeed
214*c33452fbSAndroid Build Coastguard Worker
215*c33452fbSAndroid Build Coastguard Worker- [ ] Scenario: create and delete a configuration
216*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework with a domain
217*c33452fbSAndroid Build Coastguard Worker    * THEN creating a configuration in this domain with an arbitrary name ("config1") should succeed
218*c33452fbSAndroid Build Coastguard Worker    * (AND_THEN the domain configuration list should contain the configuration name)
219*c33452fbSAndroid Build Coastguard Worker    * THEN deleting the configuration should succeed
220*c33452fbSAndroid Build Coastguard Worker    * (AND_THEN the domain configuration list should not contain the configuration name)
221*c33452fbSAndroid Build Coastguard Worker
222*c33452fbSAndroid Build Coastguard Worker- [ ] Scenario: delete a domain with configurations
223*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework with a domain and several configuration (3?)
224*c33452fbSAndroid Build Coastguard Worker    * THEN deleting the domain should succeed
225*c33452fbSAndroid Build Coastguard Worker    * (AND_THEN the domain list should not contain the domain name)
226*c33452fbSAndroid Build Coastguard Worker
227*c33452fbSAndroid Build Coastguard Worker- [ ] Scenario: delete all domains
228*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework with several domains
229*c33452fbSAndroid Build Coastguard Worker    * THEN deleting all domains should succeed
230*c33452fbSAndroid Build Coastguard Worker    * (AND_THEN the domain list should be empty)
231*c33452fbSAndroid Build Coastguard Worker
232*c33452fbSAndroid Build Coastguard Worker- [ ] Scenario: rename a domain
233*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework with a domain and several configuration (3?)
234*c33452fbSAndroid Build Coastguard Worker    * THEN renaming the domain to an arbitrary name should succeed
235*c33452fbSAndroid Build Coastguard Worker
236*c33452fbSAndroid Build Coastguard Worker
237*c33452fbSAndroid Build Coastguard Worker### Error cases/special cases
238*c33452fbSAndroid Build Coastguard Worker
239*c33452fbSAndroid Build Coastguard Worker- [ ] Scenario: create a domain with an already-existing name
240*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework with a domain (arbitrary name)
241*c33452fbSAndroid Build Coastguard Worker    * THEN creating a second domain with the same name than the first should fail
242*c33452fbSAndroid Build Coastguard Worker
243*c33452fbSAndroid Build Coastguard Worker- [ ] Scenario: create a configuration with an already-existing name
244*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework with a domain
245*c33452fbSAndroid Build Coastguard Worker            containing one configuration (arbitrary name)
246*c33452fbSAndroid Build Coastguard Worker    * THEN creating a second configuration in this domain
247*c33452fbSAndroid Build Coastguard Worker           with the same name than the fist should fail
248*c33452fbSAndroid Build Coastguard Worker
249*c33452fbSAndroid Build Coastguard Worker- [ ] delete a non-existent domain
250*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework without domain
251*c33452fbSAndroid Build Coastguard Worker    * THEN deleting an arbitrary named domain should fail
252*c33452fbSAndroid Build Coastguard Worker
253*c33452fbSAndroid Build Coastguard Worker- [ ] delete a non-existent configuration
254*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework one domain
255*c33452fbSAndroid Build Coastguard Worker    * THEN deleting in this domain a arbitrary named configuration should fail
256*c33452fbSAndroid Build Coastguard Worker
257*c33452fbSAndroid Build Coastguard Worker- [ ] list configuration of a unknown domain
258*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework without domain
259*c33452fbSAndroid Build Coastguard Worker    * THEN listing configuration of an arbitrary named domain should fail
260*c33452fbSAndroid Build Coastguard Worker
261*c33452fbSAndroid Build Coastguard Worker- [ ] Scenario: rename a domain to an already used name
262*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework with two domains
263*c33452fbSAndroid Build Coastguard Worker            with arbitrary different names ("domain1" and "domain2")
264*c33452fbSAndroid Build Coastguard Worker    * THEN renaming first domain ("domain1") to the name of the second one ("domain2") should fail
265*c33452fbSAndroid Build Coastguard Worker
266*c33452fbSAndroid Build Coastguard Worker- [ ] Scenario: rename a configuration to an already used name
267*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework with one domain containing two configuration
268*c33452fbSAndroid Build Coastguard Worker            with arbitrary different names ("config1" and "config2")
269*c33452fbSAndroid Build Coastguard Worker    * THEN renaming first configuration ("config1")
270*c33452fbSAndroid Build Coastguard Worker           to the name of the second one ("config2") should fail
271*c33452fbSAndroid Build Coastguard Worker
272*c33452fbSAndroid Build Coastguard Worker- [ ] Scenario: rename a domain to its own name
273*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework one arbitrary named domain
274*c33452fbSAndroid Build Coastguard Worker    * THEN renaming the domain to its own name should succeed
275*c33452fbSAndroid Build Coastguard Worker
276*c33452fbSAndroid Build Coastguard Worker- [ ] rename a configuration to its own name
277*c33452fbSAndroid Build Coastguard Worker    * GIVEN a started parameter framework a domain and one configuration
278*c33452fbSAndroid Build Coastguard Worker    * THEN renaming the configuration to its own name should succeed
279*c33452fbSAndroid Build Coastguard Worker
280*c33452fbSAndroid Build Coastguard Worker* * *
281*c33452fbSAndroid Build Coastguard Worker
282*c33452fbSAndroid Build Coastguard Worker## Domain modification
283*c33452fbSAndroid Build Coastguard Worker
284*c33452fbSAndroid Build Coastguard Worker- set/get sequence awareness
285*c33452fbSAndroid Build Coastguard Worker- add/list/remove elements to a domain
286*c33452fbSAndroid Build Coastguard Worker- *(split domain ?)*
287*c33452fbSAndroid Build Coastguard Worker- *(listBelongingDomains ?)*
288*c33452fbSAndroid Build Coastguard Worker- *(listAssociatedDomains ?)*
289*c33452fbSAndroid Build Coastguard Worker- *(listAssociatedElements ?)*
290*c33452fbSAndroid Build Coastguard Worker- *(listConflictingElements ?)*
291*c33452fbSAndroid Build Coastguard Worker- *(listRogueElements ?)*
292*c33452fbSAndroid Build Coastguard Worker
293*c33452fbSAndroid Build Coastguard Worker### Error cases/special cases
294*c33452fbSAndroid Build Coastguard Worker
295*c33452fbSAndroid Build Coastguard Worker- add (or remove) a non-existent element
296*c33452fbSAndroid Build Coastguard Worker- add (or remove) a parameter to (or from) a non-existent domain
297*c33452fbSAndroid Build Coastguard Worker
298*c33452fbSAndroid Build Coastguard Worker* * *
299*c33452fbSAndroid Build Coastguard Worker
300*c33452fbSAndroid Build Coastguard Worker## Configurations modification
301*c33452fbSAndroid Build Coastguard Worker
302*c33452fbSAndroid Build Coastguard Worker- set a configuration rule; get it back
303*c33452fbSAndroid Build Coastguard Worker    - trivial rules, complex rules (fuzzing ?)
304*c33452fbSAndroid Build Coastguard Worker    - clear a rule
305*c33452fbSAndroid Build Coastguard Worker- save/restore a configuration
306*c33452fbSAndroid Build Coastguard Worker- set/get element sequence
307*c33452fbSAndroid Build Coastguard Worker- set/get a parameter for a given configuration
308*c33452fbSAndroid Build Coastguard Worker- set a parameter belonging to a domain and save a configuration
309*c33452fbSAndroid Build Coastguard Worker
310*c33452fbSAndroid Build Coastguard Worker### Error cases
311*c33452fbSAndroid Build Coastguard Worker
312*c33452fbSAndroid Build Coastguard Worker- set a wrongly-formatted rule
313*c33452fbSAndroid Build Coastguard Worker- set a rule using an unknown criterion (or unknown criterion value)
314*c33452fbSAndroid Build Coastguard Worker- set/get a rule to a non-existent domain (or configuration)
315*c33452fbSAndroid Build Coastguard Worker
316*c33452fbSAndroid Build Coastguard Worker* * *
317*c33452fbSAndroid Build Coastguard Worker
318*c33452fbSAndroid Build Coastguard Worker## Criteria
319*c33452fbSAndroid Build Coastguard Worker
320*c33452fbSAndroid Build Coastguard Worker- create a criterion
321*c33452fbSAndroid Build Coastguard Worker    - exclusive
322*c33452fbSAndroid Build Coastguard Worker    - inclusive
323*c33452fbSAndroid Build Coastguard Worker- *(list criteria)*
324*c33452fbSAndroid Build Coastguard Worker- set a criterion; get a criterion value
325*c33452fbSAndroid Build Coastguard Worker    - exclusive criterion
326*c33452fbSAndroid Build Coastguard Worker    - inclusive criterion
327*c33452fbSAndroid Build Coastguard Worker        - special case: "none" value
328*c33452fbSAndroid Build Coastguard Worker
329*c33452fbSAndroid Build Coastguard Worker### Error cases/special cases
330*c33452fbSAndroid Build Coastguard Worker
331*c33452fbSAndroid Build Coastguard Worker- duplicated criterion name (with the same type/with a different type)
332*c33452fbSAndroid Build Coastguard Worker- duplicated criterion value
333*c33452fbSAndroid Build Coastguard Worker- max supported number of criterion values
334*c33452fbSAndroid Build Coastguard Worker
335*c33452fbSAndroid Build Coastguard Worker* * *
336*c33452fbSAndroid Build Coastguard Worker
337*c33452fbSAndroid Build Coastguard Worker## Settings Import/Export
338*c33452fbSAndroid Build Coastguard Worker
339*c33452fbSAndroid Build Coastguard Worker- import xml domains
340*c33452fbSAndroid Build Coastguard Worker    - w/ or w/o settings
341*c33452fbSAndroid Build Coastguard Worker    - from a file/from a string
342*c33452fbSAndroid Build Coastguard Worker    - all/single
343*c33452fbSAndroid Build Coastguard Worker- export xml domains
344*c33452fbSAndroid Build Coastguard Worker    - w/ or w/o settings
345*c33452fbSAndroid Build Coastguard Worker    - to a file/from a string
346*c33452fbSAndroid Build Coastguard Worker    - all/single
347*c33452fbSAndroid Build Coastguard Worker
348*c33452fbSAndroid Build Coastguard Worker### Error case/special cases
349*c33452fbSAndroid Build Coastguard Worker
350*c33452fbSAndroid Build Coastguard Worker- invalid settings
351*c33452fbSAndroid Build Coastguard Worker    - invalid xml (should we use a fuzzing framework ?)
352*c33452fbSAndroid Build Coastguard Worker    - valid xml but not matching the XSD (ditto)
353*c33452fbSAndroid Build Coastguard Worker    - valid but unusable data:
354*c33452fbSAndroid Build Coastguard Worker        - unknown criterion/criterion values
355*c33452fbSAndroid Build Coastguard Worker        - unknown parameters
356*c33452fbSAndroid Build Coastguard Worker- unreadable/unwritable file
357*c33452fbSAndroid Build Coastguard Worker- single domain import overwrite
358*c33452fbSAndroid Build Coastguard Worker    - fail if overwrite not requested
359*c33452fbSAndroid Build Coastguard Worker    - succeed if overwrite requested
360*c33452fbSAndroid Build Coastguard Worker
361*c33452fbSAndroid Build Coastguard Worker* * *
362*c33452fbSAndroid Build Coastguard Worker
363*c33452fbSAndroid Build Coastguard Worker## Parameters
364*c33452fbSAndroid Build Coastguard Worker
365*c33452fbSAndroid Build Coastguard Worker- structures are correctly instantiated
366*c33452fbSAndroid Build Coastguard Worker    - parameters in the "instance definition"
367*c33452fbSAndroid Build Coastguard Worker    - component types instantiation
368*c33452fbSAndroid Build Coastguard Worker    - parameter blocks
369*c33452fbSAndroid Build Coastguard Worker    - bit blocks
370*c33452fbSAndroid Build Coastguard Worker    - arrays
371*c33452fbSAndroid Build Coastguard Worker- check parameter mappings are correctly applied
372*c33452fbSAndroid Build Coastguard Worker    - at all levels possible (subsystem, component type, component instance,
373*c33452fbSAndroid Build Coastguard Worker            block, parameter...)
374*c33452fbSAndroid Build Coastguard Worker    - context mappings, amends, instantiation mappings
375*c33452fbSAndroid Build Coastguard Worker- set/get a parameter
376*c33452fbSAndroid Build Coastguard Worker- parameter handles
377*c33452fbSAndroid Build Coastguard Worker- test on parameter values
378*c33452fbSAndroid Build Coastguard Worker    - booleans
379*c33452fbSAndroid Build Coastguard Worker    - bit blocks
380*c33452fbSAndroid Build Coastguard Worker    - numeric types ranges
381*c33452fbSAndroid Build Coastguard Worker    - fixed-point tests
382*c33452fbSAndroid Build Coastguard Worker    - string length
383*c33452fbSAndroid Build Coastguard Worker
384*c33452fbSAndroid Build Coastguard Worker* * *
385*c33452fbSAndroid Build Coastguard Worker
386*c33452fbSAndroid Build Coastguard Worker## Configuration application
387*c33452fbSAndroid Build Coastguard Worker
388*c33452fbSAndroid Build Coastguard Worker- apply configurations
389*c33452fbSAndroid Build Coastguard Worker    - sequence aware domains
390*c33452fbSAndroid Build Coastguard Worker- forced sync
391*c33452fbSAndroid Build Coastguard Worker
392*c33452fbSAndroid Build Coastguard Worker* * *
393*c33452fbSAndroid Build Coastguard Worker
394*c33452fbSAndroid Build Coastguard Worker## Misc/to be classified
395*c33452fbSAndroid Build Coastguard Worker
396*c33452fbSAndroid Build Coastguard Worker- tuning mode
397*c33452fbSAndroid Build Coastguard Worker- auto sync
398*c33452fbSAndroid Build Coastguard Worker- remote interface instantiation
399*c33452fbSAndroid Build Coastguard Worker- value space (raw/real)/format (dec/hex)
400*c33452fbSAndroid Build Coastguard Worker
401*c33452fbSAndroid Build Coastguard Worker### Error cases
402*c33452fbSAndroid Build Coastguard Worker
403