On Tue, 2024-07-02 at 15:12 +0500, Muhammad Usama Anjum wrote:
Conform the layout, informational and status messages to TAP. No functional change is intended other than the layout of output messages.
Not true. You did functional change by adding a break in the loop. The purpose here to wait for these message continuously till ctrl-c or similar.
The test has infinite loop to read the value of status_str. Break the loop after getting the value once and finish the test.
No, that is not the purpose.
Signed-off-by: Muhammad Usama Anjum usama.anjum@collabora.com
Changes since v1:
- Use ksft_exit_fail_perror if read() returns error
- Break the infinite loop after printing status_str
.../intel/power_floor/power_floor_test.c | 70 ++++++++---------
1 file changed, 30 insertions(+), 40 deletions(-)
diff --git a/tools/testing/selftests/thermal/intel/power_floor/power_floor_test. c b/tools/testing/selftests/thermal/intel/power_floor/power_floor_test. c index 0326b39a11b91..c06b275acd36b 100644
a/tools/testing/selftests/thermal/intel/power_floor/power_floor_test. c +++ b/tools/testing/selftests/thermal/intel/power_floor/power_floor_test. c @@ -9,6 +9,7 @@ #include <fcntl.h> #include <poll.h> #include <signal.h> +#include "../../../kselftest.h" #define POWER_FLOOR_ENABLE_ATTRIBUTE "/sys/bus/pci/devices/0000:00:04.0/power_limits/power_floor_enable" #define POWER_FLOOR_STATUS_ATTRIBUTE "/sys/bus/pci/devices/0000:00:04.0/power_limits/power_floor_status" @@ -20,17 +21,13 @@ void power_floor_exit(int signum) /* Disable feature via sysfs knob */ fd = open(POWER_FLOOR_ENABLE_ATTRIBUTE, O_RDWR);
- if (fd < 0) {
perror("Unable to open power floor enable file\n");
exit(1);
- }
- if (fd < 0)
ksft_exit_fail_perror("Unable to open power floor
enable file");
- if (write(fd, "0\n", 2) < 0) {
perror("Can' disable power floor notifications\n");
exit(1);
- }
- if (write(fd, "0\n", 2) < 0)
ksft_exit_fail_perror("Can' disable power floor
notifications");
- printf("Disabled power floor notifications\n");
- ksft_print_msg("Disabled power floor notifications\n");
close(fd); } @@ -41,6 +38,9 @@ int main(int argc, char **argv) char status_str[3]; int fd, ret;
- ksft_print_header();
- ksft_set_plan(1);
if (signal(SIGINT, power_floor_exit) == SIG_IGN) signal(SIGINT, SIG_IGN); if (signal(SIGHUP, power_floor_exit) == SIG_IGN) @@ -50,59 +50,49 @@ int main(int argc, char **argv) /* Enable feature via sysfs knob */ fd = open(POWER_FLOOR_ENABLE_ATTRIBUTE, O_RDWR);
- if (fd < 0) {
perror("Unable to open power floor enable file\n");
exit(1);
- }
- if (fd < 0)
ksft_exit_fail_perror("Unable to open power floor
enable file");
- if (write(fd, "1\n", 2) < 0) {
perror("Can' enable power floor notifications\n");
exit(1);
- }
- if (write(fd, "1\n", 2) < 0)
ksft_exit_fail_perror("Can' enable power floor
notifications"); close(fd);
- printf("Enabled power floor notifications\n");
- ksft_print_msg("Enabled power floor notifications\n");
while (1) { fd = open(POWER_FLOOR_STATUS_ATTRIBUTE, O_RDONLY);
if (fd < 0) {
perror("Unable to power floor status
file\n");
exit(1);
}
if (fd < 0)
ksft_exit_fail_perror("Unable to power floor
status file");
if ((lseek(fd, 0L, SEEK_SET)) < 0) {
fprintf(stderr, "Failed to set pointer to
beginning\n");
exit(1);
}
if ((lseek(fd, 0L, SEEK_SET)) < 0)
ksft_exit_fail_perror("Failed to set pointer
to beginning\n");
if (read(fd, status_str, sizeof(status_str)) < 0) {
fprintf(stderr, "Failed to read from:%s\n",
POWER_FLOOR_STATUS_ATTRIBUTE);
exit(1);
}
if (read(fd, status_str, sizeof(status_str)) < 0)
ksft_exit_fail_perror("Failed to read from:
power_floor_status"); ufd.fd = fd; ufd.events = POLLPRI; ret = poll(&ufd, 1, -1); if (ret < 0) {
perror("poll error");
exit(1);
ksft_exit_fail_msg("Poll error\n");
} else if (ret == 0) {
printf("Poll Timeout\n");
ksft_print_msg("Poll Timeout\n");
} else {
if ((lseek(fd, 0L, SEEK_SET)) < 0) {
fprintf(stderr, "Failed to set
pointer to beginning\n");
exit(1);
}
if ((lseek(fd, 0L, SEEK_SET)) < 0)
ksft_exit_fail_msg("Failed to set
pointer to beginning\n"); if (read(fd, status_str, sizeof(status_str)) < 0)
exit(0);
ksft_exit_fail_perror("Failed to
read");
printf("power floor status: %s\n",
status_str);
ksft_print_msg("power floor status: %s\n",
status_str);
break;
} close(fd); }
- ksft_test_result_pass("Successfully read\n");
- ksft_finished();
}