crm_err("Expression %s/%s passed", ID(rule), ID(expr));
crm_debug_3("Expression %s/%s passed", ID(rule), ID(expr));
test_rule(crm_data_t *rule, node_t *node) {	gboolean test = TRUE;	gboolean passed = TRUE;	gboolean do_and = TRUE;	const char *value = crm_element_value(rule, "boolean_op");	if(safe_str_eq(value, "or")) {		do_and = FALSE;		passed = FALSE;	}	crm_debug_2("Testing rule %s", ID(rule));	xml_child_iter(		rule, expr, NULL,		test = test_expression(expr, node);				if(test && do_and == FALSE) {			crm_err("Expression %s/%s passed", ID(rule), ID(expr));			return TRUE;					} else if(test == FALSE && do_and) {			crm_err("Expression %s/%s failed", ID(rule), ID(expr));			return FALSE;		}		);			if(passed == FALSE) {		crm_err("Rule %s failed", ID(rule));	}	return passed;}