adb: fix windows test build.

The switch over to soong unintentionally turned off building the
Windows tests (and there's a bug preventing them from being turned on).
Preemptively fix the build breakages that'll happen when we turn them
back on.

Test: mma with Android.bp 's/cc_test_host/cc_binary_host' hacks
Change-Id: I6582cfc61b96052537d50d8ba90533dbb66e3e1d
This commit is contained in:
Josh Gao 2018-03-23 13:03:28 -07:00
parent 7102f7c98d
commit 2e1e789e2a
4 changed files with 19 additions and 20 deletions

View File

@ -72,8 +72,11 @@ cc_defaults {
"-DUNICODE=1",
"-D_UNICODE=1",
// -std=gnu++14 doesn't set _GNU_SOURCE on Windows.
// -std=gnu++11 doesn't set _GNU_SOURCE on Windows.
"-D_GNU_SOURCE",
// MinGW hides some things behind _POSIX_SOURCE.
"-D_POSIX_SOURCE",
],
},
},

View File

@ -26,6 +26,7 @@
#include "adb_io.h"
#include "fdevent_test.h"
#include "sysdeps/memory.h"
class FdHandler {
public:

View File

@ -106,14 +106,14 @@ extern int adb_mkdir(const std::string& path, int mode);
#define mkdir ___xxx_mkdir
// See the comments for the !defined(_WIN32) versions of adb_*().
extern int adb_open(const char* path, int options);
extern int adb_creat(const char* path, int mode);
extern int adb_read(int fd, void* buf, int len);
extern int adb_write(int fd, const void* buf, int len);
extern int adb_lseek(int fd, int pos, int where);
extern int adb_shutdown(int fd);
extern int adb_close(int fd);
extern int adb_register_socket(SOCKET s);
extern int adb_open(const char* path, int options);
extern int adb_creat(const char* path, int mode);
extern int adb_read(int fd, void* buf, int len);
extern int adb_write(int fd, const void* buf, int len);
extern int adb_lseek(int fd, int pos, int where);
extern int adb_shutdown(int fd, int direction = SHUT_RDWR);
extern int adb_close(int fd);
extern int adb_register_socket(SOCKET s);
// See the comments for the !defined(_WIN32) version of unix_close().
static __inline__ int unix_close(int fd)
@ -414,14 +414,10 @@ static __inline__ int adb_open( const char* pathname, int options )
#undef open
#define open ___xxx_open
static __inline__ int adb_shutdown(int fd)
{
return shutdown(fd, SHUT_RDWR);
}
static __inline__ int adb_shutdown(int fd, int direction)
{
static __inline__ int adb_shutdown(int fd, int direction = SHUT_RDWR) {
return shutdown(fd, direction);
}
#undef shutdown
#define shutdown ____xxx_shutdown

View File

@ -1011,9 +1011,8 @@ int adb_socket_get_local_port(int fd) {
return ntohs(reinterpret_cast<sockaddr_in*>(&addr_storage)->sin_port);
}
int adb_shutdown(int fd)
{
FH f = _fh_from_int(fd, __func__);
int adb_shutdown(int fd, int direction) {
FH f = _fh_from_int(fd, __func__);
if (!f || f->clazz != &_fh_socket_class) {
D("adb_shutdown: invalid fd %d", fd);
@ -1021,8 +1020,8 @@ int adb_shutdown(int fd)
return -1;
}
D( "adb_shutdown: %s", f->name);
if (shutdown(f->fh_socket, SD_BOTH) == SOCKET_ERROR) {
D("adb_shutdown: %s", f->name);
if (shutdown(f->fh_socket, direction) == SOCKET_ERROR) {
const DWORD err = WSAGetLastError();
D("socket shutdown fd %d failed: %s", fd,
android::base::SystemErrorCodeToString(err).c_str());