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