home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 28 / amigaformatcd28.iso / -seriously_amiga- / misc / posbb / src / generic / io.c next >
C/C++ Source or Header  |  1998-05-09  |  4KB  |  177 lines

  1. #include <time.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5. /* #include "posbb_tests.h"  // this would be needed by Test_qsort,not finished,yet
  6. */
  7. #define TRUE -1
  8. #define FALSE 0
  9.  
  10.  
  11.  
  12.  
  13. /****** posbb_tests.c/Test_printf ******************************************
  14. *
  15. *   NAME
  16. *     Test_printf -- Tests the speed of the ANSI function printf().
  17. *
  18. *   SYNOPSIS
  19. *     time = Test_printf( void )
  20. *     int Test_printf( void );
  21. *
  22. *   FUNCTION
  23. *     Writes 1,000 times the string "printf test in progress...\n" to stdout
  24. *     and returns the time taken.
  25. *
  26. *   RESULT
  27. *     time - number of seconds taken. No error possible.
  28. *
  29. *   EXAMPLE
  30. *     See posbb.c/Perform_Tests().
  31. *
  32. *   BUGS
  33. *     It hasn't bugs,but since it can't turn off multitasking,the result
  34. *     could change if the user runs some program or move windows.
  35. *
  36. ****************************************************************************
  37. */
  38. int Test_printf( precision )
  39. int precision;
  40. {
  41.   int c;
  42.   time_t time1,time2;
  43.  
  44.   time1 = time(NULL);
  45.   for ( c = 0; c<1000*precision; c++ )
  46.   {
  47.     printf("printf test in progress...\n");
  48.   }
  49.  
  50.   time2 = time(NULL);
  51.   return (time2-time1);
  52. }
  53.  
  54. /****** posbb_tests.c/Test_Write ********************************************
  55. *
  56. *   NAME
  57. *     Test_Write -- Tests disk writing speed.
  58. *
  59. *   SYNOPSIS
  60. *     time = Test_Write( void )
  61. *     int Test_Write( void );
  62. *
  63. *   FUNCTION
  64. *     Writes a block of data to a file,with dos.library/Write() (in the Amiga
  65. *     version).
  66. *
  67. *   INPUT
  68. *     Now void,in future versions a STRPTR,the name of the file to write to.
  69. *
  70. *   RESULT
  71. *     time - Number of seconds taken.
  72. *            Returns TRUE if something went wrong ( memory or disk space usually).
  73. *            In future may return differents error codes.
  74. *
  75. *   EXAMPLE
  76. *     See posbb.c/Perform_Tests.
  77. *
  78. *   BUGS
  79. *     No known bugs.
  80. *
  81. ****************************************************************************
  82. */
  83. /*
  84. int Test_Write( void )
  85. {
  86.   int clk;
  87.   int c;
  88.   long buf;
  89.   BPTR file;
  90.  
  91.   if ( buf=AllocMem(262144,NULL))
  92.   {
  93.     Forbid();
  94.     ( int ) time1 = time(NULL);
  95.     if (( BPTR ) file = Open("RAM:POSBB_TestFile",( ULONG ) MODE_NEWFILE))
  96.     {
  97.       Write(file,buf,262144);
  98.       Close(file);
  99.       ( int ) time1 = time(NULL);
  100.       Permit();
  101.       FreeMem(buf,262144);
  102.     }
  103.   }
  104.   if (file = NULL) return TRUE;
  105.   else return (clk);
  106. }
  107. */
  108.  
  109.  
  110. /****** posbb_tests.c/Test_Read ********************************************
  111. *
  112. * This section of the autodoc isn't finished. See Test_Write().
  113. * The function doesn't works in the generic version,yet.
  114. *
  115. *******
  116. */
  117. /*  This is the Amiga one
  118. int Test_Read( void )
  119. {
  120.   int clk;
  121.   long buf;
  122.   BPTR file = NULL;
  123.  
  124.   if ( buf = AllocMem((262144),0))
  125.   {
  126.     Forbid();
  127.     ( int ) time1 = time(NULL);
  128.     if ( ( BPTR ) file = Open("RAM:POSBB_TestFile",MODE_OLDFILE) )
  129.     {
  130.       Read(file,buf,262144);
  131.       ( int ) l2= clock();
  132.       Permit();
  133.       Close(file);
  134.     }
  135.     FreeMem(buf,262144);
  136.   }
  137.   if (file = NULL) return TRUE;
  138.   else return (clk);
  139. }
  140. */
  141. /****** posbb_tests.c/Test_WritePixel **************************************
  142. *
  143. *   This function doesn't work.In the generic version.
  144. *
  145. ********
  146. */
  147.  
  148. /*
  149. int strsrt(s1,s2)   // this function is needed by Test_qsort,but I'll change them
  150. char *s1,*s2;
  151. {
  152.   return (s1[1]-s2[1]);
  153. }
  154.  
  155.  
  156.  
  157.  
  158. int Test_qsort(precision)   //  This test isn't finished,yet. It doesn't work but I should change it.
  159. int precision;
  160. {
  161.   int c;
  162.   time_t time1,time2;
  163.  
  164.   time1 = time(NULL);
  165.   qsort(StrList,15,sizeof(char *),strsrt);
  166.   time2 = time(NULL);
  167.  
  168.   for (c = 0;c<15;c++)
  169.   {
  170.     printf("%d %s\n",c,StrList[c]);
  171.   }
  172.   return (time2-time1);
  173. }
  174.  
  175. */
  176.  
  177.