test/power: add cases for turbo feature

Add UT check_power_turbo.

Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak@intel.com>
Acked-by: David Hunt <david.hunt@intel.com>
Tested-by: Marcin Hajkowski <marcinx.hajkowski@intel.com>
This commit is contained in:
Lukasz Krakowiak 2019-04-03 12:32:56 +02:00 committed by Thomas Monjalon
parent c7ec1f26fd
commit aeaeaf5f2d

View File

@ -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",