[3/3] test: add UT for power turbo feature

Message ID 20190307135950.30738-4-lukaszx.krakowiak@intel.com (mailing list archive)
State Changes Requested, archived
Delegated to: Thomas Monjalon
Headers
Series test: improve test coverage for power library |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Lukasz Krakowiak March 7, 2019, 1:59 p.m. UTC
  Add UT check_power_turbo.

Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
---
 app/test/test_power_cpufreq.c | 72 +++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)
  

Comments

Anatoly Burakov March 27, 2019, 3:13 p.m. UTC | #1
On 07-Mar-19 1:59 PM, Lukasz Krakowiak wrote:
> Add UT check_power_turbo.
> 
> Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
> ---
>   app/test/test_power_cpufreq.c | 72 +++++++++++++++++++++++++++++++++++
>   1 file changed, 72 insertions(+)
> 
> diff --git a/app/test/test_power_cpufreq.c b/app/test/test_power_cpufreq.c
> index d099f2f47..c75c9bf1c 100644
> --- a/app/test/test_power_cpufreq.c
> +++ b/app/test/test_power_cpufreq.c
> @@ -366,6 +366,59 @@ check_power_freq_min(void)
>   	return 0;
>   }
>   
> +/* Check rte_power_turbo() */
> +static int
> +check_power_turbo(void)
> +{
> +	int ret;
> +
> +	if (rte_power_turbo_status(TEST_POWER_LCORE_ID) == 0) {
> +		printf("Turbo not available on lcore %u, skipping test\n",
> +		TEST_POWER_LCORE_ID);

Misleading indentation, please add two tabs to the second line of 
printf() statement.

> +		return 0;
> +	}
> +
> +	/* test with an invalid lcore id */
> +	ret = rte_power_freq_enable_turbo(TEST_POWER_LCORE_INVALID);
> +	if (ret >= 0) {
> +		printf("Unexpectedly enable turbo successfully "
> +				"on lcore %u\n", TEST_POWER_LCORE_INVALID);

Please don't break up strings to multiple lines.

> +		return -1;
> +	}
> +	ret = rte_power_freq_enable_turbo(TEST_POWER_LCORE_ID);
> +	if (ret < 0) {
> +		printf("Fail to enable turbo on lcore %u\n",
> +							TEST_POWER_LCORE_ID);

I wish there was a middle ground between no indentation and way too much 
indentation...

> +		return -1;
> +	}
> +
> +	/* Check the current frequency */
> +	ret = check_cur_freq(TEST_POWER_LCORE_ID, 0);
> +	if (ret < 0)
> +		return -1;
> +
> +	/* test with an invalid lcore id */
> +	ret = rte_power_freq_disable_turbo(TEST_POWER_LCORE_INVALID);
> +	if (ret >= 0) {
> +		printf("Unexpectedly disable turbo successfully "
> +				"on lcore %u\n", TEST_POWER_LCORE_INVALID);

Same as above, don't break up strings.

> +		return -1;
> +	}
> +	ret = rte_power_freq_disable_turbo(TEST_POWER_LCORE_ID);
> +	if (ret < 0) {
> +		printf("Fail to disable turbo on lcore %u\n",
> +							TEST_POWER_LCORE_ID);

Same as above, two tabs is enough indentation.

> +		return -1;
> +	}
> +
> +	/* Check the current frequency */
> +	ret = check_cur_freq(TEST_POWER_LCORE_ID, 1);
> +	if (ret < 0)
> +		return -1;
> +
> +	return 0;
> +}
> +
>   static int
>   test_power_cpufreq(void)
>   {
> @@ -427,6 +480,21 @@ test_power_cpufreq(void)
>   				"been initialised\n");
>   		goto fail_all;
>   	}
> +	if (rte_power_turbo_status == NULL) {
> +		printf("rte_power_turbo_status should not be NULL, environment has not "
> +				"been initialised\n");

Here and below:

I don't think saying *why* it should not be NULL - just saying that it 
shouldn't be NULL is enough. Maybe mention why it's supposed to be not 
NULL in comments here.

Also, i have a suspicion that the message is wrong - why would status be 
null if the environment was initialized? Presumably it's the other way 
around?

> +		goto fail_all;
> +	}
> +	if (rte_power_freq_enable_turbo == NULL) {
> +		printf("rte_power_freq_enable_turbo should not be NULL, environment has not "
> +				"been initialised\n");
> +		goto fail_all;
> +	}
> +	if (rte_power_freq_disable_turbo == NULL) {
> +		printf("rte_power_freq_disable_turbo should not be NULL, environment has not "
> +				"been initialised\n");
> +		goto fail_all;
> +	}
>   
>   	ret = rte_power_exit(TEST_POWER_LCORE_ID);
>   	if (ret < 0) {
> @@ -502,6 +570,10 @@ test_power_cpufreq(void)
>   	if (ret < 0)
>   		goto fail_all;
>   
> +	ret = check_power_turbo();
> +	if (ret < 0)
> +		goto fail_all;
> +
>   	ret = rte_power_exit(TEST_POWER_LCORE_ID);
>   	if (ret < 0) {
>   		printf("Cannot exit power management for lcore %u\n",
>
  
Lukasz Krakowiak April 3, 2019, 9:07 a.m. UTC | #2
Hi, 

> On 07-Mar-19 1:59 PM, Lukasz Krakowiak wrote:
> > Add UT check_power_turbo.
> >
> > Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
> > ---
> >   app/test/test_power_cpufreq.c | 72
> +++++++++++++++++++++++++++++++++++
> >   1 file changed, 72 insertions(+)
> >
> > diff --git a/app/test/test_power_cpufreq.c
> > b/app/test/test_power_cpufreq.c index d099f2f47..c75c9bf1c 100644
> > --- a/app/test/test_power_cpufreq.c
> > +++ b/app/test/test_power_cpufreq.c
> > @@ -366,6 +366,59 @@ check_power_freq_min(void)
> >   	return 0;
> >   }
> >
> > +/* Check rte_power_turbo() */
> > +static int
> > +check_power_turbo(void)
> > +{
> > +	int ret;
> > +
> > +	if (rte_power_turbo_status(TEST_POWER_LCORE_ID) == 0) {
> > +		printf("Turbo not available on lcore %u, skipping test\n",
> > +		TEST_POWER_LCORE_ID);
> 
> Misleading indentation, please add two tabs to the second line of
> printf() statement.
> 
> > +		return 0;
> > +	}
> > +
> > +	/* test with an invalid lcore id */
> > +	ret = rte_power_freq_enable_turbo(TEST_POWER_LCORE_INVALID);
> > +	if (ret >= 0) {
> > +		printf("Unexpectedly enable turbo successfully "
> > +				"on lcore %u\n",
> TEST_POWER_LCORE_INVALID);
> 
> Please don't break up strings to multiple lines.
> 
> > +		return -1;
> > +	}
> > +	ret = rte_power_freq_enable_turbo(TEST_POWER_LCORE_ID);
> > +	if (ret < 0) {
> > +		printf("Fail to enable turbo on lcore %u\n",
> > +
> 	TEST_POWER_LCORE_ID);
> 
> I wish there was a middle ground between no indentation and way too much
> indentation...
> 
> > +		return -1;
> > +	}
> > +
> > +	/* Check the current frequency */
> > +	ret = check_cur_freq(TEST_POWER_LCORE_ID, 0);
> > +	if (ret < 0)
> > +		return -1;
> > +
> > +	/* test with an invalid lcore id */
> > +	ret = rte_power_freq_disable_turbo(TEST_POWER_LCORE_INVALID);
> > +	if (ret >= 0) {
> > +		printf("Unexpectedly disable turbo successfully "
> > +				"on lcore %u\n",
> TEST_POWER_LCORE_INVALID);
> 
> Same as above, don't break up strings.
> 
> > +		return -1;
> > +	}
> > +	ret = rte_power_freq_disable_turbo(TEST_POWER_LCORE_ID);
> > +	if (ret < 0) {
> > +		printf("Fail to disable turbo on lcore %u\n",
> > +
> 	TEST_POWER_LCORE_ID);
> 
> Same as above, two tabs is enough indentation.
> 
> > +		return -1;
> > +	}
> > +
> > +	/* Check the current frequency */
> > +	ret = check_cur_freq(TEST_POWER_LCORE_ID, 1);
> > +	if (ret < 0)
> > +		return -1;
> > +
> > +	return 0;
> > +}
> > +
> >   static int
> >   test_power_cpufreq(void)
> >   {
> > @@ -427,6 +480,21 @@ test_power_cpufreq(void)
> >   				"been initialised\n");
> >   		goto fail_all;
> >   	}
> > +	if (rte_power_turbo_status == NULL) {
> > +		printf("rte_power_turbo_status should not be NULL,
> environment has not "
> > +				"been initialised\n");
> 
> Here and below:
> 
> I don't think saying *why* it should not be NULL - just saying that it shouldn't be
> NULL is enough. Maybe mention why it's supposed to be not NULL in comments
> here.
> 
> Also, i have a suspicion that the message is wrong - why would status be null if
> the environment was initialized? Presumably it's the other way around?

I think this is correctly: if env was initialized, pointer != NULL, otherwise env wasn't initialized.
Rest of all, you are right: coding style issues. Thanks.
> 
> > +		goto fail_all;
> > +	}
> > +	if (rte_power_freq_enable_turbo == NULL) {
> > +		printf("rte_power_freq_enable_turbo should not be NULL,
> environment has not "
> > +				"been initialised\n");
> > +		goto fail_all;
> > +	}
> > +	if (rte_power_freq_disable_turbo == NULL) {
> > +		printf("rte_power_freq_disable_turbo should not be NULL,
> environment has not "
> > +				"been initialised\n");
> > +		goto fail_all;
> > +	}
> >
> >   	ret = rte_power_exit(TEST_POWER_LCORE_ID);
> >   	if (ret < 0) {
> > @@ -502,6 +570,10 @@ test_power_cpufreq(void)
> >   	if (ret < 0)
> >   		goto fail_all;
> >
> > +	ret = check_power_turbo();
> > +	if (ret < 0)
> > +		goto fail_all;
> > +
> >   	ret = rte_power_exit(TEST_POWER_LCORE_ID);
> >   	if (ret < 0) {
> >   		printf("Cannot exit power management for lcore %u\n",
> >
> 
> 
> --
> Thanks,
> Anatoly
  
Anatoly Burakov April 3, 2019, 10:01 a.m. UTC | #3
On 03-Apr-19 10:07 AM, Krakowiak, LukaszX wrote:
> Hi,
> 
>> On 07-Mar-19 1:59 PM, Lukasz Krakowiak wrote:
>>> Add UT check_power_turbo.
>>>
>>> Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
>>> ---
>>>    app/test/test_power_cpufreq.c | 72
>> +++++++++++++++++++++++++++++++++++
>>>    1 file changed, 72 insertions(+)
>>>
>>> diff --git a/app/test/test_power_cpufreq.c
>>> b/app/test/test_power_cpufreq.c index d099f2f47..c75c9bf1c 100644
>>> --- a/app/test/test_power_cpufreq.c
>>> +++ b/app/test/test_power_cpufreq.c
>>> @@ -366,6 +366,59 @@ check_power_freq_min(void)
>>>    	return 0;
>>>    }
>>>
>>> +/* Check rte_power_turbo() */
>>> +static int
>>> +check_power_turbo(void)
>>> +{
>>> +	int ret;
>>> +
>>> +	if (rte_power_turbo_status(TEST_POWER_LCORE_ID) == 0) {
>>> +		printf("Turbo not available on lcore %u, skipping test\n",
>>> +		TEST_POWER_LCORE_ID);
>>
>> Misleading indentation, please add two tabs to the second line of
>> printf() statement.
>>
>>> +		return 0;
>>> +	}
>>> +
>>> +	/* test with an invalid lcore id */
>>> +	ret = rte_power_freq_enable_turbo(TEST_POWER_LCORE_INVALID);
>>> +	if (ret >= 0) {
>>> +		printf("Unexpectedly enable turbo successfully "
>>> +				"on lcore %u\n",
>> TEST_POWER_LCORE_INVALID);
>>
>> Please don't break up strings to multiple lines.
>>
>>> +		return -1;
>>> +	}
>>> +	ret = rte_power_freq_enable_turbo(TEST_POWER_LCORE_ID);
>>> +	if (ret < 0) {
>>> +		printf("Fail to enable turbo on lcore %u\n",
>>> +
>> 	TEST_POWER_LCORE_ID);
>>
>> I wish there was a middle ground between no indentation and way too much
>> indentation...
>>
>>> +		return -1;
>>> +	}
>>> +
>>> +	/* Check the current frequency */
>>> +	ret = check_cur_freq(TEST_POWER_LCORE_ID, 0);
>>> +	if (ret < 0)
>>> +		return -1;
>>> +
>>> +	/* test with an invalid lcore id */
>>> +	ret = rte_power_freq_disable_turbo(TEST_POWER_LCORE_INVALID);
>>> +	if (ret >= 0) {
>>> +		printf("Unexpectedly disable turbo successfully "
>>> +				"on lcore %u\n",
>> TEST_POWER_LCORE_INVALID);
>>
>> Same as above, don't break up strings.
>>
>>> +		return -1;
>>> +	}
>>> +	ret = rte_power_freq_disable_turbo(TEST_POWER_LCORE_ID);
>>> +	if (ret < 0) {
>>> +		printf("Fail to disable turbo on lcore %u\n",
>>> +
>> 	TEST_POWER_LCORE_ID);
>>
>> Same as above, two tabs is enough indentation.
>>
>>> +		return -1;
>>> +	}
>>> +
>>> +	/* Check the current frequency */
>>> +	ret = check_cur_freq(TEST_POWER_LCORE_ID, 1);
>>> +	if (ret < 0)
>>> +		return -1;
>>> +
>>> +	return 0;
>>> +}
>>> +
>>>    static int
>>>    test_power_cpufreq(void)
>>>    {
>>> @@ -427,6 +480,21 @@ test_power_cpufreq(void)
>>>    				"been initialised\n");
>>>    		goto fail_all;
>>>    	}
>>> +	if (rte_power_turbo_status == NULL) {
>>> +		printf("rte_power_turbo_status should not be NULL,
>> environment has not "
>>> +				"been initialised\n");
>>
>> Here and below:
>>
>> I don't think saying *why* it should not be NULL - just saying that it shouldn't be
>> NULL is enough. Maybe mention why it's supposed to be not NULL in comments
>> here.
>>
>> Also, i have a suspicion that the message is wrong - why would status be null if
>> the environment was initialized? Presumably it's the other way around?
> 
> I think this is correctly: if env was initialized, pointer != NULL, otherwise env wasn't initialized.
> Rest of all, you are right: coding style issues. Thanks.

The check is if rte_power_turbo_status is equal to NULL. If the check 
fails (i.e. rte_power_turbo_status is not NULL), we get an error message 
saying that rte_power_turbo_status should not be NULL. That doesn't 
compute :) Either it should not be NULL and the check is wrong, or it 
should be NULL and the error message is wrong.

>>
>>> +		goto fail_all;
>>> +	}
>>> +	if (rte_power_freq_enable_turbo == NULL) {
>>> +		printf("rte_power_freq_enable_turbo should not be NULL,
>> environment has not "
>>> +				"been initialised\n");
>>> +		goto fail_all;
>>> +	}
>>> +	if (rte_power_freq_disable_turbo == NULL) {
>>> +		printf("rte_power_freq_disable_turbo should not be NULL,
>> environment has not "
>>> +				"been initialised\n");
>>> +		goto fail_all;
>>> +	}
>>>
>>>    	ret = rte_power_exit(TEST_POWER_LCORE_ID);
>>>    	if (ret < 0) {
>>> @@ -502,6 +570,10 @@ test_power_cpufreq(void)
>>>    	if (ret < 0)
>>>    		goto fail_all;
>>>
>>> +	ret = check_power_turbo();
>>> +	if (ret < 0)
>>> +		goto fail_all;
>>> +
>>>    	ret = rte_power_exit(TEST_POWER_LCORE_ID);
>>>    	if (ret < 0) {
>>>    		printf("Cannot exit power management for lcore %u\n",
>>>
>>
>>
>> --
>> Thanks,
>> Anatoly
  

Patch

diff --git a/app/test/test_power_cpufreq.c b/app/test/test_power_cpufreq.c
index d099f2f47..c75c9bf1c 100644
--- a/app/test/test_power_cpufreq.c
+++ b/app/test/test_power_cpufreq.c
@@ -366,6 +366,59 @@  check_power_freq_min(void)
 	return 0;
 }
 
+/* Check rte_power_turbo() */
+static int
+check_power_turbo(void)
+{
+	int ret;
+
+	if (rte_power_turbo_status(TEST_POWER_LCORE_ID) == 0) {
+		printf("Turbo not available on lcore %u, skipping test\n",
+		TEST_POWER_LCORE_ID);
+		return 0;
+	}
+
+	/* test with an invalid lcore id */
+	ret = rte_power_freq_enable_turbo(TEST_POWER_LCORE_INVALID);
+	if (ret >= 0) {
+		printf("Unexpectedly enable turbo successfully "
+				"on lcore %u\n", TEST_POWER_LCORE_INVALID);
+		return -1;
+	}
+	ret = rte_power_freq_enable_turbo(TEST_POWER_LCORE_ID);
+	if (ret < 0) {
+		printf("Fail to enable turbo on lcore %u\n",
+							TEST_POWER_LCORE_ID);
+		return -1;
+	}
+
+	/* Check the current frequency */
+	ret = check_cur_freq(TEST_POWER_LCORE_ID, 0);
+	if (ret < 0)
+		return -1;
+
+	/* test with an invalid lcore id */
+	ret = rte_power_freq_disable_turbo(TEST_POWER_LCORE_INVALID);
+	if (ret >= 0) {
+		printf("Unexpectedly disable turbo successfully "
+				"on lcore %u\n", TEST_POWER_LCORE_INVALID);
+		return -1;
+	}
+	ret = rte_power_freq_disable_turbo(TEST_POWER_LCORE_ID);
+	if (ret < 0) {
+		printf("Fail to disable turbo on lcore %u\n",
+							TEST_POWER_LCORE_ID);
+		return -1;
+	}
+
+	/* Check the current frequency */
+	ret = check_cur_freq(TEST_POWER_LCORE_ID, 1);
+	if (ret < 0)
+		return -1;
+
+	return 0;
+}
+
 static int
 test_power_cpufreq(void)
 {
@@ -427,6 +480,21 @@  test_power_cpufreq(void)
 				"been initialised\n");
 		goto fail_all;
 	}
+	if (rte_power_turbo_status == NULL) {
+		printf("rte_power_turbo_status should not be NULL, environment has not "
+				"been initialised\n");
+		goto fail_all;
+	}
+	if (rte_power_freq_enable_turbo == NULL) {
+		printf("rte_power_freq_enable_turbo should not be NULL, environment has not "
+				"been initialised\n");
+		goto fail_all;
+	}
+	if (rte_power_freq_disable_turbo == NULL) {
+		printf("rte_power_freq_disable_turbo should not be NULL, environment has not "
+				"been initialised\n");
+		goto fail_all;
+	}
 
 	ret = rte_power_exit(TEST_POWER_LCORE_ID);
 	if (ret < 0) {
@@ -502,6 +570,10 @@  test_power_cpufreq(void)
 	if (ret < 0)
 		goto fail_all;
 
+	ret = check_power_turbo();
+	if (ret < 0)
+		goto fail_all;
+
 	ret = rte_power_exit(TEST_POWER_LCORE_ID);
 	if (ret < 0) {
 		printf("Cannot exit power management for lcore %u\n",