/*-
* BSD LICENSE
- *
- * Copyright(c) 2010-2013 Intel Corporation. All rights reserved.
+ *
+ * Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
* All rights reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
- *
+ *
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* * Neither the name of Intel Corporation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
#include <limits.h>
#include <string.h>
-#include <cmdline_parse.h>
-
#include "test.h"
-#ifdef RTE_LIBRTE_POWER
-
#include <rte_power.h>
#define TEST_POWER_LCORE_ID 2U
uint32_t cur_freq;
int ret = -1;
- if (rte_snprintf(fullpath, sizeof(fullpath),
+ if (snprintf(fullpath, sizeof(fullpath),
TEST_POWER_SYSFILE_CUR_FREQ, lcore_id) < 0) {
return 0;
}
TEST_POWER_LCORE_ID);
return -1;
}
- ret = rte_power_set_freq(TEST_POWER_LCORE_ID, 3);
+ ret = rte_power_set_freq(TEST_POWER_LCORE_ID, total_freq_num - 1);
if (ret < 0) {
printf("Fail to set freq index on lcore %u\n",
TEST_POWER_LCORE_ID);
}
/* Check the current frequency */
- ret = check_cur_freq(TEST_POWER_LCORE_ID, 3);
+ ret = check_cur_freq(TEST_POWER_LCORE_ID, total_freq_num - 1);
if (ret < 0)
return -1;
return 0;
}
-int
+static int
test_power(void)
{
int ret = -1;
if (ret < 0)
goto fail_all;
+ if (total_freq_num < 2) {
+ rte_power_exit(TEST_POWER_LCORE_ID);
+ printf("Frequency can not be changed due to CPU itself\n");
+ return 0;
+ }
+
ret = check_power_get_freq();
if (ret < 0)
goto fail_all;
return -1;
}
-#else /* RTE_LIBRTE_POWER */
-
-int
-test_power(void)
-{
- printf("The power library is not included in this build\n");
- return 0;
-}
-
-#endif /* RTE_LIBRTE_POWER */
-
+static struct test_command power_cmd = {
+ .command = "power_autotest",
+ .callback = test_power,
+};
+REGISTER_TEST_COMMAND(power_cmd);