2 Copyright (c) 2010 Frank Lahm <franklahm@gmail.com>
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.
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.
17 #endif /* HAVE_CONFIG_H */
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 #include <atalk/netatalk_conf.h>
36 #include "directory.h"
39 #include "afp_config.h"
44 #include "afpfunc_helpers.h"
46 /* Stuff from main.c which of cource can't be added as source to testbin */
47 unsigned char nologin = 0;
50 static char *args[] = {"test", "-F", "test.conf"};
51 /* Static variables */
53 int main(int argc, char **argv)
62 printf("Initializing\n============\n");
63 TEST(setuplog("default:note","/dev/tty"));
65 TEST( afp_options_parse_cmdline(&obj, 3, &args[0]) );
67 TEST_int( afp_config_parse(&obj), 0);
68 TEST_int( configinit(&obj), 0);
70 TEST( load_volumes(&obj, NULL) );
71 TEST_int( dircache_init(8192), 0);
77 printf("Running tests\n=============\n");
79 TEST_expr(vid = openvol(&obj, "test"), vid != 0);
80 TEST_expr(vol = getvolbyvid(vid), vol != NULL);
82 /* test directory.c stuff */
83 TEST_expr(retdir = dirlookup(vol, DIRDID_ROOT_PARENT), retdir != NULL);
84 TEST_expr(retdir = dirlookup(vol, DIRDID_ROOT), retdir != NULL);
85 TEST_expr(path = cname(vol, retdir, cnamewrap("Network Trash Folder")), path != NULL);
87 TEST_expr(retdir = dirlookup(vol, DIRDID_ROOT), retdir != NULL);
88 TEST_int(getfiledirparms(&obj, vid, DIRDID_ROOT_PARENT, "test"), 0);
89 TEST_int(getfiledirparms(&obj, vid, DIRDID_ROOT, ""), 0);
91 TEST_expr(reti = createdir(&obj, vid, DIRDID_ROOT, "dir1"),
92 reti == 0 || reti == AFPERR_EXIST);
94 TEST_int(getfiledirparms(&obj, vid, DIRDID_ROOT, "dir1"), 0);
96 FIXME: this doesn't work although it should. "//" get translated to \000 \000 at means ".."
97 ie this should getfiledirparms for DIRDID_ROOT_PARENT -- at least afair!
98 TEST_int(getfiledirparms(&configs->obj, vid, DIRDID_ROOT, "//"), 0);
100 TEST_int(createfile(&obj, vid, DIRDID_ROOT, "dir1/file1"), 0);
101 TEST_int(delete(&obj, vid, DIRDID_ROOT, "dir1/file1"), 0);
102 TEST_int(delete(&obj, vid, DIRDID_ROOT, "dir1"), 0);
104 TEST_int(createfile(&obj, vid, DIRDID_ROOT, "file1"), 0);
105 TEST_int(getfiledirparms(&obj, vid, DIRDID_ROOT, "file1"), 0);
106 TEST_int(delete(&obj, vid, DIRDID_ROOT, "file1"), 0);
109 /* test enumerate.c stuff */
110 TEST_int(enumerate(&obj, vid, DIRDID_ROOT), 0);