26 #include "fdmi/filter_xc.h" 64 bool frst_operand[] = {
false,
false,
true,
true };
65 bool sec_operand[] = {
false,
true,
false,
true };
66 bool result_vals[] = {
false,
true,
true,
true };
94 } args0[] = { {0,0}, {0,1}, {1,0}, {1,1}, {1,2}, {2,1}, {2,2},
95 {0,-1}, {-1,0}, {-1,-1}, {-1,2}, {2,-1},
105 } args1[] = { {0,0}, {0,1}, {1,0}, {1,1}, {1,2}, {2,1}, {2,2},
158 eval_expected = !!(args0[
i].lft_arg > args0[
i].rgt_arg);
170 eval_expected = !!(args1[
i].lft_arg > args1[
i].rgt_arg);
298 "rc_bigger_than_size_guess", 0, 1);
300 m0_fi_disable(
"m0_fdmi_flt_node_print",
"rc_bigger_than_size_guess");
306 "rc_bigger_than_size_guess", 0, 1);
308 m0_fi_disable(
"m0_fdmi_flt_node_print",
"rc_bigger_than_size_guess");
324 root_read->
ffn_u.ffn_oper.ffon_op_code);
326 root_read->
ffn_u.ffn_oper.ffon_opnds.fno_cnt);
344 for (
i = 0;
i < 1;
i++) {
398 .
ts_name =
"fdmi-filter-eval-ut",
M0_INTERNAL int m0_fdmi_eval_add_op_cb(struct m0_fdmi_eval_ctx *ctx, enum m0_fdmi_flt_op_code op, m0_fdmi_flt_op_cb_t cb)
M0_INTERNAL int m0_xcode_encdec(struct m0_xcode_obj *obj, struct m0_bufvec_cursor *cur, enum m0_xcode_what what)
M0_INTERNAL int m0_xcode_print(const struct m0_xcode_obj *obj, char *str, int nr)
static struct buffer * cur(struct m0_addb2_mach *mach, m0_bcount_t space)
M0_INTERNAL void m0_fdmi_filter_init(struct m0_fdmi_filter *flt)
struct m0_fdmi_flt_node * m0_fdmi_flt_uint_node_create(uint64_t value)
static void flt_str_ops(void)
M0_INTERNAL void m0_fdmi_flt_bool_opnd_fill(struct m0_fdmi_flt_operand *opnd, bool value)
M0_INTERNAL int m0_xcode_read(struct m0_xcode_obj *obj, const char *str)
static bool flt_test_op_cb_called
static int flt_test_op_cb(struct m0_fdmi_flt_operands *opnds, struct m0_fdmi_flt_operand *res)
static int flt_eval_binary_operator(enum m0_fdmi_flt_op_code op_code, struct m0_fdmi_flt_node *opnd1, struct m0_fdmi_flt_node *opnd2, struct m0_fdmi_eval_ctx *eval_ctx)
M0_INTERNAL void m0_fdmi_eval_del_op_cb(struct m0_fdmi_eval_ctx *ctx, enum m0_fdmi_flt_op_code op)
M0_INTERNAL int m0_bufvec_alloc(struct m0_bufvec *bufvec, uint32_t num_segs, m0_bcount_t seg_size)
M0_INTERNAL void m0_fdmi_eval_init(struct m0_fdmi_eval_ctx *ctx)
struct m0_fdmi_flt_node * m0_fdmi_flt_bool_node_create(bool value)
struct m0_fdmi_flt_node * m0_fdmi_flt_int_node_create(int64_t value)
struct m0_conf_root * root
struct m0_fdmi_flt_node * m0_fdmi_flt_op_node_create(enum m0_fdmi_flt_op_code op_code, struct m0_fdmi_flt_node *left, struct m0_fdmi_flt_node *right)
M0_INTERNAL void m0_fi_disable(const char *fp_func, const char *fp_tag)
M0_INTERNAL int m0_fdmi_flt_node_parse(const char *str, struct m0_fdmi_flt_node *node)
static struct m0_bufvec bvec
M0_INTERNAL void m0_bufvec_cursor_init(struct m0_bufvec_cursor *cur, const struct m0_bufvec *bvec)
struct m0_ut_suite fdmi_filter_eval_ut
static void flt_set_op_cb(void)
M0_INTERNAL void m0_fdmi_filter_fini(struct m0_fdmi_filter *flt)
M0_INTERNAL int m0_fdmi_eval_flt(struct m0_fdmi_eval_ctx *ctx, struct m0_conf_fdmi_filter *filter, struct m0_fdmi_eval_var_info *var_info)
M0_INTERNAL int m0_xcode_data_size(struct m0_xcode_ctx *ctx, const struct m0_xcode_obj *obj)
M0_INTERNAL int m0_fdmi_flt_node_print(struct m0_fdmi_flt_node *node, char **out)
static void m0_fi_enable_off_n_on_m(const char *func, const char *tag, uint32_t n, uint32_t m)
M0_INTERNAL void m0_fdmi_filter_root_set(struct m0_fdmi_filter *flt, struct m0_fdmi_flt_node *root)
struct m0_fdmi_flt_node * ff_root
static void flt_eval_flt_xcode_str(void)
union m0_fdmi_flt_node::@170 ffn_u
static void flt_eval_simple_or(void)
#define M0_ALLOC_PTR(ptr)
#define M0_XCODE_OBJ(type, ptr)
M0_INTERNAL void m0_xcode_ctx_init(struct m0_xcode_ctx *ctx, const struct m0_xcode_obj *obj)
M0_INTERNAL void m0_fdmi_eval_fini(struct m0_fdmi_eval_ctx *ctx)
static void flt_eval_simple_gt(void)