Add triggering pollPendingSatelliteDatagrams after successfully sending a callback back to sendSatelliteDatagram. Bug: 329033411 Test: atest SatelliteManagerTestOnMockService Change-Id: I836a0ac8a7a8c81930f36c064bc4919baf8c8624
diff --git a/tests/tests/telephony/current/src/android/telephony/satellite/cts/SatelliteManagerTestOnMockService.java b/tests/tests/telephony/current/src/android/telephony/satellite/cts/SatelliteManagerTestOnMockService.java index cf5a63d..6fb490f 100644 --- a/tests/tests/telephony/current/src/android/telephony/satellite/cts/SatelliteManagerTestOnMockService.java +++ b/tests/tests/telephony/current/src/android/telephony/satellite/cts/SatelliteManagerTestOnMockService.java
@@ -114,6 +114,8 @@ private static final long TEST_SATELLITE_LISTENING_FOREVER_TIMEOUT_MILLIS = 60 * 10 * 1000; private static final long TEST_SATELLITE_DEVICE_ALIGN_TIMEOUT_MILLIS = 100; private static final long TEST_SATELLITE_DEVICE_ALIGN_FOREVER_TIMEOUT_MILLIS = 100000; + private static final long TEST_DATAGRAM_DELAY_IN_DEMO_MODE_TIMEOUT_MILLIS = 100; + private static final long TEST_DATAGRAM_DELAY_IN_DEMO_MODE_TIMEOUT_LONG_MILLIS = 1000; private static MockSatelliteServiceManager sMockSatelliteServiceManager; @@ -1945,21 +1947,19 @@ sSatelliteManager.unregisterForModemStateChanged(stateCallback); logd("testSendSatelliteDatagram_DemoMode_success: sendSatelliteDatagramSuccess"); + assertTrue(sMockSatelliteServiceManager.setDatagramControllerTimeoutDuration(false, + DatagramController.TIMEOUT_TYPE_DATAGRAM_DELAY_IN_DEMO_MODE, + TEST_DATAGRAM_DELAY_IN_DEMO_MODE_TIMEOUT_LONG_MILLIS)); sendSatelliteDatagramDemoModeSuccess(mText); - // test pollPendingSatelliteDatagram for demo mode + // Automatically triggering pollPendingSatelliteDatagrams after successfully sending + // a callback back to sendSatelliteDatagram for demo mode sSatelliteManager.setDeviceAlignedWithSatellite(true); transmissionUpdateCallback = startTransmissionUpdates(); SatelliteDatagramCallbackTest datagramCallback = new SatelliteDatagramCallbackTest(); assertTrue(SatelliteManager.SATELLITE_RESULT_SUCCESS - == sSatelliteManager.registerForIncomingDatagram( - getContext().getMainExecutor(), datagramCallback)); - - LinkedBlockingQueue<Integer> resultListener = new LinkedBlockingQueue<>(1); - sSatelliteManager.pollPendingDatagrams(getContext().getMainExecutor(), - resultListener::offer); - - assertTrue(datagramCallback.waitUntilResult(1)); + == sSatelliteManager.registerForIncomingDatagram(getContext().getMainExecutor(), + datagramCallback)); // Because pending count is 0, datagram transfer state changes from // IDLE -> RECEIVING -> RECEIVE_SUCCESS -> IDLE. @@ -1991,6 +1991,8 @@ } sSatelliteManager.setDeviceAlignedWithSatellite(false); + assertTrue(sMockSatelliteServiceManager.setDatagramControllerTimeoutDuration(true, + DatagramController.TIMEOUT_TYPE_DATAGRAM_DELAY_IN_DEMO_MODE, 0)); revokeSatellitePermission(); } @@ -2533,6 +2535,10 @@ assertTrue(stateCallback.waitUntilResult(1)); sSatelliteManager.setDeviceAlignedWithSatellite(true); + assertTrue(sMockSatelliteServiceManager.setDatagramControllerTimeoutDuration(false, + DatagramController.TIMEOUT_TYPE_DATAGRAM_DELAY_IN_DEMO_MODE, + TEST_DATAGRAM_DELAY_IN_DEMO_MODE_TIMEOUT_MILLIS)); + // Send satellite datagram to compare with the received datagram in demo mode LinkedBlockingQueue<Integer> resultListener = new LinkedBlockingQueue<>(1); String mText = "This is a test datagram message"; @@ -2553,7 +2559,6 @@ Log.d(TAG, "testReceiveSatelliteDatagram_DemoMode_not_Aligned: sendDatagram " + "errorCode=" + errorCode); - // Test poll pending satellite datagram for demo mode while it is not aligned transmissionUpdateCallback.clearReceiveDatagramStateChanges(); sSatelliteManager.setDeviceAlignedWithSatellite(false); @@ -2653,6 +2658,8 @@ stopTransmissionUpdates(transmissionUpdateCallback); assertTrue(sMockSatelliteServiceManager.setDatagramControllerTimeoutDuration(true, DatagramController.TIMEOUT_TYPE_ALIGN, 0)); + assertTrue(sMockSatelliteServiceManager.setDatagramControllerTimeoutDuration(true, + DatagramController.TIMEOUT_TYPE_DATAGRAM_DELAY_IN_DEMO_MODE, 0)); assertTrue(sMockSatelliteServiceManager.restoreSatellitePointingUiClassName()); sSatelliteManager.unregisterForModemStateChanged(stateCallback); revokeSatellitePermission(); @@ -3287,6 +3294,9 @@ // Send satellite datagram String mText = "This is a test datagram message from user"; SatelliteDatagram datagram = new SatelliteDatagram(mText.getBytes()); + assertTrue(sMockSatelliteServiceManager.setDatagramControllerTimeoutDuration(false, + DatagramController.TIMEOUT_TYPE_DATAGRAM_DELAY_IN_DEMO_MODE, + TEST_DATAGRAM_DELAY_IN_DEMO_MODE_TIMEOUT_MILLIS)); callback.clearSendDatagramStateChanges(); sMockSatelliteServiceManager.setErrorCode(SatelliteManager.SATELLITE_RESULT_SUCCESS); sSatelliteManager.sendDatagram(SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, @@ -3331,6 +3341,8 @@ sSatelliteManager.stopTransmissionUpdates(callback, getContext().getMainExecutor(), resultListener::offer); sSatelliteManager.unregisterForModemStateChanged(stateCallback); + assertTrue(sMockSatelliteServiceManager.setDatagramControllerTimeoutDuration(true, + DatagramController.TIMEOUT_TYPE_DATAGRAM_DELAY_IN_DEMO_MODE, 0)); revokeSatellitePermission(); }