]> arthur.barton.de Git - netatalk.git/blob - test/afpd/subtests.c
Merge remote-tracking branch 'origin/branch-netatalk-3-0' into develop
[netatalk.git] / test / afpd / subtests.c
1 /*
2   Copyright (c) 2010 Frank Lahm <franklahm@gmail.com>
3
4   This program is free software; you can redistribute it and/or modify
5   it under the terms of the GNU General Public License as published by
6   the Free Software Foundation; either version 2 of the License, or
7   (at your option) any later version.
8
9   This program is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12   GNU General Public License for more details.
13 */
14
15 #ifdef HAVE_CONFIG_H
16 #include "config.h"
17 #endif /* HAVE_CONFIG_H */
18
19 #include <string.h>
20 #include <stdio.h>
21 #include <stdlib.h>
22 #include <errno.h>
23
24 #include <atalk/util.h>
25 #include <atalk/cnid.h>
26 #include <atalk/logger.h>
27 #include <atalk/volume.h>
28 #include <atalk/directory.h>
29 #include <atalk/queue.h>
30 #include <atalk/bstrlib.h>
31 #include <atalk/globals.h>
32
33 #include "directory.h"
34 #include "dircache.h"
35 #include "hash.h"
36 #include "afp_config.h"
37 #include "volume.h"
38
39 #include "test.h"
40 #include "subtests.h"
41
42 static int reti;                /* for the TEST_int macro */
43
44 int test001_add_x_dirs(const struct vol *vol, cnid_t start, cnid_t end)
45 {
46     struct dir *dir;
47     char dirname[20];
48     while (start++ < end) {
49         sprintf(dirname, "dir%04u", start);
50         dir = dir_new(dirname, dirname, vol, DIRDID_ROOT, htonl(start), bfromcstr(vol->v_path), 0);
51         if (dir == NULL)
52             return -1;
53         if (dircache_add(vol, dir) != 0)
54             return -1;
55     }
56
57     return 0;
58 }
59
60 int test002_rem_x_dirs(const struct vol *vol, cnid_t start, cnid_t end)
61 {
62     struct dir *dir;
63     while (start++ < end) {
64         if ((dir = dircache_search_by_did(vol, htonl(start))))
65             if (dir_remove(vol, dir) != 0)
66                 return -1;
67     }
68
69     return 0;
70 }