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 / debug5.c < prev    next >
C/C++ Source or Header  |  2005-07-07  |  5KB  |  251 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.     7012352
  25. };
  26.     
  27. PVFS_size exp1_size [] = {
  28.     1441792
  29. };
  30.  
  31. PVFS_offset exp2_offset [] = {
  32.     131072,
  33.     327680,
  34.     524288,
  35.     720896,
  36.     917504,
  37.     1114112,
  38.     1310720,
  39.     1507328,
  40.     1703936,
  41.     1900544,
  42.     2097152,
  43.     2293760,
  44.     2490368,
  45.     2686976,
  46.     2883584,
  47.     3080192
  48. };
  49.  
  50. PVFS_offset exp3_offset [] = {
  51.     3276800,
  52.     3473408,
  53.     3670016,
  54.     3866624,
  55.     4063232,
  56.     4259840
  57. };
  58.  
  59. PVFS_size exp2_size [] = {
  60.     65536,
  61.     65536,
  62.     65536,
  63.     65536,
  64.     65536,
  65.     65536,
  66.     65536,
  67.     65536,
  68.     65536,
  69.     65536,
  70.     65536,
  71.     65536,
  72.     65536,
  73.     65536,
  74.     65536,
  75.     65536
  76. };
  77.  
  78. PINT_Request_result expected[] =
  79. {{
  80.       offset_array : &exp1_offset[0],
  81.       size_array : &exp1_size[0],
  82.       segmax : SEGMAX,
  83.       segs : 1,
  84.       bytes : 1441792
  85. }, {
  86.       offset_array : &exp2_offset[0],
  87.       size_array : &exp2_size[0],
  88.       segmax : SEGMAX,
  89.       segs : 16,
  90.       bytes : 16*65536
  91. }, {
  92.       offset_array : &exp3_offset[0],
  93.       size_array : &exp2_size[0],
  94.       segmax : SEGMAX,
  95.       segs : 6,
  96.       bytes : 6*65536
  97. }};
  98.  
  99.  
  100. int request_debug(void)
  101. {
  102.     int i;
  103.     PINT_Request *r1;
  104.     PINT_Request *r2;
  105.     PINT_Request_state *rs1;
  106.     PINT_Request_state *rs2;
  107.     PINT_request_file_data rf1;
  108.     PINT_request_file_data rf2;
  109.     PINT_Request_result seg1;
  110.  
  111.     int retval;
  112.  
  113.     int32_t blocklength = 10*1024*1024;
  114.     PVFS_size displacement = 20*1024*1024;  
  115.  
  116.     PVFS_Request_indexed(1, &blocklength, &displacement, PVFS_BYTE, &r1);
  117.     PVFS_Request_indexed(1, &blocklength, &displacement, PVFS_BYTE, &r2);
  118.  
  119.     rs1 = PINT_new_request_state(r1);
  120.     rs2 = PINT_new_request_state(r2);
  121.  
  122.     PINT_dist_initialize(NULL);
  123.     rf1.server_nr = 0;
  124.     rf1.server_ct = 3;
  125.     rf1.fsize = 8454144;
  126.     rf1.dist = PINT_dist_create("simple_stripe");
  127.     rf1.extend_flag = 0;
  128.     PINT_dist_lookup(rf1.dist);
  129.  
  130.     rf2.server_nr = 1;
  131.     rf2.server_ct = 3;
  132.     rf2.fsize = 8454144;
  133.     rf2.dist = PINT_dist_create("simple_stripe");
  134.     rf2.extend_flag = 0;
  135.     PINT_dist_lookup(rf2.dist);
  136.  
  137.     /* set up result struct */
  138.     seg1.offset_array = (int64_t *)malloc(SEGMAX * sizeof(int64_t));
  139.     seg1.size_array = (int64_t *)malloc(SEGMAX * sizeof(int64_t));
  140.     seg1.bytemax = BYTEMAX;
  141.     seg1.segmax = SEGMAX;
  142.     seg1.bytes = 0;
  143.     seg1.segs = 0;
  144.  
  145.    /* Turn on debugging */
  146.     if (gossipflag)
  147.     {
  148.         gossip_enable_stderr(); 
  149.         gossip_set_debug_mask(1,GOSSIP_REQUEST_DEBUG);
  150.     }
  151.  
  152.     i = 0;
  153.  
  154. // server stuff below this line
  155. /****************************************************************/
  156.  
  157.     fprintf(stderr, "\n************************************\n");
  158.     printf("One request in SERVER mode size 10M contiguous server 0 of 3\n");
  159.     printf("Simple stripe, default stripe size (64K)\n");
  160.     printf("Offset 20M, file size 8454144, no extend flag\n");
  161.     printf("\n************************************\n");
  162.  
  163.     /* process request */
  164.     retval = PINT_process_request(rs1, NULL, &rf1, &seg1, PINT_SERVER);
  165.  
  166.     if(retval >= 0)
  167.     {
  168.         prtseg(&seg1,"Results obtained");
  169.         prtseg(&expected[i],"Results expected");
  170.         cmpseg(&seg1,&expected[i]);
  171.     }
  172.  
  173.     i++;
  174.     
  175.     if(retval < 0)
  176.     {
  177.         fprintf(stderr, "Error: PINT_process_request() failure.\n");
  178.         return(-1);
  179.     }
  180.     if(PINT_REQUEST_DONE(rs1))
  181.     {
  182.         fprintf(stderr, "**** server done.\n");
  183.     }
  184.  
  185. // client stuff below this line
  186. /*******************************************************************/
  187.  
  188.     fprintf(stderr, "\n************************************\n");
  189.     printf("One request in CLIENT mode size 10M contiguous server 1 of 3\n");
  190.     printf("Simple stripe, default stripe size (64K)\n");
  191.     printf("Offset 20M, file size 8454144, no extend flag\n");
  192.     printf("\n************************************\n");
  193.     seg1.bytes = 0;
  194.     seg1.segs = 0;
  195.  
  196.     /* process request */
  197.     retval = PINT_process_request(rs2, NULL, &rf2, &seg1, PINT_CLIENT);
  198.  
  199.     if(retval >= 0)
  200.     {
  201.         prtseg(&seg1,"Results obtained");
  202.         prtseg(&expected[i],"Results expected");
  203.         cmpseg(&seg1,&expected[i]);
  204.     }
  205.  
  206.     i++;
  207.     
  208.     if(retval < 0)
  209.     {
  210.         fprintf(stderr, "Error: PINT_process_request() failure.\n");
  211.         return(-1);
  212.     }
  213.     if(PINT_REQUEST_DONE(rs2))
  214.     {
  215.         fprintf(stderr, "**** client request done - SHOULD NOT BE!.\n");
  216.     }
  217.  
  218.     fprintf(stderr, "\n************************************\n");
  219.     printf("One request in CLIENT mode size 10M contiguous server 1 of 3\n");
  220.     printf("Simple stripe, default stripe size (64K)\n");
  221.     printf("Continue where left off, file size 8454144, no extend flag\n");
  222.     printf("Byte limit 393216\n");
  223.     printf("\n************************************\n");
  224.     seg1.bytemax = 393216;
  225.     seg1.bytes = 0;
  226.     seg1.segs = 0;
  227.  
  228.     retval = PINT_process_request(rs2, NULL, &rf2, &seg1, PINT_CLIENT);
  229.  
  230.     if(retval >= 0)
  231.     {
  232.         prtseg(&seg1,"Results obtained");
  233.         prtseg(&expected[i],"Results expected");
  234.         cmpseg(&seg1,&expected[i]);
  235.     }
  236.  
  237.     i++;
  238.     
  239.     if(retval < 0)
  240.     {
  241.         fprintf(stderr, "Error: PINT_process_request() failure.\n");
  242.         return(-1);
  243.     }
  244.     if(!PINT_REQUEST_DONE(rs2))
  245.     {
  246.         fprintf(stderr, "\nAIEEEeee!  Why doesn't the client side set req processing offset to -1?.\n");
  247.         fprintf(stderr, "... the server stopped correctly after this many bytes\n");
  248.     }
  249.     return 0;
  250. }
  251.