• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <assert.h>
2 #include <dirent.h>
3 #include <errno.h>
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <string.h>
7 
main()8 int main() {
9   DIR* dir;
10   struct dirent* entry;
11   char* platform;
12   int cnt;
13   int has_d_type;
14 
15   platform = getenv("NODE_PLATFORM");
16   assert(platform != NULL);
17   has_d_type = (0 != strcmp(platform, "aix") && 0 != strcmp(platform, "sunos"));
18 
19   dir = opendir("/sandbox");
20   assert(dir != NULL);
21 
22   cnt = 0;
23   errno = 0;
24   while (NULL != (entry = readdir(dir))) {
25     if (strcmp(entry->d_name, "input.txt") == 0 ||
26         strcmp(entry->d_name, "input2.txt") == 0 ||
27         strcmp(entry->d_name, "notadir") == 0) {
28       if (has_d_type) {
29         assert(entry->d_type == DT_REG);
30       } else {
31         assert(entry->d_type == DT_UNKNOWN);
32       }
33     } else if (strcmp(entry->d_name, "subdir") == 0) {
34       if (has_d_type) {
35         assert(entry->d_type == DT_DIR);
36       } else {
37         assert(entry->d_type == DT_UNKNOWN);
38       }
39     } else {
40       assert("unexpected file");
41     }
42 
43     cnt++;
44   }
45 
46   assert(errno == 0);
47   assert(cnt == 4);
48   closedir(dir);
49   return 0;
50 }
51