@Test
public void throughputInMemoryStrictUpdateCheckingServiceRemotePut() throws Throwable {

    int serviceCount = 4;
    int updateCount = 20;
    List<Service> services = this.host.doThroughputServiceStart(
            serviceCount, MinimalTestService.class,
            this.host.buildMinimalTestState(),
            EnumSet.of(Service.ServiceOption.STRICT_UPDATE_CHECKING), null);
    List<Service> durableServices = this.host.doThroughputServiceStart(
            serviceCount, MinimalTestService.class,
            this.host.buildMinimalTestState(),
            EnumSet.of(ServiceOption.STRICT_UPDATE_CHECKING, ServiceOption.PERSISTENCE), null);
    this.host.log("starting remote test");
    for (int i = 0; i < 3; i++) {
        this.host.doPutPerService(updateCount, EnumSet.of(TestProperty.FORCE_REMOTE),
                services);
        this.host.doPutPerService(updateCount, EnumSet.of(TestProperty.FORCE_REMOTE),
                durableServices);
    }
    this.host.log("starting expected failure test");
    this.host.toggleNegativeTestMode(true);
    int count = 2;
    this.host.doPutPerService(count,
            EnumSet.of(TestProperty.FORCE_REMOTE, TestProperty.FORCE_FAILURE),
            services);
    this.host.doPutPerService(count,
            EnumSet.of(TestProperty.FORCE_REMOTE, TestProperty.FORCE_FAILURE),
            durableServices);
    this.host.toggleNegativeTestMode(false);
}