home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 28 / amigaformatcd28.iso / -seriously_amiga- / misc / posbb / src / amigaos / perform_tests.c < prev    next >
C/C++ Source or Header  |  1998-05-09  |  6KB  |  139 lines

  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <intuition/intuitionbase.h>
  6. #include <devices/timer.h>
  7. #include <graphics/gfx.h>
  8. #include <graphics/rastport.h>
  9. #include <exec/memory.h>
  10. #include "posbb.h"
  11. #include "posbb_rev.h"
  12. #include "compiler.h" /* for compiler specific stuff */
  13. /* #include "posbb_logo.h" */
  14. extern FILE *fi;
  15. extern struct Window *window;
  16.  
  17. void Perform_Test(tests,precision,freeze,mt)
  18. ULONG tests;
  19. int precision;
  20. BOOL freeze,mt;
  21. {
  22.   ULONG r,tot;
  23.   struct SystemConfig *cfg;
  24.   /* Here it prints the header of the result file.*/
  25.   fprintf(fi,"%s (Amiga)\n",VSTRING);
  26.   fprintf(fi,"Portable OS Based Benchmark\n");
  27.   fprintf(fi,"Created by Pietro Altomani <altomanipietro@pragmanet.it>\n");
  28.   printf("%s (Amiga)\n",VSTRING);
  29.   printf("Portable OS Based Benchmark\n");
  30.   printf("Created by Pietro Altomani <altomanipietro@pragmanet.it>\n");
  31.   ShowConfiguration(fi,TRUE);  /* this prints in the file,and if the second parameter is TRUE on the console, the system configuration   */
  32.  
  33.   if ((tests | ~(POSBB_TESTCOPYMEM)) == -1) {
  34.   printf("CopyMem test in progress...\n");
  35.   r = Test_CopyMem(precision,freeze,mt);
  36.     if (r == TRUE)  printf("Test failed. Not enough free memory\n");
  37.     else
  38.     {
  39.       printf("Result = %f seconds\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  40.       fprintf(fi,"CopyMem Test\nTest the speed of RAM access.\nTime:%f seconds\n\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  41.     }
  42.    }
  43.    if ((tests | ~(POSBB_TESTCOPYMEM_512KB)) == -1) {
  44.   printf("CopyMem_512kb test in progress...\n");
  45.   r = Test_CopyMem_512kb(precision,freeze,mt);
  46.     if (r == TRUE)  printf("Test failed. Not enough free memory\n");
  47.     else
  48.     {
  49.       printf("Result = %f seconds\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  50.       fprintf(fi,"CopyMem_512kb Test\nTest the speed of RAM access with 512 kb chunks.\nTime:%f seconds\n\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  51.     }
  52.    }
  53.   if ((tests | ~(POSBB_TESTCOPYMEM_1MB)) == -1) {
  54.   printf("CopyMem_1Mb test in progress...\n");
  55.   r = Test_CopyMem_1Mb(precision,freeze,mt);
  56.     if (r == TRUE)  printf("Test failed. Not enough free memory\n");
  57.     else
  58.     {
  59.       printf("Result = %f seconds\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  60.       fprintf(fi,"CopyMem_1Mb Test\nTest the speed of RAM access with 1 Mb chunks..\nTime:%f seconds\n\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  61.     }
  62.    }
  63.   if ((tests | ~(POSBB_TESTPRINTF)) == -1) {
  64.     r = Test_printf(precision,freeze,mt);
  65.     printf("Result = %f seconds\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  66.     fprintf(fi,"printf Test\nTests the speed of text output to stdout (console)\nTime:%f seconds\n\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  67.   }
  68.   if ((tests | ~(POSBB_TESTIMATH)) == -1) {
  69.     printf("Math test in progress...\n");
  70.     r = Test_IMath(precision,freeze,mt);
  71.     printf("Result = %f seconds\n", (double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  72.     fprintf( fi,"Math Test\nTest the speed of some math operations (+,-,*,/)\nTime:%f seconds\n\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  73.   }
  74.   if ((tests | ~(POSBB_TESTFPMATH)) == -1) {
  75.     printf("Floating Point Math test in progress...\n");
  76.     r = Test_FPMath(precision,freeze,mt);
  77.     printf("Result = %f seconds\n", (double)(r * POSBB_PRECISIONHIGHEST / precision)/1000);
  78.    fprintf( fi,"FPMath Test\nTest the speed of some math operations (+,-,*,/)\nTime:%f seconds\n\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  79.   }
  80.   if ((tests | ~(POSBB_TESTTMATH)) == -1) {
  81.     printf("TMath test in progress...\n");
  82.     r = Test_TMath(precision,freeze,mt);
  83.     printf("Result = %f seconds\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  84.     fprintf( fi,"TMath Test\nTest the speed of trigonometric functions.\nTime:%f seconds\n\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  85.   }
  86.  
  87.  
  88.  
  89. /*    qsort test isn't finished
  90.   if ((tests | ~(POSBB_TESTQSORT)) == -1) {
  91.     printf("qsort test in progress...\n");
  92.     r = Test_qsort(precision);
  93.     printf("Result = %d seconds\n",(r*POSBB_PRECISIONHIGHEST/precision)/1000);
  94.     fprintf(fi,"Result = %d seconds\n",(r*POSBB_PRECISIONHIGHEST/precision)/1000);
  95.   }
  96.  
  97. */
  98. #ifdef POSBB_TESTDISK                       /* This can turn on or off the disk speed tests. In fact it isn't very useful.  */
  99.   if ((tests | ~(POSBB_TESTREAD)) == -1) {
  100.     printf("Write test in progress...\n");
  101.     r = Test_Write(POSBB_DEFTESTFILE,precision,freeze,mt);
  102.     printf("Result = %f seconds\n",(r * POSBB_PRECISIONHIGHEST/precision)/1000);
  103.   }
  104.   if ((tests | ~(POSBB_TESTWRITE)) == -1) {
  105.     printf("Read test in progress...\n");
  106.     r = Test_Read(POSBB_DEFTESTFILE,precision,freeze,mt);
  107.     printf("Result = %d seconds\n",r);
  108.   }
  109. #endif
  110.   /* Here starts gxf tests. */
  111.   if ((tests | ~(POSBB_TESTWRITEPIXEL)) == -1) {
  112.   printf("WritePixel test in progress...\n");
  113.   r = Test_WritePixel(window->RPort,precision,freeze,mt);
  114.   printf("Result = %f seconds\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  115.   fprintf( fi,"WritePixel Test\nTests the speed of pixel drawing.\nTime: %f seconds\n\n",(double)(r * POSBB_PRECISIONHIGHEST / precision)/1000);
  116.   }
  117.   if ((tests | ~(POSBB_TESTDRAWELLIPSE)) == -1) {
  118.   printf("DrawEllipse test in progress...\n");
  119.   r = Test_DrawEllipse(window->RPort,precision,freeze,mt);
  120.   printf("Result = %f seconds\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  121.   fprintf( fi,"DrawEllipse Test\nTests the speed of ellipse drawing.\nTime: %f seconds\n\n",(double)(r * POSBB_PRECISIONHIGHEST / precision)/1000);
  122.   }
  123.   if ((tests | ~(POSBB_TESTDRAW)) == -1) {
  124.   printf("Draw test in progress...\n");
  125.   r = Test_Draw(window->RPort,precision,freeze,mt);
  126.   printf("Result = %f seconds\n",(double) (r * POSBB_PRECISIONHIGHEST / precision)/1000);
  127.   fprintf( fi,"Draw Test\nTests the speed of line drawing.\nTime: %f seconds\n\n",(double)(r * POSBB_PRECISIONHIGHEST / precision)/1000);
  128.   }
  129. }
  130.  
  131. ShowConfiguration(resfile,conflag)     /* file is the (FILE *) to write on. conflag is a flag saying if it has to write to the console,too. conflag = 1 */
  132. FILE *resfile;
  133. {
  134.   fprintf(resfile,"In this version POSBB can't show system config.\n");
  135.   if (conflag) printf("In this version POSBB can't show system configuration.\n");
  136.   return 0;
  137. }
  138.  
  139.