Esempio n. 1
0
 def test_resend_accept(self):
     self.set_leader()
     self.p.set_proposal('foo')
     self.ae(self.p.proposed_value, 'foo')
     self.am('accept', PID(1, 'A'), 'foo')
     self.p.resend_accept()
     self.am('accept', PID(1, 'A'), 'foo')
Esempio n. 2
0
 def test_recv_promise_ignore_when_leader(self):
     self.p.prepare()
     self.am('prepare', PID(1, 'A'))
     self.ae(self.num_promises(), 0)
     self.p.leader = True
     self.p.recv_promise('B', PID(1, 'A'), None, None)
     self.ae(self.num_promises(), 0)
Esempio n. 3
0
 def test_durable_ignore_prepare_override_until_persisted(self):
     self.a.auto_save = False
     self.a.recv_prepare('A', PID(1, 'A'))
     self.an()
     self.a.recv_prepare('B', PID(2, 'B'))
     self.an()
     self.a.persisted()
     self.am('promise', 'A', PID(1, 'A'), None, None)
Esempio n. 4
0
 def test_recv_accept_request_less_than_promised(self):
     self.a.recv_prepare('A', PID(5, 'A'))
     self.am('promise', 'A', PID(5, 'A'), None, None)
     self.a.active = False
     self.a.recv_accept_request('A', PID(1, 'A'), 'foo')
     self.ae(self.a.accepted_value, None)
     self.ae(self.a.accepted_id, None)
     self.ae(self.a.promised_id, PID(5, 'A'))
     self.an()
Esempio n. 5
0
 def test_preare_no_increment(self):
     self.p.prepare()
     self.am('prepare', PID(1, 'A'))
     self.ae(self.num_promises(), 0)
     self.p.recv_promise('B', PID(1, 'A'), None, None)
     self.ae(self.num_promises(), 1)
     self.p.prepare(False)
     self.am('prepare', PID(1, 'A'))
     self.ae(self.num_promises(), 1)
Esempio n. 6
0
 def test_durable_ignore_new_accept_request_until_persisted(self):
     self.a.recv_prepare('A', PID(1, 'A'))
     self.am('promise', 'A', PID(1, 'A'), None, None)
     self.a.auto_save = False
     self.a.recv_accept_request('A', PID(5, 'A'), 'foo')
     self.an()
     self.a.recv_accept_request('A', PID(6, 'A'), 'foo')
     self.an()
     self.a.persisted()
     self.am('accepted', PID(5, 'A'), 'foo')
Esempio n. 7
0
 def test_recv_promise_acquire_leadership_without_proposal(self):
     self.p.prepare()
     self.am('prepare', PID(1, 'A'))
     self.ae(self.num_promises(), 0)
     self.p.recv_promise('B', PID(1, 'A'), None, None)
     self.ae(self.num_promises(), 1)
     self.at(not self.p.leader)
     self.at(not self.leader_acquired)
     self.p.recv_promise('C', PID(1, 'A'), None, None)
     self.ae(self.num_promises(), 2)
     self.at(self.p.leader)
     self.at(self.leader_acquired)
     self.an()
Esempio n. 8
0
 def test_recv_prepare_initial_not_active(self):
     self.ae(self.a.promised_id, None)
     self.ae(self.a.accepted_value, None)
     self.ae(self.a.accepted_id, None)
     self.a.active = False
     self.a.recv_prepare('A', PID(1, 'A'))
     self.an()
Esempio n. 9
0
 def test_durable_recv_prepare_override(self):
     self.a.recv_prepare('A', PID(1, 'A'))
     self.am('promise', 'A', PID(1, 'A'), None, None)
     self.a.recv_accept_request('A', PID(1, 'A'), 'foo')
     self.clear_msgs()
     self.a.recv_prepare('B', PID(2, 'B'))
     self.am('promise', 'B', PID(2, 'B'), PID(1, 'A'), 'foo')
Esempio n. 10
0
 def test_recv_accept_request_duplicate_not_active(self):
     self.a.recv_accept_request('A', PID(1, 'A'), 'foo')
     self.am('accepted', PID(1, 'A'), 'foo')
     self.a.active = False
     self.a.recv_accept_request('A', PID(1, 'A'), 'foo')
     self.an()
Esempio n. 11
0
 def test_set_proposal_no_previous_value_as_leader(self):
     self.set_leader()
     self.p.set_proposal('foo')
     self.ae(self.p.proposed_value, 'foo')
     self.am('accept', PID(1, 'A'), 'foo')
Esempio n. 12
0
 def set_leader(self):
     self.p.prepare()
     self.am('prepare', PID(1, 'A'))
     self.p.leader = True
     self.ae(self.p.proposed_value, None)
Esempio n. 13
0
 def test_durable_recv_accept_request_less_than_promised(self):
     self.a.recv_prepare('A', PID(5, 'A'))
     self.am('promise', 'A', PID(5, 'A'), None, None)
     self.a.recv_accept_request('A', PID(1, 'A'), 'foo')
     self.am('accept_nack', 'A', PID(1, 'A'), PID(5, 'A'))
Esempio n. 14
0
 def test_recv_prepare_nack(self):
     self.p.prepare()
     self.am('prepare', PID(1, 'A'))
     self.p.recv_prepare_nack('B', PID(1, 'A'), PID(5, 'B'))
     self.p.prepare()
     self.am('prepare', PID(6, 'A'))
Esempio n. 15
0
 def test_durable_recv_accept_request_greater_than_promised(self):
     self.a.recv_prepare('A', PID(1, 'A'))
     self.am('promise', 'A', PID(1, 'A'), None, None)
     self.recover()
     self.a.recv_accept_request('A', PID(5, 'A'), 'foo')
     self.am('accepted', PID(5, 'A'), 'foo')
Esempio n. 16
0
 def test_recv_prepare_nack(self):
     self.a.recv_prepare('A', PID(2, 'A'))
     self.am('promise', 'A', PID(2, 'A'), None, None)
     self.a.recv_prepare('A', PID(1, 'A'))
     self.am('prepare_nack', 'A', PID(1, 'A'), PID(2, 'A'))
Esempio n. 17
0
 def test_durable_recv_prepare_duplicate(self):
     self.a.recv_prepare('A', PID(2, 'A'))
     self.am('promise', 'A', PID(2, 'A'), None, None)
     self.recover()
     self.a.recv_prepare('A', PID(2, 'A'))
     self.am('promise', 'A', PID(2, 'A'), None, None)
Esempio n. 18
0
 def test_add_to_final_acceptors_after_resolution_with_pid_mismatch(self):
     self.test_basic_resolution_final_acceptors()
     self.l.recv_accepted('C', PID(0, 'A'), 'foo')
     self.ae(self.l.final_acceptors, set(['A', 'B', 'C']))
Esempio n. 19
0
 def test_observe_proposal(self):
     self.p.prepare()
     self.am('prepare', PID(1, 'A'))
     self.p.observe_proposal('B', PID(5, 'B'))
     self.p.prepare()
     self.am('prepare', PID(6, 'A'))
Esempio n. 20
0
 def test_prepare_increment_on_foriegn_promise(self):
     self.p.recv_promise('B', PID(5, 'C'), None, None)
     self.p.prepare()
     self.am('prepare', PID(6, 'A'))
Esempio n. 21
0
 def test_recv_accept_request_duplicate(self):
     self.a.recv_accept_request('A', PID(1, 'A'), 'foo')
     self.am('accepted', PID(1, 'A'), 'foo')
     self.a.recv_accept_request('A', PID(1, 'A'), 'foo')
     self.am('accepted', PID(1, 'A'), 'foo')
Esempio n. 22
0
 def test_recv_prepare_duplicate_not_active(self):
     self.a.recv_prepare('A', PID(1, 'A'))
     self.am('promise', 'A', PID(1, 'A'), None, None)
     self.a.active = False
     self.a.recv_prepare('A', PID(1, 'A'))
     self.an()
Esempio n. 23
0
 def test_recv_accept_request_less_than_promised(self):
     super(PracticalAcceptorTests,
           self).test_recv_accept_request_less_than_promised()
     self.am('accept_nack', 'A', PID(1, 'A'), PID(5, 'A'))
Esempio n. 24
0
 def test_prepare_increment_on_foriegn_promise_not_active(self):
     self.p.active = False
     self.p.recv_promise('B', PID(5, 'C'), None, None)
     self.p.prepare()
     self.an()
Esempio n. 25
0
 def test_recv_accept_request_initial_not_active(self):
     self.a.active = False
     self.a.recv_accept_request('A', PID(1, 'A'), 'foo')
     self.an()
Esempio n. 26
0
 def test_recv_accept_request_promised_not_active(self):
     self.a.recv_prepare('A', PID(1, 'A'))
     self.am('promise', 'A', PID(1, 'A'), None, None)
     self.a.active = False
     self.a.recv_accept_request('A', PID(1, 'A'), 'foo')
     self.an()
Esempio n. 27
0
 def test_basic_resolution_final_acceptors(self):
     self.ae(self.l.final_acceptors, None)
     self.l.recv_accepted('A', PID(1, 'A'), 'foo')
     self.l.recv_accepted('B', PID(1, 'A'), 'foo')
     self.ae(self.l.final_acceptors, set(['A', 'B']))