| The Encrypted Reporting Pipeline (ERP) provides a universal method for upload of |
| data for enterprise customers. |
| |
| The code structure looks like this: |
| |
| Chrome: |
| - `//components/reporting` \ |
| Code shared between Chrome and ChromeOS. |
| - `//chrome/browser/policy/messaging_layer` \ |
| Code that lives only in the browser, primary interfaces for reporting data |
| such as `ReportQueueImpl` and `ReportQueueConfiguration`. |
| |
| ChromeOS: |
| - `//platform2/missived` \ |
| Daemon for encryption and storage of reports. |
| |
| If you'd like to begin using ERP within Chrome please check the comment in |
| [//components/reporting/client/report_queue_provider.h](https://chromium.googlesource.com/chromium/src/+/main/components/reporting/client/report_queue_provider.h#25). |
| |
| ### Run Unit Tests |
| |
| To run the unit tests for this directory, after having configured Chromium's |
| build environment: |
| |
| 1. Run `autoninja -C out/Default components_unittests` to build the components |
| unit test executable. |
| |
| 1. Then, run `out/Default/components_unittests --gtest_filter='<target tests>'` |
| to run relevant tests. Here, `<target tests>` is a wildcard pattern (refer to |
| the document of gtest for more details). For example, to run all tests for |
| `StorageQueue`, run |
| |
| $ out/Default/components_unittests --gtest_filter='*/StorageQueueTest.*' |
| |
| For another example, to run all tests in this directory, run |
| |
| $ tools/autotest.py -C out/Default --run_all components/reporting |
| |
| You can also append a filter such as `--gtest_filter='*/StorageQueueTest.*'` |
| to the line above. |
| |
| Another useful flag for dealing with flaky tests is `--gtest_repeat=`, which |
| repeats tests for multiple times. |
| |
| For more gtest features, check out |
| [the gtest document](https://google.github.io/googletest/advanced.html). |