Ejemplo n.º 1
0
static void fchownat_verify(void)
{
	TEST(fchownat(dirfd, TESTFILE_LINK, set_uid, set_gid,
		      AT_SYMLINK_NOFOLLOW));

	if (TEST_RETURN != 0) {
		tst_resm(TFAIL | TTERRNO, "fchownat() failed, errno=%d : %s",
			 TEST_ERRNO, strerror(TEST_ERRNO));
	} else {
		test_verify();
	}
}
Ejemplo n.º 2
0
int main(int argc, char **argv) {
  CRYPTO_library_init();

  bio_err = BIO_new_fp(stderr, BIO_NOCLOSE);
  bio_out = BIO_new_fp(stdout, BIO_NOCLOSE);

  if (!test_generate() ||
      !test_verify(fips_sig, sizeof(fips_sig), 1) ||
      !test_verify(fips_sig_negative, sizeof(fips_sig_negative), -1) ||
      !test_verify(fips_sig_extra, sizeof(fips_sig_extra), -1) ||
      !test_verify(fips_sig_bad_length, sizeof(fips_sig_bad_length), -1) ||
      !test_verify(fips_sig_bad_r, sizeof(fips_sig_bad_r), 0)) {
    BIO_print_errors(bio_err);
    BIO_free(bio_err);
    BIO_free(bio_out);
    return 1;
  }

  BIO_free(bio_err);
  BIO_free(bio_out);
  printf("PASS\n");
  return 0;
}
Ejemplo n.º 3
0
int main(int argc, char **) {
  int ret = 0;

  double resolution = 0.01;
  auto ok = [=](double x, double y) { return std::abs((x-y)/y)<resolution;};
 
  PerfStat ps; 

  std::cout << "we are " << (PerfStat::isINTEL() ? "on" : "not on") << " an INTEL Machine. Model ";
  printf("%x",PerfStat::modelNumber()); std::cout<< std::endl; 
  std::cout << "|test   "; ps.header(std::cout);
  std::cout << "|test   "; ps.header(std::cout,true);

  bool debug = argc>1;

  
  test_verify(0==ps.calls());
  test_verify(0==ps.callsTot());
  test_verify(0==ps.read()); ps.calib();
  test_verify(0==ps.calls());
  test_verify(0==ps.callsTot());
  test_verify(0==ps.cyclesRaw());
  test_verify(0==ps.instructionsRaw());
  test_verify(0==ps.taskTimeRaw());
  test_verify(0==ps.realTimeRaw());

  ps.start();ps.stop();
  ps.start();ps.stop();
  test_verify(2==ps.calls());
  test_verify(2==ps.callsTot());
  test_verify(0==ps.read()); ps.calib();
  if(debug) ps.print(std::cout,true,true);
 

  {
    PerfStat perf;
    double s =0;
    for (int k=0; k!=100; ++k) {
      perf.start();    
      for (int i=1; i!=1000001; ++i) s+= std::log(i+1);
      perf.stop();
      
    }
    ret &= (s!=0);
    test_verify(100==perf.calls());
    test_verify(100==perf.callsTot());
    perf.read(); perf.calib();
    test_verify(ok(perf.cyclesRaw(),perf.cyclesTot()));
    test_verify(ok(perf.cyclesRaw()/double(perf.calls()),perf.cycles()));
    // test_verify(perf.verify(0.01));
    std::cout <<"|default  "; perf.summary(std::cout); //std::cout << std::endl;
    std::cout <<"|default  "; perf.summary(std::cout,true); //std::cout << std::endl;
    if(debug) perf.print(std::cout,true,true);
  
    PerfStat perf1(true);
    s =0;
    for (int k=0; k!=100; ++k) {
      perf1.start();    
      for (int i=1; i!=1000001; ++i) s+= std::log(i+1);
      perf1.stop();
      
    }
    ret &= (s!=0);
    test_verify(100==perf1.calls());
    test_verify(100*PerfStat::ngroups()==perf1.callsTot());
    perf1.read(); perf1.calib();
    // test_verify(perf.verify(0.01));
    std::cout <<"|multi   "; perf1.summary(std::cout,true); //std::cout << std::endl;
    if(debug) perf1.print(std::cout,true,true);
  }
  {

    PerfStat perf1;
    PerfStat perf2;
    double s1 =0;
    double s2 =0;
    for (int k=0; k!=100; ++k) {
      perf1.start();    
      for (int i=1; i!=1000001; ++i) s1+= std::log(i+1);
      perf1.stop();
      perf2.start();    
      for (int i=1; i!=1000001; ++i) s2+= std::log2(i+1);
      perf2.stop();
      
    }
    ret &= (s1!=0);ret &= (s2!=0);
    test_verify(100==perf1.calls());
    test_verify(100==perf1.callsTot());
    test_verify(100==perf2.calls());
    test_verify(100==perf2.callsTot());
    perf1.read(); perf1.calib();
    perf2.read(); perf2.calib();
    // test_verify(perf.verify(0.01));
    std::cout <<"|one    ";perf1.summary(std::cout,true); //std::cout << std::endl;
    std::cout <<"|two    ";perf2.summary(std::cout,true);// std::cout << std::endl;


  }
  {

    PerfStat perf1;
    PerfStat perf2;
    double s1 =0;
    double s2 =0;
    for (int k=0; k!=100; ++k) {
      perf1.start(0);    
      for (int i=1; i!=1000001; ++i) s1+= std::log(i+1);
      perf1.stop();
      perf2.start(1);    
      for (int i=1; i!=1000001; ++i) s2+= std::log2(i+1);
      perf2.stop();
      
    }
    ret &= (s1!=0);ret &= (s2!=0);
    test_verify(100==perf1.calls());
    test_verify(100==perf1.callsTot());
    test_verify(100==perf2.calls());
    test_verify(100==perf2.callsTot());
    perf1.read(); perf1.calib();
    perf2.read(); perf2.calib();
    // test_verify(perf.verify(0.01));
    std::cout <<"|0      ";perf1.summary(std::cout,true); //std::cout << std::endl;
    std::cout <<"|1      ";perf2.summary(std::cout,true);// std::cout << std::endl;
    if(debug) perf1.print(std::cout,true,true);
    if(debug) perf2.print(std::cout,true,true);
  }

  {

    PerfStat perf1;
    double s1 =0;
    for (int k=0; k!=100; ++k) {
      perf1.start(0);    
      for (int i=1; i!=1000001; ++i) s1+= std::log(i+1);
      perf1.stop();
      perf1.start(k&1);    
      for (int i=1; i!=1000001; ++i) s1+= std::log2(i+1);
      perf1.stop();
      
    }
    test_verify(100*PerfStat::ngroups()==perf1.calls());
    test_verify(100*PerfStat::ngroups()==perf1.callsTot());
    ret &= (s1!=0);
    perf1.read(); perf1.calib();
    // test_verify(perf.verify(0.01));
    std::cout <<"|0/1    ";perf1.summary(std::cout,true);// std::cout << std::endl;
    if(debug) perf1.print(std::cout,true,true);

  }


  {

    PerfStat perf1;
    double s1 =0;
    double s2 =0;
    for (int k=0; k!=100; ++k) {
      perf1.start();    
      for (int i=1; i!=1000001; ++i) s1+= std::log(i+1);
      perf1.stop();
    }
    perf1.read(); perf1.calib();
    std::cout <<"|      ";perf1.summary(std::cout); //std::cout << std::endl;
    perf1.reset();
    for (int k=0; k!=100; ++k) {
      perf1.start();    
      for (int i=1; i!=1000001; ++i) s2+= std::log2(i+1);
      perf1.stop();
    }
    test_verify(100==perf1.calls());
    test_verify(100==perf1.callsTot());
    ret &= (s1!=0);ret &= (s2!=0);
    perf1.read(); perf1.calib();
    // test_verify(perf.verify(0.01));
    std::cout <<"|reset ";perf1.summary(std::cout,true);// std::cout << std::endl;


  }


  {
    // sharing
    PerfStat perf;
    PerfStat perf1(perf.fd());
    PerfStat perf2(perf.fd());
    double s1 =0;
    double s2 =0;
    for (int k=0; k!=100; ++k) {
      perf1.startDelta();    
      for (int i=1; i!=1000001; ++i) s1+= std::log(i+1);
      perf1.stopDelta();
      perf2.startDelta();    
      for (int i=1; i!=1000001; ++i) s2+= std::log2(i+1);
      perf2.stopDelta();
      perf.start();perf.stop();  
    }
    ret &= (s1!=0);ret &= (s2!=0);
    test_verify(100==perf.calls());
    test_verify(100==perf.callsTot());
    test_verify(100==perf1.calls());
    test_verify(100==perf1.callsTot());
    test_verify(100==perf2.calls());
    test_verify(100==perf2.callsTot());
//    perf1.calib();
//    perf2.calib();
    // test_verify(perf.verify(0.01));
    perf.read(); perf.calib();
    std::cout <<"|total  "; perf.summary(std::cout,true); //std::cout << std::endl;
    std::cout <<"|one sh ";perf1.summary(std::cout,true); //std::cout << std::endl;
    std::cout <<"|two sh ";perf2.summary(std::cout,true); //std::cout << std::endl;
    if(debug) perf.print(std::cout,true,true);

  }

  {
    // sharing multiplex
    PerfStat perf(true);
    PerfStat perf1(perf.fd());
    PerfStat perf2(perf.fd());
    double s1 =0;
    double s2 =0;
    for (int k=0; k!=100; ++k) {
      perf1.startDelta();    
      for (int i=1; i!=1000001; ++i) s1+= std::log(i+1);
      perf1.stopDelta();
      perf2.startDelta();    
      for (int i=1; i!=1000001; ++i) s2+= std::log2(i+1);
      perf2.stopDelta();
      perf.start();perf.stop();  
    }
    ret &= (s1!=0);ret &= (s2!=0);
    test_verify(100==perf.calls());
    test_verify(100*PerfStat::ngroups()==perf.callsTot());
    test_verify(100==perf1.calls());
    test_verify(100*PerfStat::ngroups()==perf1.callsTot());
    test_verify(100==perf2.calls());
    test_verify(100*PerfStat::ngroups()==perf2.callsTot());
//    perf1.calib();
//    perf2.calib();
    // test_verify(perf.verify(0.01));
    perf.read(); perf.calib();
    std::cout <<"|totmp  "; perf.summary(std::cout,true); //std::cout << std::endl;
    std::cout <<"|one mp ";perf1.summary(std::cout,true); //std::cout << std::endl;
    std::cout <<"|two mp ";perf2.summary(std::cout,true); //std::cout << std::endl;
    if(debug) perf.print(std::cout,true,true);

  }



  // ps.print(std::cout);

  // ps.print(std::cout,true);


  return ret;

}
Ejemplo n.º 4
0
int main (int argc, char **argv)
{
#ifdef ENABLE_CRYPTO
	const char *datadir = "data/pgp";
	GMimeStream *istream, *ostream;
	GMimeFilterOpenPGP *filter;
	GMimeCryptoContext *ctx;
	const char *what;
	char *gpg, *key;
	struct stat st;
	int i;
	
	g_mime_init ();
	
	testsuite_init (argc, argv);
	
	if (!(gpg = g_find_program_in_path ("gpg2")))
		if (!(gpg = g_find_program_in_path ("gpg")))
			return EXIT_FAILURE;
	
	if (testsuite_setup_gpghome (gpg) != 0)
		return EXIT_FAILURE;
	
	g_free (gpg);
	
	for (i = 1; i < argc; i++) {
		if (argv[i][0] != '-') {
			datadir = argv[i];
			break;
		}
	}
	
	if (i < argc && (stat (datadir, &st) == -1 || !S_ISDIR (st.st_mode)))
		return 0;
	
	testsuite_start ("GnuPG crypto context");
	
	ctx = g_mime_gpg_context_new ();
	g_mime_crypto_context_set_request_password (ctx, request_passwd);
	
	testsuite_check ("GMimeGpgContext::import");
	try {
		key = g_build_filename (datadir, "gmime.gpg.pub", NULL);
		import_key (ctx, key);
		g_free (key);
		
		key = g_build_filename (datadir, "gmime.gpg.sec", NULL);
		import_key (ctx, key);
		g_free (key);
		
		testsuite_check_passed ();
	} catch (ex) {
		testsuite_check_failed ("GMimeGpgContext::import failed: %s", ex->message);
		return EXIT_FAILURE;
	} finally;
	
	key = g_build_filename (datadir, "gmime.gpg.pub", NULL);
	testsuite_check ("GMimeGpgContext::export");
	try {
		test_export (ctx, key);
		testsuite_check_passed ();
	} catch (ex) {
		testsuite_check_failed ("GMimeGpgContext::export failed: %s", ex->message);
	} finally;
	
	g_free (key);
	
	istream = g_mime_stream_mem_new ();
	ostream = g_mime_stream_mem_new ();
	
	g_mime_stream_write_string (istream, "this is some cleartext\r\n");
	g_mime_stream_reset (istream);
	
	what = "GMimeGpgContext::sign";
	testsuite_check ("%s", what);
	try {
		test_sign (ctx, FALSE, istream, ostream);
		testsuite_check_passed ();
		
		what = "GMimeGpgContext::verify";
		testsuite_check ("%s", what);
		g_mime_stream_reset (istream);
		g_mime_stream_reset (ostream);
		test_verify (ctx, istream, ostream);
		testsuite_check_passed ();
	} catch (ex) {
		testsuite_check_failed ("%s failed: %s", what, ex->message);
	} finally;
	
	g_object_unref (ostream);
	g_mime_stream_reset (istream);
	ostream = g_mime_stream_mem_new ();
	
	what = "GMimeGpgContext::sign (detached)";
	testsuite_check ("%s", what);
	try {
		test_sign (ctx, TRUE, istream, ostream);
		testsuite_check_passed ();
		
		what = "GMimeGpgContext::verify (detached)";
		testsuite_check ("%s", what);
		g_mime_stream_reset (istream);
		g_mime_stream_reset (ostream);
		test_verify_detached (ctx, istream, ostream);
		testsuite_check_passed ();
	} catch (ex) {
		testsuite_check_failed ("%s failed: %s", what, ex->message);
	} finally;
	
	g_object_unref (ostream);
	g_mime_stream_reset (istream);
	ostream = g_mime_stream_mem_new ();
	
	what = "GMimeGpgContext::encrypt";
	testsuite_check ("%s", what);
	try {
		test_encrypt (ctx, FALSE, istream, ostream);
		testsuite_check_passed ();
		
		what = "GMimeGpgContext::decrypt";
		testsuite_check ("%s", what);
		g_mime_stream_reset (istream);
		g_mime_stream_reset (ostream);
		test_decrypt (ctx, FALSE, istream, ostream);
		testsuite_check_passed ();
	} catch (ex) {
		testsuite_check_failed ("%s failed: %s", what, ex->message);
	} finally;
	
	g_object_unref (ostream);
	g_mime_stream_reset (istream);
	ostream = g_mime_stream_mem_new ();
	
	what = "GMimeGpgContext::encrypt+sign";
	testsuite_check ("%s", what);
	try {
		test_encrypt (ctx, TRUE, istream, ostream);
		testsuite_check_passed ();
		
		what = "GMimeGpgContext::decrypt+verify";
		testsuite_check ("%s", what);
		g_mime_stream_reset (istream);
		g_mime_stream_reset (ostream);
		test_decrypt (ctx, TRUE, istream, ostream);
		testsuite_check_passed ();
	} catch (ex) {
		testsuite_check_failed ("%s failed: %s", what, ex->message);
	} finally;
	
	g_object_unref (istream);
	g_object_unref (ostream);
	g_object_unref (ctx);

	filter = (GMimeFilterOpenPGP *) g_mime_filter_openpgp_new ();
	
	what = "GMimeFilterOpenPGP::public key block";
	testsuite_check ("%s", what);
	try {
		key = g_build_filename (datadir, "gmime.gpg.pub", NULL);
		test_openpgp_filter (filter, key, GMIME_OPENPGP_DATA_PUBLIC_KEY, 0, 1720);
		g_free (key);
		
		testsuite_check_passed ();
	} catch (ex) {
		testsuite_check_failed ("%s failed: %s", what, ex->message);
	} finally;
	
	g_mime_filter_reset ((GMimeFilter *) filter);
	
	what = "GMimeFilterOpenPGP::private key block";
	testsuite_check ("%s", what);
	try {
		key = g_build_filename (datadir, "gmime.gpg.sec", NULL);
		test_openpgp_filter (filter, key, GMIME_OPENPGP_DATA_PRIVATE_KEY, 0, 1928);
		g_free (key);
		
		testsuite_check_passed ();
	} catch (ex) {
		testsuite_check_failed ("%s failed: %s", what, ex->message);
	} finally;
	
	g_mime_filter_reset ((GMimeFilter *) filter);
	
	what = "GMimeFilterOpenPGP::signed message block";
	testsuite_check ("%s", what);
	try {
		key = g_build_filename (datadir, "signed-message.txt", NULL);
		test_openpgp_filter (filter, key, GMIME_OPENPGP_DATA_SIGNED, 162, 440);
		g_free (key);
		
		testsuite_check_passed ();
	} catch (ex) {
		testsuite_check_failed ("%s failed: %s", what, ex->message);
	} finally;
	
	g_mime_filter_reset ((GMimeFilter *) filter);
	
	what = "GMimeFilterOpenPGP::encrypted message block";
	testsuite_check ("%s", what);
	try {
		key = g_build_filename (datadir, "encrypted-message.txt", NULL);
		test_openpgp_filter (filter, key, GMIME_OPENPGP_DATA_ENCRYPTED, 165, 1084);
		g_free (key);
		
		testsuite_check_passed ();
	} catch (ex) {
		testsuite_check_failed ("%s failed: %s", what, ex->message);
	} finally;
	
	g_object_unref (filter);
	
	testsuite_end ();
	
	g_mime_shutdown ();
	
	if (testsuite_destroy_gpghome () != 0)
		return EXIT_FAILURE;
	
	return testsuite_exit ();
#else
	fprintf (stderr, "PGP support not enabled in this build.\n");
	return EXIT_SUCCESS;
#endif
}