home *** CD-ROM | disk | FTP | other *** search
/ ftp.parl.clemson.edu / 2015-02-07.ftp.parl.clemson.edu.tar / ftp.parl.clemson.edu / pub / pvfs2 / orangefs-2.8.3-20110323.tar.gz / orangefs-2.8.3-20110323.tar / orangefs / test / io / description / debug11.c < prev    next >
C/C++ Source or Header  |  2005-07-07  |  3KB  |  135 lines

  1. /*
  2.  * (C) 2002 Clemson University.
  3.  *
  4.  * See COPYING in top-level directory.
  5.  */       
  6.  
  7. #include <stdlib.h>
  8. #include <stdio.h>
  9. #include <pvfs2-types.h>
  10. #include <gossip.h>
  11. #include <pvfs2-debug.h>
  12.  
  13. #include <pint-distribution.h>
  14. #include <pint-dist-utils.h>
  15. #include <pvfs2-request.h>
  16. #include <pint-request.h>
  17.  
  18. #include "debug.h"
  19.  
  20. #define SEGMAX 16
  21. #define BYTEMAX (4*1024*1024)
  22.  
  23. PVFS_offset exp1_offset[] =
  24. {
  25.     0
  26. };
  27.  
  28. PVFS_size exp1_size[] =
  29. {
  30.     4076
  31. };
  32.  
  33. PINT_Request_result expected[] =
  34. {{
  35.     offset_array : &exp1_offset[0],
  36.     size_array : &exp1_size[0],
  37.     segmax : SEGMAX,
  38.     segs : 1,
  39.     bytes : 4076
  40. }};
  41.  
  42.  
  43. int request_debug(void)
  44. {
  45.     int i;
  46.     PINT_Request *r1;
  47.     PINT_Request *r2;
  48.     PINT_Request_state *rs1;
  49.     PINT_Request_state *rs2;
  50.     PINT_request_file_data rf1;
  51.     PINT_Request_result seg1;
  52.  
  53.     /* PVFS_Process_request arguments */
  54.     int retval;
  55.  
  56.     /* set up request */
  57.     PVFS_Request_contiguous(4096, PVFS_BYTE, &r1);
  58.  
  59.     /* set up request state */
  60.     rs1 = PINT_new_request_state(r1);
  61.  
  62.     /* set up memory request */
  63.     PVFS_Request_contiguous(4076, PVFS_BYTE, &r2);
  64.     rs2 = PINT_new_request_state(r2);
  65.  
  66.     /* set up file data for request */
  67.     PINT_dist_initialize(NULL);
  68.     rf1.server_nr = 0;
  69.     rf1.server_ct = 4;
  70.     rf1.fsize = 6000;
  71.     rf1.dist = PINT_dist_create("simple_stripe");
  72.     rf1.extend_flag = 0;
  73.     PINT_dist_lookup(rf1.dist);
  74.  
  75.     /* set up result struct */
  76.     seg1.offset_array = (int64_t *)malloc(SEGMAX * sizeof(int64_t));
  77.     seg1.size_array = (int64_t *)malloc(SEGMAX * sizeof(int64_t));
  78.     seg1.bytemax = BYTEMAX;
  79.     seg1.segmax = SEGMAX;
  80.     seg1.bytes = 0;
  81.     seg1.segs = 0;
  82.     
  83.    /* Turn on debugging */
  84.     if (gossipflag)
  85.     {
  86.         gossip_enable_stderr();
  87.         gossip_set_debug_mask(1,GOSSIP_REQUEST_DEBUG); 
  88.     }
  89.  
  90.     i = 0;
  91.  
  92.     /* skip into the file datatype */
  93.     PINT_REQUEST_STATE_SET_TARGET(rs1, 20);
  94.  
  95.     /* skipping logical bytes */
  96.     // PINT_REQUEST_STATE_SET_TARGET(rs1,(3 * 1024) + 512);
  97.     // PINT_REQUEST_STATE_SET_FINAL(rs1,(6 * 1024) + 512);
  98.     
  99.     printf("\n************************************\n");
  100.     printf("1 request in CLIENT mode, server 0 of 4\n");
  101.     printf("request size 4096 contig, mem size 4076 contig\n");
  102.     printf("skip first 20 bytes of request\n");
  103.     printf("************************************\n");
  104.     do
  105.     {
  106.         seg1.bytes = 0;
  107.         seg1.segs = 0;
  108.  
  109.         /* process request */
  110.         retval = PINT_process_request(rs1, rs2, &rf1, &seg1, PINT_CLIENT);
  111.  
  112.         if(retval >= 0)
  113.         {
  114.             prtseg(&seg1,"Results obtained");
  115.             prtseg(&expected[i],"Results expected");
  116.             cmpseg(&seg1,&expected[i]);
  117.         }
  118.  
  119.         i++;
  120.  
  121.     } while(!PINT_REQUEST_DONE(rs1) && retval >= 0);
  122.     
  123.     if(retval < 0)
  124.     {
  125.         fprintf(stderr, "Error: PINT_process_request() failure.\n");
  126.         return(-1);
  127.     }
  128.     if(PINT_REQUEST_DONE(rs1))
  129.     {
  130.         printf("**** request done.\n");
  131.     }
  132.  
  133.     return 0;
  134. }
  135.