diff options
Diffstat (limited to 'tools/perf/tests/expr.c')
| -rw-r--r-- | tools/perf/tests/expr.c | 40 | 
1 files changed, 40 insertions, 0 deletions
diff --git a/tools/perf/tests/expr.c b/tools/perf/tests/expr.c index 733ead151c63..3d01eb5e2512 100644 --- a/tools/perf/tests/expr.c +++ b/tools/perf/tests/expr.c @@ -185,6 +185,46 @@ static int test__expr(struct test_suite *t __maybe_unused, int subtest __maybe_u  			NULL, ctx) == 0);  	TEST_ASSERT_VAL("find ids", hashmap__size(ctx->ids) == 0); +	/* The expression is a constant 0.0 without needing to evaluate EVENT1. */ +	expr__ctx_clear(ctx); +	TEST_ASSERT_VAL("find ids", +			expr__find_ids("0 & EVENT1 > 0", NULL, ctx) == 0); +	TEST_ASSERT_VAL("find ids", hashmap__size(ctx->ids) == 0); +	expr__ctx_clear(ctx); +	TEST_ASSERT_VAL("find ids", +			expr__find_ids("EVENT1 > 0 & 0", NULL, ctx) == 0); +	TEST_ASSERT_VAL("find ids", hashmap__size(ctx->ids) == 0); +	expr__ctx_clear(ctx); +	TEST_ASSERT_VAL("find ids", +			expr__find_ids("1 & EVENT1 > 0", NULL, ctx) == 0); +	TEST_ASSERT_VAL("find ids", hashmap__size(ctx->ids) == 1); +	TEST_ASSERT_VAL("find ids", hashmap__find(ctx->ids, "EVENT1", &val_ptr)); +	expr__ctx_clear(ctx); +	TEST_ASSERT_VAL("find ids", +			expr__find_ids("EVENT1 > 0 & 1", NULL, ctx) == 0); +	TEST_ASSERT_VAL("find ids", hashmap__size(ctx->ids) == 1); +	TEST_ASSERT_VAL("find ids", hashmap__find(ctx->ids, "EVENT1", &val_ptr)); + +	/* The expression is a constant 1.0 without needing to evaluate EVENT1. */ +	expr__ctx_clear(ctx); +	TEST_ASSERT_VAL("find ids", +			expr__find_ids("1 | EVENT1 > 0", NULL, ctx) == 0); +	TEST_ASSERT_VAL("find ids", hashmap__size(ctx->ids) == 0); +	expr__ctx_clear(ctx); +	TEST_ASSERT_VAL("find ids", +			expr__find_ids("EVENT1 > 0 | 1", NULL, ctx) == 0); +	TEST_ASSERT_VAL("find ids", hashmap__size(ctx->ids) == 0); +	expr__ctx_clear(ctx); +	TEST_ASSERT_VAL("find ids", +			expr__find_ids("0 | EVENT1 > 0", NULL, ctx) == 0); +	TEST_ASSERT_VAL("find ids", hashmap__size(ctx->ids) == 1); +	TEST_ASSERT_VAL("find ids", hashmap__find(ctx->ids, "EVENT1", &val_ptr)); +	expr__ctx_clear(ctx); +	TEST_ASSERT_VAL("find ids", +			expr__find_ids("EVENT1 > 0 | 0", NULL, ctx) == 0); +	TEST_ASSERT_VAL("find ids", hashmap__size(ctx->ids) == 1); +	TEST_ASSERT_VAL("find ids", hashmap__find(ctx->ids, "EVENT1", &val_ptr)); +  	/* Test toplogy constants appear well ordered. */  	expr__ctx_clear(ctx);  	TEST_ASSERT_VAL("#num_cpus", expr__parse(&num_cpus, ctx, "#num_cpus") == 0);  | 
