[TOC]
See instructions in the common checkout and build.
First, connect an Android device by following the Plug in your Android device steps. Prefer using a device running a userdebug build.
Alternatively, you can pass the --x86 flag to gn to test on a local emulator
-- make sure you substitute out/Debug for out/Debug-x86 in the instructions
below.
To run Java unit tests that actuate the Cronet API:
$ ./components/cronet/tools/cr_cronet.py gn
$ ./components/cronet/tools/cr_cronet.py build-testTo run particular tests specify the test class and method name to the build-test command. For example:
$ ./components/cronet/tools/cr_cronet.py build-test -f QuicTest#testQuicLoadUrlTo run C++ and Java unit tests of net/ functionality:
$ ./components/cronet/tools/cr_cronet.py gn
$ ninja -C out/Debug net_unittests
$ ./out/Debug/bin/run_net_unittests --fast-local-devFor more information about running net_unittests, read Android Test Instructions.
There are a small number of C++ Cronet unit tests, called cronet_unittests_android, that can be run by following the above instructions and substituting cronet_unittests_android for net_unittests.
To run Cronet's perf tests, follow the instructions in components/cronet/android/test/javaperftests/run.py
Once you've uploaded a Chromium change list using git cl upload, you can
launch a bot to build and test your change list:
$ git cl try -b android-cronet-arm-dbgThis will run both the Cronet Java unit tests and net_unittests.
Messages from native (C++) code appear in the Android system log accessible with
adb logcat. By default you will see only messages designated as FATAL. To
enable more verbosity:
$ adb shell setprop log.tag.CronetUrlRequestContext VERBOSE$ adb shell setprop log.tag.CronetUrlRequestContext DEBUG$ adb shell setprop log.tag.CronetUrlRequestContext NONENetLog is Chromium's network logging system. To create a NetLog dump, you can use the following pair of methods:
CronetEngine.startNetLogToFile()
CronetEngine.stopNetLog()
Unlike the Android system log which is line-based, the Chromium log is formatted
in JSON. As such, it will probably not be well-formed until you have called the
stopNetLog() method, as filesystem buffers will not have been flushed.
Retrieve the file from your device's file system, and import it to chrome browser at chrome://net-internals/#import, or http://catapult-project.github.io/catapult/netlog_viewer which helps to visualize the data.
If an app or test using Cronet crashes it can be useful to know the functions and line numbers involved in the stack trace. This can be done using the Android system log:
$ ./components/cronet/tools/cr_cronet.py stackOr using tombstones left behind after crashes:
$ CHROMIUM_OUTPUT_DIR=out/Debug ./build/android/tombstones.py