]> arthur.barton.de Git - netatalk.git/blobdiff - test/afpd/test.c
Pass name to afp_config_parse and use NULL for processname as test
[netatalk.git] / test / afpd / test.c
index 4ebc2dfd837049e05da57a2fd080a79961d57efb..54fc23745a70a8bf519428a8e2f4f174137acf13 100644 (file)
@@ -1,5 +1,4 @@
 /*
-  $Id: test.c,v 1.1.2.1 2010-02-01 10:56:08 franklahm Exp $
   Copyright (c) 2010 Frank Lahm <franklahm@gmail.com>
 
   This program is free software; you can redistribute it and/or modify
 #include <atalk/directory.h>
 #include <atalk/queue.h>
 #include <atalk/bstrlib.h>
+#include <atalk/globals.h>
+#include <atalk/netatalk_conf.h>
 
 #include "file.h"
 #include "filedir.h"
 #include "directory.h"
 #include "dircache.h"
 #include "hash.h"
-#include "globals.h"
 #include "afp_config.h"
 #include "volume.h"
 
 
 /* Stuff from main.c which of cource can't be added as source to testbin */
 unsigned char nologin = 0;
-struct afp_options default_options;
-static AFPConfig *configs;
-
+static AFPObj obj;
+#define ARGNUM 3
+static char *args[] = {"test", "-F", "test.conf"};
 /* Static variables */
 
 int main(int argc, char **argv)
 {
-    #define ARGNUM 7
-    char *args[ARGNUM] = {"test", "-F", "test.conf", "-f", "test.default", "-s" ,"test.system"};
     int reti;
     uint16_t vid;
     struct vol *vol;
-    struct dir *dir;
     struct dir *retdir;
     struct path *path;
 
     /* initialize */
-    afp_version = 32;
     printf("Initializing\n============\n");
-    TEST(setuplog("default log_note /dev/tty"));
-    TEST(afp_options_init(&default_options));
-    TEST_int(afp_options_parse( ARGNUM, args, &default_options), 1);
-    TEST_expr(configs = configinit(&default_options), configs != NULL);
-    TEST(cnid_init());
-    TEST(load_volumes(&configs->obj));
-    TEST_int(dircache_init(8192), 0);
+    TEST(setuplog("default:note","/dev/tty"));
+
+    TEST( afp_options_parse_cmdline(&obj, 3, &args[0]) );
+
+    TEST_int( afp_config_parse(&obj, NULL), 0);
+    TEST_int( configinit(&obj), 0);
+    TEST( cnid_init() );
+    TEST( load_volumes(&obj, NULL) );
+    TEST_int( dircache_init(8192), 0);
+    obj.afp_version = 32;
+
     printf("\n");
 
     /* now run tests */
     printf("Running tests\n=============\n");
 
-    TEST_expr(vid = openvol(&configs->obj, "test"), vid != 0);
+    TEST_expr(vid = openvol(&obj, "test"), vid != 0);
     TEST_expr(vol = getvolbyvid(vid), vol != NULL);
 
-    /* test dircache.c stuff*/
-    TEST_expr(dir = dir_new("dir", "dir", vol, DIRDID_ROOT, htonl(20), bfromcstr(vol->v_path)),
-              dir != NULL);
-    TEST_int(dircache_add(dir), 0);
-    TEST_expr(retdir = dircache_search_by_did(vol, dir->d_did ),
-              retdir != NULL && retdir == dir && bstrcmp(retdir->d_u_name, dir->d_u_name) == 0);
-    TEST_expr(retdir = dircache_search_by_name(vol, vol->v_root, "dir", strlen("dir")),
-              retdir != NULL && retdir == dir && bstrcmp(retdir->d_u_name, dir->d_u_name) == 0);
-    TEST_int(dir_remove(vol, dir), 0);
-    TEST_int(test001_add_x_dirs(vol, 100, 100000), 0);
-    TEST_int(test002_rem_x_dirs(vol, 100, 100000), 0);
-
     /* test directory.c stuff */
     TEST_expr(retdir = dirlookup(vol, DIRDID_ROOT_PARENT), retdir != NULL);
     TEST_expr(retdir = dirlookup(vol, DIRDID_ROOT), retdir != NULL);
     TEST_expr(path = cname(vol, retdir, cnamewrap("Network Trash Folder")), path != NULL);
 
     TEST_expr(retdir = dirlookup(vol, DIRDID_ROOT), retdir != NULL);
-    TEST_int(getfiledirparms(&configs->obj, vid, DIRDID_ROOT_PARENT, "test"), 0);
-    TEST_int(getfiledirparms(&configs->obj, vid, DIRDID_ROOT, ""), 0);
+    TEST_int(getfiledirparms(&obj, vid, DIRDID_ROOT_PARENT, "test"), 0);
+    TEST_int(getfiledirparms(&obj, vid, DIRDID_ROOT, ""), 0);
 
-    TEST_expr(reti = createdir(&configs->obj, vid, DIRDID_ROOT, "dir1"),
+    TEST_expr(reti = createdir(&obj, vid, DIRDID_ROOT, "dir1"),
               reti == 0 || reti == AFPERR_EXIST);
 
-    TEST_int(getfiledirparms(&configs->obj, vid, DIRDID_ROOT, "dir1"), 0);
+    TEST_int(getfiledirparms(&obj, vid, DIRDID_ROOT, "dir1"), 0);
 /*
   FIXME: this doesn't work although it should. "//" get translated to \000 \000 at means ".."
   ie this should getfiledirparms for DIRDID_ROOT_PARENT -- at least afair!
     TEST_int(getfiledirparms(&configs->obj, vid, DIRDID_ROOT, "//"), 0);
 */
-    TEST_int(createfile(&configs->obj, vid, DIRDID_ROOT, "dir1/file1"), 0);
-    TEST_int(delete(&configs->obj, vid, DIRDID_ROOT, "dir1/file1"), 0);
-    TEST_int(delete(&configs->obj, vid, DIRDID_ROOT, "dir1"), 0);
+    TEST_int(createfile(&obj, vid, DIRDID_ROOT, "dir1/file1"), 0);
+    TEST_int(delete(&obj, vid, DIRDID_ROOT, "dir1/file1"), 0);
+    TEST_int(delete(&obj, vid, DIRDID_ROOT, "dir1"), 0);
 
-    TEST_int(createfile(&configs->obj, vid, DIRDID_ROOT, "file1"), 0);
-    TEST_int(getfiledirparms(&configs->obj, vid, DIRDID_ROOT, "file1"), 0);
-    TEST_int(delete(&configs->obj, vid, DIRDID_ROOT, "file1"), 0);
+    TEST_int(createfile(&obj, vid, DIRDID_ROOT, "file1"), 0);
+    TEST_int(getfiledirparms(&obj, vid, DIRDID_ROOT, "file1"), 0);
+    TEST_int(delete(&obj, vid, DIRDID_ROOT, "file1"), 0);
 
 
     /* test enumerate.c stuff */
-    TEST_int(enumerate(&configs->obj, vid, DIRDID_ROOT), 0);
+    TEST_int(enumerate(&obj, vid, DIRDID_ROOT), 0);
 }