[3/3] test: add UT for power turbo feature
Checks
Commit Message
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
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",
>
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
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
@@ -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",