TEST(AvdUtil, propertyFile_getAdbdCommunicationMode) { FileData fd; const char* emptyFile = "\n"; const char* valueIsZero = "ro.adb.qemud=0"; const char* valueIsOne = "ro.adb.qemud=1"; const char* valueIsBogus = "ro.adb.qemud=bogus"; // Empty file -> assume 0 EXPECT_EQ(0, fileData_initFromMemory(&fd, emptyFile, strlen(emptyFile))); EXPECT_EQ(0, propertyFile_getAdbdCommunicationMode(&fd)); // 0 -> 0 EXPECT_EQ(0, fileData_initFromMemory(&fd, valueIsZero, strlen(valueIsZero))); EXPECT_EQ(0, propertyFile_getAdbdCommunicationMode(&fd)); // 1 -> 0. // ADB hangs when using the qemud pipe, so the communication method should // always be "0" (see note in propertyFile_getAdbdCommunicationMode()). EXPECT_EQ(0, fileData_initFromMemory(&fd, valueIsOne, strlen(valueIsOne))); EXPECT_EQ(0, propertyFile_getAdbdCommunicationMode(&fd)); // BOGUS -> 0 EXPECT_EQ(0, fileData_initFromMemory(&fd, valueIsBogus, strlen(valueIsBogus))); EXPECT_EQ(0, propertyFile_getAdbdCommunicationMode(&fd)); }
int avdInfo_getAdbdCommunicationMode( AvdInfo* i ) { if (i->apiLevel < 16) { // QEMU pipe for ADB communication was added in android-4.1.1_r1 API 16 D("API < 16, forcing ro.adb.qemud==0"); return 0; } return propertyFile_getAdbdCommunicationMode(i->buildProperties); }