예제 #1
0
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));
}
예제 #2
0
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);
}