nfs-ganesha 1.4

test_posixdb.c

Go to the documentation of this file.
00001 #ifdef HAVE_CONFIG_H
00002 #include "config.h"
00003 #endif
00004 
00005 #include "posixdb_internal.h"
00006 #include <stdio.h>
00007 #include <string.h>
00008 
00009 int main(void)
00010 {
00011   fsal_posixdb_status_t st;
00012   fsal_posixdb_conn *p_conn;
00013   fsal_posixdb_conn_params_t dbparams;
00014   PGresult *p_res;
00015   int i;
00016   int field_handle;
00017   char path[FSAL_MAX_PATH_LEN];
00018   posixfsal_handle_t handle;
00019   posixfsal_handle_t handle2;
00020   fsal_posixdb_fileinfo_t info;
00021   fsal_path_t fsalpath;
00022   fsal_name_t fsalname;
00023 
00024   memset(&dbparams, 0, sizeof(dbparams));
00025   strcpy(dbparams.host, "localhost");
00026   strcpy(dbparams.dbname, "test");
00027 
00028   /* connexion */
00029 
00030   st = fsal_posixdb_connect(&dbparams, &p_conn);
00031   Logtest("%i (%i) : %p", st.major, PQstatus(p_conn), p_conn);
00032 
00033   /* simple query */
00034   //PQtrace(p_conn, stderr);
00035   /*
00036      p_res = PQexec(p_conn, "DELETE FROM Parent");
00037      Logtest("status : %s", PQresStatus(PQresultStatus(p_res)));
00038      PQclear(p_res);
00039      p_res = PQexec(p_conn, "DELETE FROM Handle");
00040      Logtest("status : %s", PQresStatus(PQresultStatus(p_res)));
00041      PQclear(p_res);
00042    */
00043   // ajout de la racine :
00044   /*
00045      puts("ajout de /");
00046      memset(&info, 0, sizeof(fsal_posixdb_fileinfo_t));
00047      info.devid = 801;
00048      info.inode = 2;
00049      info.nlink = 23;
00050 
00051      memset(&handle2, 0, sizeof(posixfsal_handle_t));
00052      memset(&fsalname, 0, sizeof(fsal_name_t));
00053 
00054      st = fsal_posixdb_add( p_conn, &info, &handle2, &fsalname, &handle);
00055      Logtest("status : %i %i", st.major, st.minor);
00056      if (st.major == ERR_FSAL_POSIXDB_NOERR) {
00057      Logtest("handle %lli/%i", handle.id, handle.ts);
00058      }
00059 
00060      // ajout de la /tmp :
00061      puts("ajout de /tmp");
00062      memset(&info, 0, sizeof(fsal_posixdb_fileinfo_t));
00063      info.devid = 805;
00064      info.inode = 2;
00065      info.nlink = 21;
00066 
00067      memcpy(&handle2, &handle, sizeof(posixfsal_handle_t));
00068      memset(&fsalname, 0, sizeof(fsal_name_t));
00069      strcpy(fsalname.name, "tmp");
00070      fsalname.len=3;
00071 
00072      st = fsal_posixdb_add( p_conn, &info, &handle2, &fsalname, &handle);
00073      Logtest("status : %i %i", st.major, st.minor);
00074      if (st.major == ERR_FSAL_POSIXDB_NOERR) {
00075      Logtest("handle %lli/%i", handle.id, handle.ts);
00076      }
00077 
00078      // ajout de /tmp une 2 eme fois
00079      puts("ajout de /tmp avec un autre inode");
00080      info.inode++;
00081      st = fsal_posixdb_add( p_conn, &info, &handle2, &fsalname, &handle);
00082      Logtest("status : %i %i", st.major, st.minor);
00083      if (st.major == ERR_FSAL_POSIXDB_NOERR) {
00084      Logtest("handle %lli/%i", handle.id, handle.ts);
00085      }
00086 
00087      puts("ajout de /tmp/toto");
00088      info.devid=456;
00089      info.inode=8765;
00090      strcpy(fsalname.name, "toto");
00091      fsalname.len=4;
00092 
00093      st = fsal_posixdb_add( p_conn, &info, &handle, &fsalname, &handle2);
00094      Logtest("status : %i %i", st.major, st.minor);
00095      if (st.major == ERR_FSAL_POSIXDB_NOERR) {
00096      Logtest("handle %lli/%i", handle2.id, handle2.ts);
00097      }
00098 
00099      puts("ajout de /tmp/toto/titi");
00100      info.devid=456;
00101      info.inode=8734;
00102      strcpy(fsalname.name, "titi");
00103      fsalname.len=4;
00104 
00105      st = fsal_posixdb_add( p_conn, &info, &handle2, &fsalname, &handle);
00106      Logtest("status : %i %i", st.major, st.minor);
00107      if (st.major == ERR_FSAL_POSIXDB_NOERR) {
00108      Logtest("handle %lli/%i", handle.id, handle.ts);
00109      }
00110 
00111      puts("getInfoFromHandle de /tmp/toto");
00112      st = fsal_posixdb_getInfoFromHandle( p_conn, &handle2, &fsalpath, 1, &i, &info );
00113      Logtest("status : %i %i", st.major, st.minor);
00114      if (st.major == ERR_FSAL_POSIXDB_NOERR) {
00115      Logtest("path: %s, handle %lli/%i", fsalpath.path, handle2.id, handle2.ts);
00116      }
00117 
00118      memset(&fsalpath, 0,sizeof(fsalpath));
00119      puts("getInfoFromHandle de /tmp/toto/titi");
00120      st = fsal_posixdb_getInfoFromHandle( p_conn, &handle, &fsalpath, 1, &i, &info );
00121      Logtest("status : %i %i", st.major, st.minor);
00122      if (st.major == ERR_FSAL_POSIXDB_NOERR) {
00123      Logtest("path: %s, handle %lli/%i", fsalpath.path, handle.id, handle.ts);
00124      }
00125 
00126      st = fsal_posixdb_delete( p_conn, &handle2, &fsalname, &info);
00127      Logtest("status : %i %i", st.major, st.minor);
00128    */
00129 
00130   handle.id = 3226283;
00131   handle.ts = 1143621188;
00132   st = fsal_posixdb_buildOnePath(p_conn, &handle, &fsalpath);
00133   Logtest("%s", fsalpath.path);
00134 
00135   return 0;
00136 }