t.clientDoOps(1).checkClientSentOps().checkClientGotOps(); t.reconnectToServer().checkClientSentOpen(0, 1, 3); t.clientDoOps(1).checkClientSentOps().checkClientGotOps(); t.reconnectToServer().checkClientSentOpen(0, 1, 2); t.clientDoOps(1).checkClientSentOps().checkClientGotOps(); t.reconnectToServer().checkClientSentOpen(0, 1, 2); t.serverDoOpen(2, 3).checkClientSentOps(); t.clientDoOps(1).checkClientSentOps(3).checkClientGotOps(); t.reconnectToServer().checkClientSentOpen(2, 3); t.reconnectToServer().checkClientSentOpen(0, 1); t.serverDoOpen(1, 4).checkClientSentOps(1); t.reconnectToServer().checkClientSentOpen(0, 1); t.serverDoOpen(1, 4).checkClientSentOps(); t.reconnectToServer().checkClientSentOpen(0, 1); t.serverDoOpen(1, 3).checkClientSentOps(); t.reconnectToServer().checkClientSentOpen(1, 2);
t.clientDoOps(1).checkClientSentOps().checkClientGotOps(); t.reconnectToServer().checkClientSentOpen(0, 1, 3); t.clientDoOps(1).checkClientSentOps().checkClientGotOps(); t.reconnectToServer().checkClientSentOpen(0, 1, 2); t.clientDoOps(1).checkClientSentOps().checkClientGotOps(); t.reconnectToServer().checkClientSentOpen(0, 1, 2); t.serverDoOpen(2, 3).checkClientSentOps(); t.clientDoOps(1).checkClientSentOps(3).checkClientGotOps(); t.reconnectToServer().checkClientSentOpen(2, 3); t.reconnectToServer().checkClientSentOpen(0, 1); t.serverDoOpen(1, 4).checkClientSentOps(1); t.reconnectToServer().checkClientSentOpen(0, 1); t.serverDoOpen(1, 4).checkClientSentOps(); t.reconnectToServer().checkClientSentOpen(0, 1); t.serverDoOpen(1, 3).checkClientSentOps(); t.reconnectToServer().checkClientSentOpen(1, 2);
t.clientDoDocOps("blip2").checkClientSentOps().checkClientGotOps(); t.reconnectToServer().checkClientSentOpen(0); t.clientDoDocOps("blip3").checkClientSentOps().checkClientGotOps(); t.reconnectToServer().checkClientSentOpen(0, 1); t.reconnectToServer().checkClientSentOpen(2);
t.clientDoDocOps("blip2").checkClientSentOps().checkClientGotOps(); t.reconnectToServer().checkClientSentOpen(0); t.clientDoDocOps("blip3").checkClientSentOps().checkClientGotOps(); t.reconnectToServer().checkClientSentOpen(0, 1); t.reconnectToServer().checkClientSentOpen(2);
t.reconnectToServer().checkClientSentOpen(0, 1, 3); t.reconnectToServer().checkClientSentOpen(0, 1);
t.reconnectToServer().checkClientSentOpen(0, 1, 3); t.reconnectToServer().checkClientSentOpen(0, 1);
/** * Mainly to test that we are doing comparison for doc op. */ public void testEchoBackDocumentEquality() throws Exception { TestConfig t = new TestConfig(); // Simple case // c1 / ack c1 // c2 / ack c2 // c3 (ack lost) / ack c3 <-- connection broken, <-- recover from here // c4 (cached) / t.init(0); // Use different blip ids so that we don't merge ops t.clientDoDocOps("blip1").checkClientSentOps(0).checkClientGotOps(); t.serverAck(1).checkClientSentOps().checkClientGotOps(0); t.clientDoDocOps("blip2").checkClientSentOps(1).checkClientGotOps(); t.serverAck(2).checkClientSentOps().checkClientGotOps(1); t.clientDoDocOps("blip3").checkClientSentOps(2).checkClientGotOps(); t.clientDoDocOps("blip4").checkClientSentOps().checkClientGotOps(); // Reconnect t.reconnectToServer().checkClientSentOpen(0, 1, 2); t.serverDoOpen(2, 3).checkClientSentOps(); // Client interprets the echo-back as an ack, which we test by // seeing that it goes on to send c4 t.serverDoEchoBackDocOp(2, "blip3").checkClientSentOps(3); }
/** * Mainly to test that we are doing comparison for doc op. */ public void testEchoBackDocumentEquality() throws Exception { TestConfig t = new TestConfig(); // Simple case // c1 / ack c1 // c2 / ack c2 // c3 (ack lost) / ack c3 <-- connection broken, <-- recover from here // c4 (cached) / t.init(0); // Use different blip ids so that we don't merge ops t.clientDoDocOps("blip1").checkClientSentOps(0).checkClientGotOps(); t.serverAck(1).checkClientSentOps().checkClientGotOps(0); t.clientDoDocOps("blip2").checkClientSentOps(1).checkClientGotOps(); t.serverAck(2).checkClientSentOps().checkClientGotOps(1); t.clientDoDocOps("blip3").checkClientSentOps(2).checkClientGotOps(); t.clientDoDocOps("blip4").checkClientSentOps().checkClientGotOps(); // Reconnect t.reconnectToServer().checkClientSentOpen(0, 1, 2); t.serverDoOpen(2, 3).checkClientSentOps(); // Client interprets the echo-back as an ack, which we test by // seeing that it goes on to send c4 t.serverDoEchoBackDocOp(2, "blip3").checkClientSentOps(3); }
/** * Test that the client ignores the timestamp in the echo back op from the server. */ public void testEchobackWithDifferentTimeStamp() throws Exception { TestConfig t = new TestConfig(); // Simple case // c1 / ack c1 <-- recover from here // c2 / ack c2 // c3 (ack lost) / ack c3 <-- connection broken // c4 (cached) / t.init(0); t.clientDoOps(1).checkClientSentOps(0).checkClientGotOps(); t.serverAck(1).checkClientSentOps().checkClientGotOps(0); t.clientDoOps(1).checkClientSentOps(1).checkClientGotOps(); t.serverAck(2).checkClientSentOps().checkClientGotOps(1); t.clientDoOps(1).checkClientSentOps(2).checkClientGotOps(); t.clientDoOps(1).checkClientSentOps().checkClientGotOps(); // Reconnect t.reconnectToServer().checkClientSentOpen(0, 1, 2); t.serverDoOpen(2, 3).checkClientSentOps(); // Using a different timestamp. The client should not care about the timestamp. t.serverDoEchoBack(2, 12345L).checkClientSentOps(3); }
/** * Test that the client ignores the timestamp in the echo back op from the server. */ public void testEchobackWithDifferentTimeStamp() throws Exception { TestConfig t = new TestConfig(); // Simple case // c1 / ack c1 <-- recover from here // c2 / ack c2 // c3 (ack lost) / ack c3 <-- connection broken // c4 (cached) / t.init(0); t.clientDoOps(1).checkClientSentOps(0).checkClientGotOps(); t.serverAck(1).checkClientSentOps().checkClientGotOps(0); t.clientDoOps(1).checkClientSentOps(1).checkClientGotOps(); t.serverAck(2).checkClientSentOps().checkClientGotOps(1); t.clientDoOps(1).checkClientSentOps(2).checkClientGotOps(); t.clientDoOps(1).checkClientSentOps().checkClientGotOps(); // Reconnect t.reconnectToServer().checkClientSentOpen(0, 1, 2); t.serverDoOpen(2, 3).checkClientSentOps(); // Using a different timestamp. The client should not care about the timestamp. t.serverDoEchoBack(2, 12345L).checkClientSentOps(3); }
public void testRecoveryWithCommit() throws Exception { TestConfig t = new TestConfig(); // Reconnect after server commit // c1 / ack c1 <-- server commit, reconnect here. // c2 / ack c2 t.init(0); t.clientDoOps(1).checkClientSentOps(0).checkClientGotOps(); t.serverAck(1).checkClientSentOps().checkClientGotOps(0); t.clientDoOps(1).checkClientSentOps(1).checkClientGotOps(); t.serverAck(2).checkClientSentOps().checkClientGotOps(1); t.serverCommit(1); // Reconnect t.reconnectToServer().checkClientSentOpen(1, 2); }
public void testRecoveryWithCommit() throws Exception { TestConfig t = new TestConfig(); // Reconnect after server commit // c1 / ack c1 <-- server commit, reconnect here. // c2 / ack c2 t.init(0); t.clientDoOps(1).checkClientSentOps(0).checkClientGotOps(); t.serverAck(1).checkClientSentOps().checkClientGotOps(0); t.clientDoOps(1).checkClientSentOps(1).checkClientGotOps(); t.serverAck(2).checkClientSentOps().checkClientGotOps(1); t.serverCommit(1); // Reconnect t.reconnectToServer().checkClientSentOpen(1, 2); }