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:
+9
-20
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user