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(); } }
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; }
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; }
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 }