| 
					
				 | 
			
			
				@@ -107,6 +107,38 @@ test_dispatch_simple(void *arg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   tor_free(recv2_received); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* Construct a dispatch_t with a message and no reciever; make sure that it 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * gets dropped properly. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+test_dispatch_no_recipient(void *arg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (void)arg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dispatch_t *d=NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dispatch_cfg_t *cfg=NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  int r; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  cfg = dcfg_new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  r = dcfg_msg_set_type(cfg,0,0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  r += dcfg_msg_set_chan(cfg,0,0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tt_int_op(r, OP_EQ, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  d = dispatch_new(cfg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tt_assert(d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dispatcher_in_use = d; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  msg_aux_data_t data = { .u64 = 7}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  r = dispatch_send(d, 99, 0, 0, 0, data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tt_int_op(r, OP_EQ, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  r = dispatch_flush(d, 0, INT_MAX); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tt_int_op(r, OP_EQ, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ done: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dispatch_free(d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dcfg_free(cfg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 struct coord { int x; int y; }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 free_coord(msg_aux_data_t d) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -210,6 +242,7 @@ test_dispatch_bad_type_setup(void *arg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 struct testcase_t dispatch_tests[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   T(empty), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   T(simple), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  T(no_recipient), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   T(with_types), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   T(bad_type_setup), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   END_OF_TESTCASES 
			 |