| // Copyright 2014 The Android Open Source Project |
| // |
| // This software is licensed under the terms of the GNU General Public |
| // License version 2, as published by the Free Software Foundation, and |
| // may be copied, distributed, and modified under those terms. |
| // |
| // This program is distributed in the hope that it will be useful, |
| // but WITHOUT ANY WARRANTY; without even the implied warranty of |
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| // GNU General Public License for more details. |
| |
| #ifndef ANDROID_WEAR_AGENT_TESTING_WEAR_AGENT_TEST_UTILS_H |
| #define ANDROID_WEAR_AGENT_TESTING_WEAR_AGENT_TEST_UTILS_H |
| |
| namespace android { |
| namespace wear { |
| namespace testing { |
| |
| // Bind to a random TCP loopback port. |
| // On success, return new server socket descriptor, and sets |*hostPort| |
| // to the corresponding port number. On failure, return -1/errno. |
| int testStartMockServer(int* hostPort); |
| |
| // Run a mock host ADB server instance which will be used to interact |
| // with the WearAgent implementation during unit testing. |
| // |
| // |adbServerSocket| is the server socket descriptor for ADB connection |
| // that will be used by the agent. |
| // |consoleServerSocket| is the console server socket for console |
| // connections that will be used by the agent if it thinks it is talking |
| // to an emulator, instead of a real device. This is ignored if |usbPhone| |
| // is true. |
| // |wearDevice| is the serial number of a simulated wear device or emulator. |
| // |phoneDevice| is the serial number of a simulated compatible device or |
| // emulator to be paired-up with |wearDevice| |
| // |usbPhone| is true to indicate that |phoneDevice| is a simulated device, |
| // and false to indicate that it is a simulated emulator. |
| // |
| // Return true on success, false/errno otherwise. |
| bool testRunMockAdbServer(int adbServerSocket, |
| int consoleServerSocket, |
| const char* wearDevice, |
| const char* phoneDevice, |
| bool usbPhone); |
| |
| // Send a given zero-terminated |message| to socket |socketFd|. |
| // On success, return true, on error return false/errno. |
| bool testSendToSocket(int socketFd, const char* message); |
| |
| // Receive a message of exactly |size| bytes from socket |socketFd| and |
| // store the data into |ptr|. On success, return true. On failure return |
| // false/errno. |
| bool testReceiveMessageFromSocket(int socketFd, char* ptr, int size); |
| |
| // Receive a message from socket |socketFd|. |
| // If |header| is 1, then this reads a 4-byte hexchar header giving the |
| // size of the message, then the payload. Otherwise, read data until |
| // the socket is disconnected. |
| // The received data must match |message|. |
| // Return true on success, false/errno on failure. |
| bool testExpectMessageFromSocket(int socketFd, |
| const char* message, |
| int header = 1); |
| |
| } // namespace testing |
| } // namespace wear |
| } // namespace android |
| |
| #endif // ANDROID_WEAR_AGENT_TESTING_WEAR_AGENT_TEST_UTILS_H |