Пример #1
0
int main(int argc, char* argv[])
{
    uint64_t i;
    struct bitarray* bits;

    fprintf_blue(stdout, "-- Bitarray Test Suite --\n");

    fprintf_light_blue(stdout, "* test bitarray_init()\n");
    bits = bitarray_init(8*512);
    bitarray_print(bits);
    fprintf_light_blue(stdout, "* test bitarray_set_all()\n");
    bitarray_set_all(bits);
    bitarray_print(bits);
    fprintf_light_blue(stdout, "* test bitarray_clear()\n");
    bitarray_unset_all(bits);
    bitarray_print(bits);

    fprintf_light_blue(stdout, "* test bitarray_set_bit()\n");
    for (i = 0; i < 31; i++)
    {
        bitarray_set_bit(bits, test_nums[i]);
    }

    fprintf_light_blue(stdout, "* test bitarray_get_bit()\n");
    for (i = 0; i < 31; i++)
    {
        assert(bitarray_get_bit(bits, test_nums[i]) == true);
    }


    fprintf_light_blue(stdout, "* test bitarray_unset_bit()\n");
    bitarray_unset_bit(bits, test_nums[4]);
    bitarray_unset_bit(bits, test_nums[9]);
    for (i = 0; i < 31; i++)
    {
        if (i == 4 || i == 9) continue;
        assert(bitarray_get_bit(bits, test_nums[i]) == true);
    }

    for (i = 0; i < 31; i++)
    {
        bitarray_unset_bit(bits, test_nums[i]);
    }

    for (i = 0; i < 31; i++)
    {
        assert(bitarray_get_bit(bits, test_nums[i]) == false);
    }

    bitarray_print(bits);

    bitarray_destroy(bits);

    test_throughput();

    return EXIT_SUCCESS;
}
Пример #2
0
int main(int argc, char **argv) {
    if (argc > 1) {
        if (strcmp(argv[1],"-s") == 0)
            use_unix = 1;
    }

    signal(SIGPIPE, SIG_IGN);
    test_format_commands();
    test_blocking_connection();
    test_reply_reader();
    // test_nonblocking_connection();
    test_throughput();
    cleanup();

    if (fails == 0) {
        printf("ALL TESTS PASSED\n");
    } else {
        printf("*** %d TESTS FAILED ***\n", fails);
    }
    return 0;
}
Пример #3
0
int main(int argc, char* args[]){

  assert(argc == 3); 
  clock_t start, end;

  int r;
  int data_size =  atoi(args[1]);
  int buffer_size =  atoi(args[2]);
  bool sorted = true;
  lsm *tree;
  tree = init_new_lsm(buffer_size, sorted);  

  ///// TEST PUT - SORTED /////
  r = test_put(tree, data_size,buffer_size, sorted);
  r = test_throughput(tree, data_size, buffer_size, sorted); 

/*   sorted = false;  */
/*   //r = test_put(data_size,buffer_size, sorted); */
/*   r = test_throughput(data_size, buffer_size, sorted);  */
  destruct_lsm(tree); 
  return r;
}
Пример #4
0
/** ***************************************************************
 * MAIN
 */
int main(int argc, char **argv)
{
	unsigned int threads=THREADS;
	unsigned int chunk = CHUNK;
	unsigned int test_length = SECONDS;  /* how many seconds before stopping generation
	                                      * negative to infinite (until ESC) */
	unsigned int cycles = CYCLES; // how many times to run generators to get average throughput
	unsigned int cycle;

	double throughputs [cycles][METHODS_COUNT];
	double averages [METHODS_COUNT];
	double sum, max_throughput;
	int max_throughput_method, method;
	int tested_methods_count = compute_tests_amount(TESTED_METHODS);

	FILE *stream;

	max_throughput = 0;
	max_throughput_method = 0;

	if(rdrand_testSupport() == RDRAND_UNSUPPORTED)
	{
		fprintf(stderr,"FATAL ERROR: RdRand is not supported on this CPU!\n");
		exit (EXIT_FAILURE);
	}

	get_opts(argc,
		 argv,
		 &threads,
		 &chunk,
		 &test_length,
		 &cycles,
		 &stream,
		 &tested_methods_count);

	if(verbose_flag)
	{
		fprintf(stderr,"This test will run %d methods for %d times in %d threads.\n", tested_methods_count, cycles, threads);
		fprintf(stderr,"Each method will run for %d seconds, the overall time of this test is %d seconds.\n",
			test_length, test_length*cycles*tested_methods_count );
		fprintf(stderr,"The random values are generated in chunks of size %u 64 bit values (per thread).\n",chunk);
		if(print_numbers_flag == 0)
			fprintf(stderr,"Generated values will be print raw.\n");
		else
			fprintf(stderr,"Generated values will be print as readable numbers.\n");

		if(no_print_flag)
			fprintf(stderr,"Will not print generates values.\n");
		fprintf(stderr,"-------------------------------------------------------------------\n");
	}

	/************** DO THE TESTING ******************************************/
	/* run all methods in required count */
	for ( cycle = 0; cycle < cycles; cycle++)
	{
		if(verbose_flag)
			fprintf(stderr,"\nDoing %d. run:\n",cycle+1);
		/* run all methods */
		for( method = 0; method < tested_methods_count; method++)
		{
			if(verbose_flag)
				fprintf(stderr,"%s:\n",METHOD_NAMES[TESTED_METHODS[method]]);

			throughputs[cycle][method] = test_throughput(threads, chunk, test_length, stream, TESTED_METHODS[method]);
		}
	}

	/************** PRINT OVERALL RESULTS **********************************/
	if(print_numbers_flag == 1)
		fprintf(stderr,"\n"); // to break line after numbers

	if(verbose_flag)
		fprintf(stderr,"\n-------------------------------------------------------------------\n");

	for( method = 0; method< tested_methods_count; method++)
	{
		sum = 0;
		for( cycle = 0; cycle < cycles; cycle++)
		{
			sum += throughputs[cycle][method];
		}
		averages[method] = sum/cycles;
		// find the maximum throughput
		if(max_throughput < averages[method])
		{
			max_throughput = averages[method];
			max_throughput_method = TESTED_METHODS[method];
		}
	}

	if(verbose_flag)
	{
		fprintf(stderr,"The fastest method (%g MiB/s) was: %s\n",max_throughput, METHOD_NAMES[max_throughput_method]);
		fprintf(stderr,"Average throughputs in %d runs:\n", cycles);
	}

	for( method = 0; method< tested_methods_count; method++)
	{
		if(verbose_flag)
		{
			fprintf(stderr,"  (%.2f %%) Method %s: %.3f MiB/s\n",

				(averages[method]/max_throughput)*100, // percents of max throughput
				METHOD_NAMES[TESTED_METHODS[method]],
				averages[method]
				);
		}
		else
		{

			fprintf(stderr,"%s %.3f MiB/s %.2f %%\n",
				METHOD_NAMES[TESTED_METHODS[method]],
				averages[method],
				(averages[method]/max_throughput)*100 // percents of max throughput
				);
		}
	}



	fclose(stream);
	return 1;
}