diff options
| author | manuel <manuel@mausz.at> | 2012-03-27 11:51:08 +0200 |
|---|---|---|
| committer | manuel <manuel@mausz.at> | 2012-03-27 11:51:08 +0200 |
| commit | 4f670845ff9ab6c48bcb5f7bf4d4ef6dc3c3064b (patch) | |
| tree | 868c52e06f207b5ec8a3cc141f4b8b2bdfcc165c /tests/filesys/extended/mk-tree.c | |
| parent | eae0bd57f0a26314a94785061888d193d186944a (diff) | |
| download | progos-4f670845ff9ab6c48bcb5f7bf4d4ef6dc3c3064b.tar.gz progos-4f670845ff9ab6c48bcb5f7bf4d4ef6dc3c3064b.tar.bz2 progos-4f670845ff9ab6c48bcb5f7bf4d4ef6dc3c3064b.zip | |
reorganize file structure to match the upstream requirements
Diffstat (limited to 'tests/filesys/extended/mk-tree.c')
| -rw-r--r-- | tests/filesys/extended/mk-tree.c | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/tests/filesys/extended/mk-tree.c b/tests/filesys/extended/mk-tree.c new file mode 100644 index 0000000..a36bb88 --- /dev/null +++ b/tests/filesys/extended/mk-tree.c | |||
| @@ -0,0 +1,67 @@ | |||
| 1 | /* Library function for creating a tree of directories. */ | ||
| 2 | |||
| 3 | #include <stdio.h> | ||
| 4 | #include <syscall.h> | ||
| 5 | #include "tests/filesys/extended/mk-tree.h" | ||
| 6 | #include "tests/lib.h" | ||
| 7 | |||
| 8 | static void do_mkdir (const char *format, ...) PRINTF_FORMAT (1, 2); | ||
| 9 | static void do_touch (const char *format, ...) PRINTF_FORMAT (1, 2); | ||
| 10 | |||
| 11 | void | ||
| 12 | make_tree (int at, int bt, int ct, int dt) | ||
| 13 | { | ||
| 14 | char try[128]; | ||
| 15 | int a, b, c, d; | ||
| 16 | int fd; | ||
| 17 | |||
| 18 | msg ("creating /0/0/0/0 through /%d/%d/%d/%d...", | ||
| 19 | at - 1, bt - 1, ct - 1, dt - 1); | ||
| 20 | quiet = true; | ||
| 21 | for (a = 0; a < at; a++) | ||
| 22 | { | ||
| 23 | do_mkdir ("/%d", a); | ||
| 24 | for (b = 0; b < bt; b++) | ||
| 25 | { | ||
| 26 | do_mkdir ("/%d/%d", a, b); | ||
| 27 | for (c = 0; c < ct; c++) | ||
| 28 | { | ||
| 29 | do_mkdir ("/%d/%d/%d", a, b, c); | ||
| 30 | for (d = 0; d < dt; d++) | ||
| 31 | do_touch ("/%d/%d/%d/%d", a, b, c, d); | ||
| 32 | } | ||
| 33 | } | ||
| 34 | } | ||
| 35 | quiet = false; | ||
| 36 | |||
| 37 | snprintf (try, sizeof try, "/%d/%d/%d/%d", 0, bt - 1, 0, dt - 1); | ||
| 38 | CHECK ((fd = open (try)) > 1, "open \"%s\"", try); | ||
| 39 | msg ("close \"%s\"", try); | ||
| 40 | close (fd); | ||
| 41 | } | ||
| 42 | |||
| 43 | static void | ||
| 44 | do_mkdir (const char *format, ...) | ||
| 45 | { | ||
| 46 | char dir[128]; | ||
| 47 | va_list args; | ||
| 48 | |||
| 49 | va_start (args, format); | ||
| 50 | vsnprintf (dir, sizeof dir, format, args); | ||
| 51 | va_end (args); | ||
| 52 | |||
| 53 | CHECK (mkdir (dir), "mkdir \"%s\"", dir); | ||
| 54 | } | ||
| 55 | |||
| 56 | static void | ||
| 57 | do_touch (const char *format, ...) | ||
| 58 | { | ||
| 59 | char file[128]; | ||
| 60 | va_list args; | ||
| 61 | |||
| 62 | va_start (args, format); | ||
| 63 | vsnprintf (file, sizeof file, format, args); | ||
| 64 | va_end (args); | ||
| 65 | |||
| 66 | CHECK (create (file, 0), "create \"%s\"", file); | ||
| 67 | } | ||
