tests: Even more work on error handling

realpath: Fixing undefined behaviour in the second test. If the call fails the resolved_name argument cannot be used for error checking because its state is undefined by SUSv2.
pipe: Changing the order of close and write error handling code. Errors in close could overwrite errno after write errors, returning incorrect error messages.
gmtime: Removed duplicate checks
Other fixes for fseek, rename, mktime, putwchar
This commit is contained in:
Tibor Nagy
2019-02-24 22:02:11 +01:00
parent 2d027f0771
commit a92be000fb
7 changed files with 68 additions and 80 deletions
+9 -20
View File
@@ -7,25 +7,14 @@
#include "test_helpers.h"
int main(void) {
char* path = realpath("stdlib/realpath.c", NULL);
if (!path) {
perror("realpath");
exit(EXIT_FAILURE);
}
puts(path);
char *path_res = realpath("stdlib/realpath.c", NULL);
ERROR_IF(realpath, path_res, == NULL);
puts(path_res);
free(path_res);
free(path);
path = malloc(PATH_MAX);
memset(path, 0, PATH_MAX);
realpath("stdlib/realpath.c", path);
if (!path) {
perror("realpath");
free(path);
exit(EXIT_FAILURE);
}
puts(path);
free(path);
char path_arg[PATH_MAX] = { 0 };
char *res = realpath("stdlib/realpath.c", path_arg);
ERROR_IF(realpath, res, == NULL);
puts(path_arg);
free(path_arg);
}