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 / debug12.c < prev    next >
C/C++ Source or Header  |  2005-07-07  |  2KB  |  127 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. int request_debug(void)
  43. {
  44.     int i;
  45.     PINT_Request *r2;
  46.     PINT_Request_state *rs1;
  47.     PINT_Request_state *rs2;
  48.     PINT_request_file_data rf1;
  49.     PINT_Request_result seg1;
  50.  
  51.     /* PVFS_Process_request arguments */
  52.     int retval;
  53.  
  54.     /* set up request state */
  55.     rs1 = PINT_new_request_state(PVFS_BYTE);
  56.  
  57.     /* set up memory request */
  58.     PVFS_Request_contiguous(4076, PVFS_BYTE, &r2);
  59.     rs2 = PINT_new_request_state(r2);
  60.  
  61.     /* set up file data for request */
  62.     PINT_dist_initialize(NULL);
  63.     rf1.server_nr = 0;
  64.     rf1.server_ct = 4;
  65.     rf1.fsize = 6000;
  66.     rf1.dist = PINT_dist_create("simple_stripe");
  67.     rf1.extend_flag = 0;
  68.     PINT_dist_lookup(rf1.dist);
  69.  
  70.     /* set up result struct */
  71.     seg1.offset_array = (int64_t *)malloc(SEGMAX * sizeof(int64_t));
  72.     seg1.size_array = (int64_t *)malloc(SEGMAX * sizeof(int64_t));
  73.     seg1.bytemax = BYTEMAX;
  74.     seg1.segmax = SEGMAX;
  75.     seg1.bytes = 0;
  76.     seg1.segs = 0;
  77.     
  78.     /* skip into the file datatype */
  79.     PINT_REQUEST_STATE_SET_TARGET(rs1, 20);
  80.     PINT_REQUEST_STATE_SET_FINAL(rs1,20 + 4076);
  81.  
  82.    /* Turn on debugging */
  83.     if (gossipflag)
  84.     {
  85.         gossip_enable_stderr();
  86.         gossip_set_debug_mask(1,GOSSIP_REQUEST_DEBUG); 
  87.     }
  88.  
  89.     i = 0;
  90.  
  91.     printf("\n************************************\n");
  92.     printf("1 request in CLIENT mode server 0 of 4\n");
  93.     printf("PVFS_BYTE for req, 4076 contig memory\n");
  94.     printf("offset of 20 bytes, should tile req\n");
  95.     printf("************************************\n");
  96.     do
  97.     {
  98.         seg1.bytes = 0;
  99.         seg1.segs = 0;
  100.  
  101.         /* process request */
  102.         retval = PINT_process_request(rs1, rs2, &rf1, &seg1, PINT_CLIENT);
  103.  
  104.         if(retval >= 0)
  105.         {
  106.             prtseg(&seg1,"Results obtained");
  107.             prtseg(&expected[i],"Results expected");
  108.             cmpseg(&seg1,&expected[i]);
  109.         }
  110.  
  111.         i++;
  112.  
  113.     } while(!PINT_REQUEST_DONE(rs1) && retval >= 0);
  114.     
  115.     if(retval < 0)
  116.     {
  117.         fprintf(stderr, "Error: PINT_process_request() failure.\n");
  118.         return(-1);
  119.     }
  120.     if(PINT_REQUEST_DONE(rs1))
  121.     {
  122.         printf("**** request done.\n");
  123.     }
  124.  
  125.     return 0;
  126. }
  127.