1*c33452fbSAndroid Build Coastguard Worker# Domain coverage report 2*c33452fbSAndroid Build Coastguard Worker 3*c33452fbSAndroid Build Coastguard Worker## Introduction 4*c33452fbSAndroid Build Coastguard Worker 5*c33452fbSAndroid Build Coastguard WorkerDuring the PFW's life cycle, criteria states are changed and configurations are 6*c33452fbSAndroid Build Coastguard Workerapplied. 7*c33452fbSAndroid Build Coastguard Worker 8*c33452fbSAndroid Build Coastguard WorkerThis report gives the coverage for : 9*c33452fbSAndroid Build Coastguard Worker 10*c33452fbSAndroid Build Coastguard Worker- Criterion: detect easily which criterion state aren't used. 11*c33452fbSAndroid Build Coastguard Worker- Configuration: detect configuration that are never applied. 12*c33452fbSAndroid Build Coastguard Worker- Configuration rule: part of the rules that are useless and could be removed. 13*c33452fbSAndroid Build Coastguard Worker- Total average coverage 14*c33452fbSAndroid Build Coastguard Worker 15*c33452fbSAndroid Build Coastguard WorkerTwo things are needed to generate a coverage report: 16*c33452fbSAndroid Build Coastguard Worker 17*c33452fbSAndroid Build Coastguard Worker1. The Settings file 18*c33452fbSAndroid Build Coastguard Worker2. parameter-framework logs 19*c33452fbSAndroid Build Coastguard Worker 20*c33452fbSAndroid Build Coastguard Worker## How to get the Settings file 21*c33452fbSAndroid Build Coastguard Worker 22*c33452fbSAndroid Build Coastguard WorkerUsually, you have this file at hand. But if getting the Settings file is 23*c33452fbSAndroid Build Coastguard Workerpainful, you may use remote-process to print it: 24*c33452fbSAndroid Build Coastguard Worker 25*c33452fbSAndroid Build Coastguard Worker remote-process <host> <port> getDomainsWithSettingsXML > domains.xml 26*c33452fbSAndroid Build Coastguard Worker 27*c33452fbSAndroid Build Coastguard Worker## How to get PFW logs 28*c33452fbSAndroid Build Coastguard Worker 29*c33452fbSAndroid Build Coastguard WorkerYou must get the logs from the start of the parameter-framework. 30*c33452fbSAndroid Build Coastguard Worker 31*c33452fbSAndroid Build Coastguard WorkerOn Android, you should stop the process instantiating the parameter-framework, 32*c33452fbSAndroid Build Coastguard Workerclear the logs, start the process and get the logs using logcat. E.g: 33*c33452fbSAndroid Build Coastguard Worker 34*c33452fbSAndroid Build Coastguard Worker $ adb shell stop your_process 35*c33452fbSAndroid Build Coastguard Worker $ adb logcat -c 36*c33452fbSAndroid Build Coastguard Worker $ adb logcat > coverage.log & 37*c33452fbSAndroid Build Coastguard Worker $ adb shell start your_process 38*c33452fbSAndroid Build Coastguard Worker ... do your testing ... 39*c33452fbSAndroid Build Coastguard Worker kill the background logcat started above 40*c33452fbSAndroid Build Coastguard Worker 41*c33452fbSAndroid Build Coastguard Worker## How to generate the report 42*c33452fbSAndroid Build Coastguard Worker 43*c33452fbSAndroid Build Coastguard WorkerThen execute : 44*c33452fbSAndroid Build Coastguard Worker 45*c33452fbSAndroid Build Coastguard Worker $ aplog2coverage.sh -d domains.xml -e<some_regex> coverage.log -o coverageReport.html 46*c33452fbSAndroid Build Coastguard Worker 47*c33452fbSAndroid Build Coastguard WorkerYou may pass several log files. 48*c33452fbSAndroid Build Coastguard Worker 49*c33452fbSAndroid Build Coastguard WorkerThe regex (-e argument) is used to match relevant log lines: If you have 50*c33452fbSAndroid Build Coastguard Workerseveral PFW instances running, you need to have a way to tell which instance is 51*c33452fbSAndroid Build Coastguard Workerlogging each line. Besides, if accelerates the parsing by eliminating 52*c33452fbSAndroid Build Coastguard Workerirrelevant log lines. 53*c33452fbSAndroid Build Coastguard Worker 54*c33452fbSAndroid Build Coastguard WorkerYou may pass the optional `-f` argument to ignore some parse errors. 55*c33452fbSAndroid Build Coastguard Worker 56*c33452fbSAndroid Build Coastguard Worker### Limitations 57*c33452fbSAndroid Build Coastguard Worker 58*c33452fbSAndroid Build Coastguard Worker- Having more than one dot (".") in log paths is not supported (see the sort 59*c33452fbSAndroid Build Coastguard Worker implementation (sort -rn -k2 -t.) in aplog2coverage.sh). 60*c33452fbSAndroid Build Coastguard Worker- A PFW start log line must be at the head of the oldest log: no 61*c33452fbSAndroid Build Coastguard Worker applyconfiguration or set criterion log should be found before the PFW start. 62