Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4cdb2b7e authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN
Browse files

Fix testRegisterUsageCallback failure in setUp

LocalServices.addService in NetworkStatsService is currently failing
with IllegalStateException "Overriding service registration". Setting up
LocalServices in the test to avoid this issue might be possible, but
moving the registration to the only non-test caller of that constructor
as done here solves the issue and avoids side-effects from a constructor.

Test: this test passes in master through runtest frameworks-net
Bug: b/78487385
Bug: b/80082746
Change-Id: I884a7a8bd7db3fcd220b785ba9914ac8c77720f0
parent 4aca6255
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -324,6 +324,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
                wakeLock, getDefaultClock(), TelephonyManager.getDefault(),
                new DefaultNetworkStatsSettings(context), new NetworkStatsObservers(),
                getDefaultSystemDir(), getDefaultBaseDir());
        service.registerLocalService();

        HandlerThread handlerThread = new HandlerThread(TAG);
        Handler.Callback callback = new HandlerCallback(service);
@@ -333,6 +334,8 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
        return service;
    }

    // This must not be called outside of tests, even within the same package, as this constructor
    // does not register the local service. Use the create() helper above.
    @VisibleForTesting
    NetworkStatsService(Context context, INetworkManagementService networkManager,
            AlarmManager alarmManager, PowerManager.WakeLock wakeLock, Clock clock,
@@ -349,7 +352,9 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
        mSystemDir = checkNotNull(systemDir, "missing systemDir");
        mBaseDir = checkNotNull(baseDir, "missing baseDir");
        mUseBpfTrafficStats = new File("/sys/fs/bpf/traffic_uid_stats_map").exists();
    }

    private void registerLocalService() {
        LocalServices.addService(NetworkStatsManagerInternal.class,
                new NetworkStatsManagerInternalImpl());
    }
+0 −3
Original line number Diff line number Diff line
@@ -227,9 +227,6 @@ public class NetworkStatsServiceTest {

    @After
    public void tearDown() throws Exception {
        // Registered by NetworkStatsService's constructor.
        LocalServices.removeServiceForTest(NetworkStatsManagerInternal.class);

        IoUtils.deleteContents(mStatsDir);

        mServiceContext = null;