| 
					
				 | 
			
			
				@@ -102,12 +102,8 @@ def _build_and_run(check_cancelled, newline_on_success, forever=False): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               check_cancelled, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               newline_on_success=newline_on_success, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               maxjobs=min(c.maxjobs for c in run_configs)): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if not forever: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      jobset.message('FAILED', 'Some tests failed', do_newline=True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if not forever: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    jobset.message('SUCCESS', 'All tests passed', do_newline=True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -118,12 +114,21 @@ if forever: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     initial_time = dw.most_recent_change() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     have_files_changed = lambda: dw.most_recent_change() != initial_time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     previous_success = success 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    success = _build_and_run(have_files_changed, newline_on_success=False, forever=True) == 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    success = _build_and_run(have_files_changed, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                             newline_on_success=False, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                             forever=True) == 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if not previous_success and success: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      jobset.message('SUCCESS', 'All tests are now passing properly', do_newline=True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      jobset.message('SUCCESS', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     'All tests are now passing properly', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     do_newline=True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     jobset.message('IDLE', 'No change detected') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     while not have_files_changed(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       time.sleep(1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  sys.exit(_build_and_run(lambda: False, newline_on_success=args.newline_on_success)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  result = _build_and_run(lambda: False, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          newline_on_success=args.newline_on_success) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if result == 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    jobset.message('SUCCESS', 'All tests passed', do_newline=True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    jobset.message('FAILED', 'Some tests failed', do_newline=True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sys.exit(result) 
			 |