diff --git a/qa/lib/newlib/102-files.c b/qa/lib/newlib/102-files.c new file mode 100644 index 0000000..f67329f --- /dev/null +++ b/qa/lib/newlib/102-files.c @@ -0,0 +1,51 @@ +#include +#include +#include +#include +#include + +int +main(int argc, char **argv) +{ + int i = 0; + DIR *dirp; + struct dirent *dp; + + dirp = opendir("/"); + if(dirp != NULL) + printf("opendir(/): done\n"); + else + printf("opendir(/): failed\n"); + + while (dirp) { + errno = 0; + if ((dp = readdir(dirp)) != NULL) { + if (strcmp(dp->d_name, "README.md") == 0) { + if(dp->d_type == DT_REG){ + ++i; + printf("FOUND! "); + } + } + if (strcmp(dp->d_name, "sys") == 0) { + if(dp->d_type == DT_DIR){ + ++i; + printf("FOUND! "); + } + } + printf("%s: %s\n", dp->d_name, dp->d_type == DT_DIR ? "directory" : "regular"); + if(i == 2){ + closedir(dirp); + return 0; + } + } else { + printf("readdir returned NULL\n"); + if (errno == 0) { + closedir(dirp); + return 1; + } + closedir(dirp); + return 2; + } + } + return 3; +} diff --git a/qa/lib/newlib/build.json b/qa/lib/newlib/build.json index 13c2ddb..aa65487 100644 --- a/qa/lib/newlib/build.json +++ b/qa/lib/newlib/build.json @@ -37,6 +37,7 @@ "030-pause.c", "100-files.c", "101-files.c", + "102-files.c", "200-signals.c", "201-signals.c", "202-signals.c", @@ -81,8 +82,10 @@ "000-hello.c", "010-fork.c", "020-waitpid.c", + "030-pause.c", "100-files.c", "101-files.c", + "102-files.c", "200-signals.c", "201-signals.c", "202-signals.c",