forked from goodboy/tractor
				
			Adjust debug tests to accomodate no more root clobbering
							parent
							
								
									3a52feca74
								
							
						
					
					
						commit
						f732ea255e
					
				|  | @ -307,20 +307,47 @@ def test_multi_daemon_subactors(spawn, loglevel): | ||||||
|     before = str(child.before.decode()) |     before = str(child.before.decode()) | ||||||
|     assert "NameError" in before |     assert "NameError" in before | ||||||
| 
 | 
 | ||||||
|     child.sendline('c') |     # XXX: hoorayy the root clobering the child here was fixed! | ||||||
| 
 | 
 | ||||||
|  |     # now the root actor won't clobber the bp_forever child | ||||||
|  |     # during it's first access to the debug lock, but will instead | ||||||
|  |     # wait for the lock to release, by the edge triggered | ||||||
|  |     # ``_debug._no_remote_has_tty`` event before sending cancel messages | ||||||
|  |     # (via portals) to its underlings B) | ||||||
|  | 
 | ||||||
|  |     # IMO, this demonstrates the true power of SC system design. | ||||||
|  |     child.sendline('c') | ||||||
|  |     child.expect(r"\(Pdb\+\+\)") | ||||||
|  |     before = str(child.before.decode()) | ||||||
|  |     assert "Attaching pdb to actor: ('bp_forever'," in before | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     child.sendline('c') | ||||||
|     child.expect(r"\(Pdb\+\+\)") |     child.expect(r"\(Pdb\+\+\)") | ||||||
|     before = str(child.before.decode()) |     before = str(child.before.decode()) | ||||||
|     assert "tractor._exceptions.RemoteActorError: ('name_error'" in before |  | ||||||
| 
 | 
 | ||||||
|     try: |     try: | ||||||
|         child.sendline('c') |         # final error in root | ||||||
|         child.expect(pexpect.EOF) |         assert "tractor._exceptions.RemoteActorError: ('name_error'" in before | ||||||
|     except pexpect.exceptions.TIMEOUT: |  | ||||||
|         # Failed to exit using continue..? |  | ||||||
| 
 | 
 | ||||||
|         child.sendline('q') |     except AssertionError: | ||||||
|         child.expect(pexpect.EOF) |     # except pexpect.exceptions.TIMEOUT: | ||||||
|  | 
 | ||||||
|  |         # one last entry in the root | ||||||
|  |         child.sendline('c') | ||||||
|  |         child.expect(r"\(Pdb\+\+\)") | ||||||
|  |         before = str(child.before.decode()) | ||||||
|  |         assert "tractor._exceptions.RemoteActorError: ('name_error'" in before | ||||||
|  | 
 | ||||||
|  |         # theory there should have been some msg like this from | ||||||
|  |         # root announcing it avoided a clobber of the child's lock, | ||||||
|  |         # but it seems unreliable in testing here to gnab it. | ||||||
|  |         # assert "in use by child ('bp_forever'," in before | ||||||
|  | 
 | ||||||
|  |     child.sendline('c') | ||||||
|  |     # final error in root | ||||||
|  |     assert "tractor._exceptions.RemoteActorError: ('name_error'" in before | ||||||
|  |     child.expect(pexpect.EOF) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def test_multi_subactors_root_errors(spawn): | def test_multi_subactors_root_errors(spawn): | ||||||
|  | @ -372,7 +399,7 @@ def test_multi_nested_subactors_error_through_nurseries(spawn): | ||||||
|     child = spawn('multi_nested_subactors_error_up_through_nurseries') |     child = spawn('multi_nested_subactors_error_up_through_nurseries') | ||||||
| 
 | 
 | ||||||
|     # startup time can be iffy |     # startup time can be iffy | ||||||
|     time.sleep(1) |     # time.sleep(1) | ||||||
| 
 | 
 | ||||||
|     for i in range(12): |     for i in range(12): | ||||||
|         try: |         try: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue