summaryrefslogtreecommitdiff
path: root/fastboot/socket_test.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix clang-tidy performance warnings in syste/core.Chih-Hung Hsieh2016-07-281-1/+1
| | | | | | | | | | * Use const reference type for parameters to avoid unnecessary copy. * Suppress warning of not using faster overloaded string find function. Bug: 30407689 Bug: 30411878 Change-Id: Ie79dbe21899867bc62031f8618bb1322b8071525 Test: build with WITH_TIDY=1
* fastboot: add Socket timeout detection.David Pursell2016-02-051-1/+51
| | | | | | | | | | | | | | UDP fastboot will require re-transmission in the case of datagrams getting lost. This CL adds Socket functionality to easily distinguish between a normal timeout and a socket failure. I also found some Windows docs that indicate sockets may become invalid after a call to recv() times out. This has never occurred in my testing, but to be safe this switches the timeout implementation to use select() instead of SO_RCVTIMEO. Bug: http://b/26154914 Change-Id: Id7b598f8aea5df1a3676d24702b489042d5f9e3a
* fastboot: fix SocketMock send failures.David Pursell2016-02-031-0/+16
| | | | | | | | | | | | Fixes SocketMock::ExpectSendFailure() to allow unit testing of errors during send, and adds tests for ExpectSendFailure() and AddReceiveFailure(). Also adds missing tests to make sure ReceiveAll() continues to read until failure or all bytes have been read. Bug: http://b/26157893 Change-Id: I67e7d6de8e8ec4a3b62a6b7d7217f7530862edf7
* libcutils/fastboot: improve multi-buffer write.David Pursell2016-02-031-2/+114
| | | | | | | | Fixes libcutils multi-buffer write interface to be more friendly and hooks into it from the fastboot Socket class. Bug: http://b/26558551 Change-Id: Ibb3a8428fc379755602de52722c1260f9e345bc0
* fastboot: socket testing improvements.David Pursell2016-02-021-14/+95
| | | | | | | | | | | | | | | (This code was originally part of a huge fastboot CL but has been split out to try to make the CLs a little more manageable). More prep for fastboot TCP and UDP implementations. This CL adds a SocketMock class that makes it easy to mock out network behavior so we can unit test the TCP and UDP protocols. Also uses the new libcutils socket_get_local_port() to avoid hardcoding a server port in unit tests. Bug: http://b/26157893. Change-Id: I1ba10f31e98d7349313fc15f240383d63378a8db
* fastboot: use cutils socket functions.David Pursell2016-01-211-142/+71
| | | | | | | | | | | | | | | Now that cutils has cross-platform socket functionality, we can restructure fastboot to remove platform-dependent networking code. This CL adds socket_set_receive_timeout() to libcutils and combines the fastboot socket code into a single implementation. It also adds TCP functionality to fastboot sockets, but nothing uses it yet except for the unit tests. A future CL will add the TCP protocol which will use this TCP socket implementation. Bug: http://b/26558551 Change-Id: If613fb348f9332b31fa2c88d67fb1e839923768a
* fastboot: implement UDP networking interface.David Pursell2015-12-161-0/+197
This CL creates a UdpSocket class that provides a simple unified interface to send and receive UDP packets for all platforms. Nothing uses this interface yet except for tests. The eventual goal is to implement a UDP protocol for fastboot, but it makes the code much simpler and more modular if we handle the low-level networking here independently of our custom fastboot protocol. Some of the Windows code is similar to adb. I'd like to create a library to hold the common functionality, but it is going to be a little delicate to separate out the features unique to adb (e.g. the custom file descriptor system), and I don't want to risk breaking something in adb before the holiday break, so I'm hoping to get this in for now and merge them early next year. Tests are included in this CL to exercise this functionality using a loopback connection. Bug: http://b/26154763. Tests: `fastboot_test` loopback tests on Linux, Mac, and Windows 7. Change-Id: I81d1b7ace8d864246b99f6c80b8e29f64b8aa375