diff options
Diffstat (limited to 'vehicle-hal-support-lib')
-rw-r--r-- | vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java b/vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java index 1a5b8c6dcc..0da3565fdf 100644 --- a/vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java +++ b/vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java @@ -21,8 +21,6 @@ import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.fail; -import com.google.android.collect.Lists; - import android.hardware.automotive.vehicle.V2_0.IVehicle; import android.hardware.automotive.vehicle.V2_0.IVehicleCallback; import android.hardware.automotive.vehicle.V2_0.StatusCode; @@ -31,6 +29,9 @@ import android.hardware.automotive.vehicle.V2_0.VehiclePropConfig; import android.hardware.automotive.vehicle.V2_0.VehiclePropValue; import android.hardware.automotive.vehicle.V2_0.VehiclePropertyAccess; import android.os.RemoteException; +import android.os.SystemClock; + +import com.google.android.collect.Lists; import java.util.ArrayList; import java.util.HashMap; @@ -74,6 +75,23 @@ public class MockedVehicleHal extends IVehicle.Stub { addProperty(config, new StaticPropertyHandler(value)); } + public boolean waitForSubscriber(int propId, long timeoutMillis) { + long startTime = SystemClock.elapsedRealtime(); + try { + synchronized (this) { + while (mSubscribers.get(propId) == null) { + long waitMillis = startTime - SystemClock.elapsedRealtime() + timeoutMillis; + if (waitMillis < 0) break; + wait(waitMillis); + } + + return mSubscribers.get(propId) != null; + } + } catch (InterruptedException e) { + return false; + } + } + public synchronized void injectEvent(VehiclePropValue value) { List<IVehicleCallback> callbacks = mSubscribers.get(value.prop); assertNotNull("Injecting event failed for property: " + value.prop @@ -156,6 +174,7 @@ public class MockedVehicleHal extends IVehicle.Stub { if (subscribers == null) { subscribers = new ArrayList<>(); mSubscribers.put(opt.propId, subscribers); + notifyAll(); } subscribers.add(callback); } |