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