#define _GNU_SOURCE
#include <sys/time.h>
#include <stdio.h>      /* standard I/O                */
#include <string.h>     /* for strcpy - 3 occurrences  */
#include <stdlib.h>     /* for exit   - 1 occurrence   */

#ifdef enable_threading
#include <pthread.h>
#endif

struct timeval starttime,endtime;
double lscompress,compress1,te0;
int i;

int Compress1()
{
	FILE *fP;

	system("compressiondir/cleanup.run");

	printf("\n\tPreparing test, this will only use about 6MB of disk space\n");
       fP = fopen("compressiondir/arch1.txt", "w");
#ifdef enable_threading
#pragma omp parallel for
#endif
	        for(i=0; i<1333; i++) {
        fprintf(fP, "\nab cdefg hijklmno pqrstuvwx yz12345 678 9 0,.;:><?][}{'");
        fprintf(fP, "\n181 818haha8hasui yc-7f6734 hbbbbbjkasd. ..,mjasdu,.okah?.j awhahdn ayqoclpi'[");	
	}
	fclose(fP);
	printf("\tdone.\n");
	printf("\tTest running...\n");
	system("compressiondir/prepare.run");
        gettimeofday(&starttime, NULL); 
#ifdef enable_threading
#pragma omp parallel for
#endif 
        for(i=0; i<2; i++) {
	system("compressiondir/tar.run");
	system("compressiondir/gz.run");
	system("compressiondir/bzip2.run");
	}
        gettimeofday(&endtime, NULL);
	
	system("compressiondir/cleanup.run");

        te0=((double)(endtime.tv_sec*1000000-starttime.tv_sec*1000000+endtime.tv_usec-starttime.tv_usec))/1000000;
        compress1 = 3 * 3 / te0;
        printf("\n\tTest #1:\tCompression/archiving test tar/gzip/bzip2: %lf/s\n", compress1);
return compress1;
}

int main() {
printf("\nRunning Compression/Archiving tests:");                
FILE *fp;
Compress1();
lscompress = compress1 * 23;
fp=fopen("compressiondir/lscompress.log", "w");
fprintf(fp, "%f\n", lscompress);
fclose(fp);
//printf("\n\tTest #1:\tCompression/archiving test tar/gzip/bzip2: %lf/s\n", lscompress);
printf("DONE.\n");
return(1);
}

