CTS to ensure telecom can bind to NonUiInCallService wo export prop.

This CL is a postmortem action which is detailed in the linked bug.
In short, an OEM had the telecom stack outside of the system process
and had a non-ui InCallService it wanted to bind.  However, the
InCallService set the Exported property to false.  This combo caused
a calling outage that prevented users from making/receiving calls.

To prevent the above scenaro from occuring again, this new CTS test
was created. It tests the Telecom stack of the OEM against a
non-ui InCallService that has it's exported property set to false.

Bug: 198715680

Test: 1 new CTS test,
      NonUiInCallServiceWoExportTest
      #testTelecomCanBindToNonUiInCallServiceThatIsNotExported

Change-Id: I5b99aa9c7e989a1c20a7b086f65782286a8be575
This commit is contained in:
Thomas Stuart
2022-04-20 15:47:11 -07:00
parent 3aaa58dea8
commit e2e79d988e
2 changed files with 21 additions and 0 deletions

View File

@@ -76,6 +76,8 @@ public final class Telecom extends BaseCommand {
private static final String COMMAND_CLEANUP_ORPHAN_PHONE_ACCOUNTS =
"cleanup-orphan-phone-accounts";
private static final String COMMAND_RESET_CAR_MODE = "reset-car-mode";
private static final String COMMAND_IS_NON_IN_CALL_SERVICE_BOUND =
"is-non-ui-in-call-service-bound";
/**
* Change the system dialer package name if a package name was specified,
@@ -169,6 +171,8 @@ public final class Telecom extends BaseCommand {
+ " over Telephony.\n"
+ "telecom log-mark <MESSAGE>: emits a message into the telecom logs. Useful for "
+ "testers to indicate where in the logs various test steps take place.\n"
+ "telecom is-non-ui-in-call-service-bound <PACKAGE>: queries a particular "
+ "non-ui-InCallService in InCallController to determine if it is bound \n"
);
}
@@ -270,6 +274,9 @@ public final class Telecom extends BaseCommand {
case COMMAND_GET_MAX_PHONES:
runGetMaxPhones();
break;
case COMMAND_IS_NON_IN_CALL_SERVICE_BOUND:
runIsNonUiInCallServiceBound();
break;
case COMMAND_SET_TEST_EMERGENCY_PHONE_ACCOUNT_PACKAGE_FILTER:
runSetEmergencyPhoneAccountPackageFilter();
break;
@@ -427,6 +434,18 @@ public final class Telecom extends BaseCommand {
mTelephonyManager.switchMultiSimConfig(numSims);
}
/**
* prints out whether a particular non-ui InCallServices is bound in a call
*/
public void runIsNonUiInCallServiceBound() throws RemoteException {
if (TextUtils.isEmpty(mArgs.peekNextArg())) {
System.out.println("No Argument passed. Please pass a <PACKAGE_NAME> to lookup.");
} else {
System.out.println(
String.valueOf(mTelecomService.isNonUiInCallServiceBound(nextArg())));
}
}
/**
* Prints the mSIM config to the console.
* "DSDS" for a phone in DSDS mode

View File

@@ -358,6 +358,8 @@ interface ITelecomService {
int cleanupOrphanPhoneAccounts();
boolean isNonUiInCallServiceBound(in String packageName);
void resetCarMode();
void setTestDefaultCallRedirectionApp(String packageName);