151aad67862aaf4626da4551f54e8f94f2eac2a9
[runtime.git] / lib / silcutil / tests / test_silcdir.c
1 /* SilcDir tests */
2
3 #include "silcruntime.h"
4
5 int main(int argc, char **argv)
6 {
7   SilcBool success = FALSE;
8   SilcDir dir;
9   SilcDirEntry entry;
10   SilcDirEntryStat status;
11
12   if (argc > 1 && !strcmp(argv[1], "-d")) {
13     silc_log_debug(TRUE);
14     silc_log_quick(TRUE);
15     silc_log_debug_hexdump(TRUE);
16     silc_log_set_debug_string("*dir*,*errno*");
17   }
18
19   dir = silc_dir_open("/etc/");
20   if (!dir)
21     goto err;
22
23   printf("%s:\n", silc_dir_name(dir));
24   while ((entry = silc_dir_read(dir, &status)))
25     printf(
26      "%c%c%c%c%c%c%c%c%c%c %3d %4d %4d %8lu %04d-%02d-%02d %02d:%02d %s\n",
27         status->mode & SILC_DIR_ENTRY_IFDIR ? 'd' : '-',
28         status->mode & SILC_DIR_ENTRY_IRUSR ? 'r' : '-',
29         status->mode & SILC_DIR_ENTRY_IWUSR ? 'w' : '-',
30         status->mode & SILC_DIR_ENTRY_IXUSR ? 'x' : '-',
31         status->mode & SILC_DIR_ENTRY_IRGRP ? 'r' : '-',
32         status->mode & SILC_DIR_ENTRY_IWGRP ? 'w' : '-',
33         status->mode & SILC_DIR_ENTRY_IXGRP ? 'x' : '-',
34         status->mode & SILC_DIR_ENTRY_IROTH ? 'r' : '-',
35         status->mode & SILC_DIR_ENTRY_IWOTH ? 'w' : '-',
36         status->mode & SILC_DIR_ENTRY_IXOTH ? 'x' : '-',
37         status->nlink, status->uid, status->gid, status->size,
38         status->last_mod.year, status->last_mod.month, status->last_mod.day,
39         status->last_mod.hour, status->last_mod.minute,
40         silc_dir_entry_name(entry));
41
42   fflush(stdout);
43
44   silc_dir_close(dir);
45
46   success = TRUE;
47
48  err:
49   SILC_LOG_DEBUG(("Testing was %s", success ? "SUCCESS" : "FAILURE"));
50   fprintf(stderr, "Testing was %s\n", success ? "SUCCESS" : "FAILURE");
51
52   return !success;
53 }