|  | @@ -51,14 +51,16 @@
 | 
	
		
			
				|  |  |  #define test_memeq(expr1, expr2, len) test_mem_op((expr1), ==, (expr2), len)
 | 
	
		
			
				|  |  |  #define test_memneq(expr1, expr2, len) test_mem_op((expr1), !=, (expr2), len)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +/* As test_mem_op, but decodes 'hex' before comparing.  There must be a
 | 
	
		
			
				|  |  | + * local char* variable called mem_op_hex_tmp for this to work. */
 | 
	
		
			
				|  |  |  #define test_mem_op_hex(expr1, op, hex)                                 \
 | 
	
		
			
				|  |  |    STMT_BEGIN                                                            \
 | 
	
		
			
				|  |  |    size_t length = strlen(hex);                                          \
 | 
	
		
			
				|  |  | -  char *value2 = tor_malloc(length/2);                                  \
 | 
	
		
			
				|  |  | +  tor_free(mem_op_hex_tmp);                                             \
 | 
	
		
			
				|  |  | +  mem_op_hex_tmp = tor_malloc(length/2);                                \
 | 
	
		
			
				|  |  |    tor_assert((length&1)==0);                                            \
 | 
	
		
			
				|  |  | -  base16_decode(value2, length/2, hex, length);                         \
 | 
	
		
			
				|  |  | -  test_mem_op(expr1, op, value2, length/2);                             \
 | 
	
		
			
				|  |  | -  tor_free(value2);                                                     \
 | 
	
		
			
				|  |  | +  base16_decode(mem_op_hex_tmp, length/2, hex, length);                 \
 | 
	
		
			
				|  |  | +  test_mem_op(expr1, op, mem_op_hex_tmp, length/2);                     \
 | 
	
		
			
				|  |  |    STMT_END
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #define test_memeq_hex(expr1, hex) test_mem_op_hex(expr1, ==, hex)
 |