Hi Cyril, I have updated the patch according to your comment. Many thanks for your suggestion. Yuan
On 2015/6/4 21:02, Cyril Hrubis wrote: > Hi! > Can you also change the error_function() to return void and remove the > return -1 from it? > >> diff --git a/testcases/kernel/controllers/libcontrollers/libcontrollers.c >> b/testcases/kernel/controllers/libcontrollers/libcontrollers.c >> index b01e1b8..ebf9870 100644 >> --- a/testcases/kernel/controllers/libcontrollers/libcontrollers.c >> +++ b/testcases/kernel/controllers/libcontrollers/libcontrollers.c >> @@ -50,8 +50,10 @@ int scan_shares_files(unsigned int *shares_pointer) >> /* >> * Check if we can get stat of the file >> */ >> - if (lstat(fullpath, &statbuffer) < 0) >> + if (lstat(fullpath, &statbuffer) < 0) { >> error_function("Can not read stat for file ", fullpath); >> + return -1; >> + } >> >> if (S_ISDIR(statbuffer.st_mode) == 0) { /* not a directory */ >> /* >> @@ -75,8 +77,10 @@ int scan_shares_files(unsigned int *shares_pointer) >> *path_pointer++ = '/'; >> *path_pointer = 0; >> >> - if ((dp = opendir(fullpath)) == NULL) /* Error in opening directory */ >> + if ((dp = opendir(fullpath)) == NULL) { /* Error in opening directory */ >> error_function("Can't open ", fullpath); >> + return -1; >> + } >> /* >> * search all groups recursively and get total shares >> */ >> @@ -99,8 +103,10 @@ int scan_shares_files(unsigned int *shares_pointer) >> >> path_pointer[-1] = 0; >> >> - if (closedir(dp) < 0) >> + if (closedir(dp) < 0) { >> error_function("Could not close dir ", fullpath); >> + return -1; >> + } >> return 0; >> } >> >> @@ -115,27 +121,35 @@ int read_file(char *filepath, int action, unsigned int >> *value) >> { >> int num_line = 0; >> FILE *fp; >> + int tmp; >> switch (action) { >> case GET_SHARES: >> - *value = read_shares_file(filepath); >> - if (*value == -1) >> + tmp = read_shares_file(filepath); >> + if (tmp == -1) >> return -1; >> + else >> + *value = (unsigned int)tmp; > There is no need for the else branch. If tmp is -1 the code below would > not be reached anyway. > >> break; >> >> case GET_TASKS: >> fp = fopen(filepath, "r"); >> - if (fp == NULL) >> + if (fp == NULL) { >> error_function("Could not open file", filepath); >> + return -1; >> + } >> while (fgets(target, LINE_MAX, fp) != NULL) >> num_line++; >> *value = (unsigned int)num_line; >> - if (fclose(fp)) >> + if (fclose(fp)) { >> error_function("Could not close file", filepath); >> + return -1; >> + } >> break; >> >> default: >> error_function("Wrong action type passed to fun read_file for ", >> filepath); >> + return -1; >> break; > No need to keep the break after return. > >> } >> return 0; >> @@ -159,17 +173,20 @@ inline int error_function(char *msg1, char *msg2) >> * the given pointer location. Returns 0 if success >> */ >> >> -unsigned >> int read_shares_file(char *filepath) >> { >> FILE *fp; >> unsigned int shares; >> fp = fopen(filepath, "r"); >> - if (fp == NULL) >> + if (fp == NULL) { >> error_function("Could not open file", filepath); >> + return -1; >> + } >> fscanf(fp, "%u", &shares); >> - if (fclose(fp)) >> + if (fclose(fp)) { >> error_function("Could not close file", filepath); >> + return -1; >> + } >> return shares; >> } >> >> @@ -181,8 +198,10 @@ int write_to_file(char *file, const char *mode, >> unsigned int value) >> { >> FILE *fp; >> fp = fopen(file, mode); >> - if (fp == NULL) >> + if (fp == NULL) { >> error_function("in opening file for writing:", file); >> + return -1; >> + } >> fprintf(fp, "%u\n", value); >> fclose(fp); >> return 0; >> diff --git a/testcases/kernel/controllers/libcontrollers/libcontrollers.h >> b/testcases/kernel/controllers/libcontrollers/libcontrollers.h >> index 4001555..78a7fed 100644 >> --- a/testcases/kernel/controllers/libcontrollers/libcontrollers.h >> +++ b/testcases/kernel/controllers/libcontrollers/libcontrollers.h >> @@ -72,7 +72,7 @@ enum{ >> >> inline int error_function(char *msg1, char *msg2); >> >> -unsigned int read_shares_file (char *filepath); >> +int read_shares_file(char *filepath); >> >> int read_file(char *filepath, int action, unsigned int *value); >> >> -- >> 1.9.1 >> ------------------------------------------------------------------------------ _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list