Subject: Re: [PATCH v7 4/6] perf/tools: Enhance JSON/metric infrastructure to handle "?"

From: Jiri Olsa <[email-masked]>
Date: Mon, 30 Mar 2020 21:35:36 +0200

On Fri, Mar 27, 2020 at 03:55:26PM +0530, Kajol Jain wrote:

SNIP

> diff --git a/tools/perf/tests/expr.c b/tools/perf/tests/expr.c
> index ea10fc4412c4..516504cf0ea5 100644
> --- a/tools/perf/tests/expr.c
> +++ b/tools/perf/tests/expr.c
> @@ -10,7 +10,7 @@ static int test(struct expr_parse_ctx *ctx, const char *e, double val2)
>  {
>  	double val;
>  
> -	if (expr__parse(&val, ctx, e))
> +	if (expr__parse(&val, ctx, e, 1))
>  		TEST_ASSERT_VAL("parse test failed", 0);
>  	TEST_ASSERT_VAL("unexpected value", val == val2);
>  	return 0;
> @@ -44,15 +44,15 @@ int test__expr(struct test *t __maybe_unused, int subtest __maybe_unused)
>  		return ret;
>  
>  	p = "FOO/0";
> -	ret = expr__parse(&val, &ctx, p);
> +	ret = expr__parse(&val, &ctx, p, 1);
>  	TEST_ASSERT_VAL("division by zero", ret == -1);
>  
>  	p = "BAR/";
> -	ret = expr__parse(&val, &ctx, p);
> +	ret = expr__parse(&val, &ctx, p, 1);
>  	TEST_ASSERT_VAL("missing operand", ret == -1);
>  
>  	TEST_ASSERT_VAL("find other",
> -			expr__find_other("FOO + BAR + BAZ + BOZO", "FOO", &other, &num_other) == 0);
> +			expr__find_other("FOO + BAR + BAZ + BOZO", "FOO", &other, &num_other, 1) == 0);
>  	TEST_ASSERT_VAL("find other", num_other == 3);
>  	TEST_ASSERT_VAL("find other", !strcmp(other[0], "BAR"));
>  	TEST_ASSERT_VAL("find other", !strcmp(other[1], "BAZ"));

could we add test case for runtime param > 1 in here?
expr_parse should return value that would depend on this value..

jirka