Index: third_party/WebKit/Source/core/layout/ng/README.md |
diff --git a/third_party/WebKit/Source/core/layout/ng/README.md b/third_party/WebKit/Source/core/layout/ng/README.md |
index 6aa9942306cba74aafceed1a6ea0870098a6b9ba..fd24f862e1832478f52cb26109513c24482d9fc0 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/README.md |
+++ b/third_party/WebKit/Source/core/layout/ng/README.md |
@@ -58,12 +58,12 @@ three separate steps or stages that are executed in order: |
During this process white-space is collapsed and normalized according to CSS |
white-space processing rules. |
- |
+ |
- `SegmentText`: Performs BiDi segmentation using |
[NGBidiParagraph](ng_bidi_paragraph.h). |
- |
+ |
TODO(kojii): Fill out |
- |
+ |
- `ShapeText`: Shapes the resolved BiDi runs using HarfBuzz. |
TODO(eae): Fill out |
@@ -87,3 +87,30 @@ TODO(layout-dev): Document with lots of pretty pictures. |
### Float Positioning ### |
TODO(layout-dev): Document with lots of pretty pictures. |
+ |
+### Code coverage ### |
+ |
+The latest code coverage (from Feb 14 2017) can be found [here](https://glebl.users.x20web.corp.google.com/www/layout_ng_code_coverage/index.html). |
+Here is the instruction how to generate a new result. |
+ |
+#### Environment setup #### |
+ 1. Set up Chromium development environment for Windows |
+ 2. Download DynamoRIO from [www.dynamorio.org](www.dynamorio.org) |
+ 3. Extract downloaded DynamoRIO package into your chromium/src folder. |
+ 4. Get dynamorio.git and extract it into your chromium/src folder `git clone https://github.com/DynamoRIO/dynamorio.git` |
+ 5. Install Node js from https://nodejs.org/en/download/ |
+ 6. Install lcov-merger dependencies: `npm install vinyl, npm install vinyl-fs` |
+ 7. Install Perl from https://www.perl.org/get.html#win32 |
+ 8. Get lcov-result-merger and extract into your chromium/src folder `git clone https://github.com/mweibel/lcov-result-merger` |
+ |
+#### Generating code coverage #### |
+* Build the unit tets target with debug information |
+`chromium\src> ninja -C out\Debug webkit_unit_tests` |
+* Run DynamoRIO with drcov tool |
+`chromium\src>DynamoRIO\bin64\drrun.exe -t drcov -- .\out\Debug\webkit_unit_tests.exe --gtest_filter=NG*` |
+* Convert the output information to lcov format |
+`chromium\src>for %file in (*.log) do DynamoRIO\tools\bin64\drcov2lcov.exe -input %file -output %file.info -src_filter layout/ng -src_skip_filter _test` |
+* Merge all lcov files into one file |
+`chromium\src>node lcov-result-merger\bin\lcov-result-merger.js *.info output.info` |
+* Generate the coverage html from the master lcov file |
+`chromium\src>C:\Perl64\bin\perl.exe dynamorio.git\third_party\lcov\genhtml output.info -o output` |