1.1 --- a/tests/dstest_file_readdir.cc Thu Sep 01 21:40:39 2022 +0200
1.2 +++ b/tests/dstest_file_readdir.cc Thu Sep 01 21:52:41 2022 +0200
1.3 @@ -34,20 +34,22 @@
1.4
1.5 int main(int argc, char *argv[])
1.6 {
1.7 - if (argc < 2)
1.8 + if (argc < 3)
1.9 {
1.10 - printf("Need a directory name.\n");
1.11 + printf("Need a directory name and an expected number of entries.\n");
1.12 return 1;
1.13 }
1.14
1.15 char *filename = argv[1];
1.16 + int entries = atoi(argv[2]);
1.17
1.18 printf("Opening %s...\n", filename);
1.19
1.20 file_t *reader = client_opendir(filename);
1.21
1.22 - if (reader == NULL)
1.23 + if (!client_opened(reader))
1.24 {
1.25 + client_close(reader);
1.26 printf("Could not read from directory.\n");
1.27 return 1;
1.28 }
1.29 @@ -55,6 +57,7 @@
1.30 printf("Reading...\n");
1.31
1.32 struct dirent *dirent;
1.33 + int found = 0;
1.34
1.35 while ((dirent = client_readdir(reader)) != NULL)
1.36 {
1.37 @@ -69,6 +72,7 @@
1.38
1.39 if (client_stat(path, &st))
1.40 {
1.41 + client_close(reader);
1.42 printf("Could not obtain metadata for file: %s\n", dirent->d_name);
1.43 return 1;
1.44 }
1.45 @@ -97,16 +101,19 @@
1.46 0, 0, "");
1.47
1.48 free(dirent);
1.49 + found++;
1.50 }
1.51
1.52 printf("Directory shown.\n");
1.53 + printf("Found expected number of entries: %s\n", found == entries ? "True" : "False");
1.54
1.55 /* Open again, reading a single entry only. */
1.56
1.57 reader = client_opendir(filename);
1.58
1.59 - if (reader == NULL)
1.60 + if (!client_opened(reader))
1.61 {
1.62 + client_close(reader);
1.63 printf("Could not read from directory.\n");
1.64 return 1;
1.65 }
1.66 @@ -121,6 +128,7 @@
1.67
1.68 printf("Entry shown.\n");
1.69
1.70 + printf("End of test.\n");
1.71 return 0;
1.72 }
1.73