Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(947)

Unified Diff: build/android/docs/coverage.md

Issue 2426583004: Update EMMA code coverage documentation. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/docs/coverage.md
diff --git a/build/android/docs/coverage.md b/build/android/docs/coverage.md
index 0a179876c6571b6201a50775d3a7319f98d9d81f..3cc4c99fea65f9567a53b934b5800061f07e410a 100644
--- a/build/android/docs/coverage.md
+++ b/build/android/docs/coverage.md
@@ -1,32 +1,42 @@
# Android code coverage instructions
-This is instruction for code coverage for android instrumentation and junit tests.
+These are instructions for collecting code coverage data for android
+instrumentation and junit tests.
[TOC]
## How EMMA coverage works
-In order to use EMMA code coverage, we need to create build time **.em** file and runtime
-**.ec** file. Then we need to process them using the
+In order to use EMMA code coverage, we need to create build time **.em** files
+and runtime **.ec** files. Then we need to process them using the
build/android/generate_emma_html.py script.
## How to collect EMMA coverage data
-1. Build your APK with the GN arg emma_coverage=true.
+1. Use the following GN build arguments:
```
- gn args out-gn/Debug
- > target_os = "android"
- > emma_coverage = true
+ target_os = "android"
+ emma_coverage = true
+ emma_filter = "org.chromium.chrome.browser.ntp.*,-*Test*,-*Fake*,-*Mock*"
```
- By doing so, **.em** files will be created in out-gn/Debug.
+ The filter syntax is as documented for the [EMMA coverage
+ filters](http://emma.sourceforge.net/reference/ch02s06s02.html).
+
+ Now when building, **.em** files will be created in the build directory.
2. Run tests, with option `--coverage-dir <directory>`, to specify where to save
the .ec file. For example, you can run chrome junit tests:
- `out-gn/Debug/bin/run_chrome_junit_tests --coverage-dir /tmp/coverage`.
-3. Now we have both .em and .ec files. We can merge them and create a html file,
- using generate_emma_html.py. For example, generate_emma_html.py can be called
- this way:
+ `out/Debug/bin/run_chrome_junit_tests --coverage-dir /tmp/coverage`.
+3. Turn off strict mode when running instrumentation tests by adding
+ `--strict-mode=off` because the EMMA code causes strict mode violations by
+ accessing disk.
+4. Use a pre-L Android OS (running Dalvik) because code coverage is not
+ supported in ART.
+5. The coverage results of junit and instrumentation tests will be merged
+ automatically if they are in the same directory.
+6. Now we have both .em and .ec files. We can create a html report using
+ `generate_emma_html.py`, for example:
`build/android/generate_emma_html.py --coverage-dir /tmp/coverage/
- --metadata-dir out-gn/Debug/ --output example.html`.
+ --metadata-dir out/Debug/ --output example.html`.
Then an example.html containing coverage info will be created:
`EMMA: writing [html] report to
[<your_current_directory>/example.html] …`
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698