commit 1959402d7de644ffbdbb64b2a7605fbcccd178e5
parent a1371ed47385e06b8a882ae11b151e2753c67d2e
Author: Kyle Milz <kyle@0x30.net>
Date: Tue, 2 Aug 2016 22:53:49 -0600
Test: redo end to end testing
Diffstat:
M | Test/Package.pm | | | 108 | ++++++++++++++------------------------------------------------------------------ |
M | tt/mutt.t | | | 218 | ++++++++++++++++++++++++++++++++++++++++--------------------------------------- |
A | tt/nvi.t | | | 147 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | tt/openssl.t | | | 718 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
4 files changed, 993 insertions(+), 198 deletions(-)
diff --git a/Test/Package.pm b/Test/Package.pm
@@ -6,120 +6,48 @@ use IPC::Open2;
use File::Temp qw( tempdir );
sub new {
- my ($class, $dist_name, $dist_root, $extract_cmd) = @_;
+ my ($class, $name) = @_;
my $self = {};
bless($self, $class);
- return $self if (! defined ($dist_name));
- $self->{dist_name} = $dist_name;
-
- # Create temporary directory for the contents of this package.
my $dir = tempdir( CLEANUP => 1 );
$self->{dir} = $dir;
- mkdir "tt/distfiles";
- if (! -e "tt/distfiles/$dist_name") {
- my $dist_url = "$dist_root$dist_name";
- system("curl $dist_url -o tt/distfiles/$dist_name") == 0 or die "download failed";
- }
+ $self->{portsdir} = "/usr/ports";
+ $self->{port} = "$self->{portsdir}/$name";
- my $abs_dist_path = getcwd . "/tt/distfiles/$dist_name";
- system("cd $dir && $extract_cmd $abs_dist_path") == 0 or die "extract failed";
+ $ENV{CITRUN_SOCKET} = $self->{dir} . "/test.socket";
return $self;
}
-sub set_srcdir {
- my ($self, $srcdir) = @_;
- $self->{srcdir} = $self->{dir} . $srcdir;
- return $self->{srcdir};
-};
-
-sub dependencies {
- my ($self, @deps) = @_;
-
- my @installed_pkgs;
- @installed_pkgs = parse_output('pkg_info', '-q') if ($^O eq "openbsd");
- @installed_pkgs = parse_output('port', 'installed') if ($^O eq "darwin");
- @installed_pkgs = parse_output('apt-mark', 'showmanual') if ($^O eq "linux");
-
- my @missing_deps;
- for my $dep (@deps) {
- my $found = 0;
-
- for (@installed_pkgs) {
- if (/^\s*$dep.*$/) {
- $found = 1;
- last;
- }
- }
- if ($found == 0) {
- push @missing_deps, $dep;
- }
- }
-
- if (@missing_deps) {
- die "Missing dependencies: '" . join(' ', @missing_deps) . "'\n";
- }
-}
-
-sub parse_output {
- my $pid = open2(\*CHLD_OUT, undef, @_);
-
- waitpid( $pid, 0 );
- my $pkg_info_exit_code = $? >> 8;
-
- my @pkgs;
- push @pkgs, ($_) while (readline \*CHLD_OUT);
- return @pkgs;
-}
-
-sub patch {
- my ($self, $patch_cmd) = @_;
- system("cd $self->{srcdir} && $patch_cmd") == 0 or die "patching failed";
-}
-
-sub get_file_size {
- my ($self, $file) = @_;
+sub depends {
+ my ($self) = @_;
- die "file '$file' does not exist." unless (-f "$self->{srcdir}$file");
- return ((stat "$self->{srcdir}$file")[7]);
+ system("make -C $self->{port} full-build-depends > $self->{dir}/deps") == 0
+ or die "$!";
+ system("doas pkg_add -zl $self->{dir}/deps") == 0 or die "$!";
}
sub clean {
- my ($self, $clean_cmd) = @_;
-
- $self->{clean_cmd} = $clean_cmd;
- $self->time_system($clean_cmd);
-}
-
-sub configure {
- my ($self, $config_cmd) = @_;
-
- $self->{config_cmd} = $config_cmd;
- return $self->time_system($config_cmd);
-}
-
-sub compile {
- my ($self, $compile_cmd) = @_;
+ my ($self) = @_;
- $self->{compile_cmd} = $compile_cmd;
- return $self->time_system($compile_cmd);
+ system("make -C $self->{port} clean=all") == 0 or die "$!";
}
-sub inst_configure {
+sub build {
my ($self) = @_;
- die "configure() was not called" unless (exists $self->{config_cmd});
- return $self->time_system("citrun-wrap $self->{config_cmd}");
+ system("make -C $self->{port} PORTPATH=/home/kyle/citrun/src:\$PATH") == 0
+ or die "$!";
}
-sub inst_compile {
- my ($self) = @_;
+sub get_file_size {
+ my ($self, $file) = @_;
- die "compile() was not called" unless (exists $self->{compile_cmd});
- return $self->time_system("citrun-wrap $self->{compile_cmd}");
+ die "file '$file' does not exist." unless (-f "$self->{srcdir}$file");
+ return ((stat "$self->{srcdir}$file")[7]);
}
sub time_system {
diff --git a/tt/mutt.t b/tt/mutt.t
@@ -2,122 +2,123 @@ use strict;
use warnings;
use Expect;
-use Test::More;
-use Time::HiRes qw( time usleep );
-
-my $num_tests = 280;
-$num_tests = 284 if ($^O ne "darwin");
-plan tests => $num_tests;
-
+use Test::More tests => 409;
use Test::Package;
-use Test::Report;
use Test::Viewer;
+use Time::HiRes qw( time usleep );
-# Download: Mutt 1.6.1, depends on nothing (?).
-my $mutt_url = "ftp://ftp.mutt.org/pub/mutt/";
-my $package = Test::Package->new("mutt-1.6.1.tar.gz", $mutt_url, "tar xzf");
-$package->dependencies("citrun");
-
-$ENV{CITRUN_SOCKET} = $package->{dir} . "/test.socket";
-
-# New end to end report.
-my $report = Test::Report->new("MUTT", $num_tests);
-$report->add("desc", "configure time (sec)");
-$report->add("desc", "compile time (sec)");
-$report->add("desc", "mutt size (b)");
-
-my $srcdir = $package->set_srcdir("/mutt-1.6.1");
-
-# Vanilla configure and compile.
-$report->add("vanilla", $package->configure("./configure --disable-pgp --disable-smime --disable-nls --disable-iconv"));
-$report->add("vanilla", $package->compile("make -j8 all"));
-
-$report->add("vanilla", $package->get_file_size("/mutt"));
-
-# Clean up before rebuild.
-$package->clean("make distclean");
-
-# Instrumented configure and compile.
-$report->add("citrun", $package->inst_configure());
-$report->add("citrun", $package->inst_compile());
+my $package = Test::Package->new("mail/mutt");
+my $viewer = Test::Viewer->new();
-$report->add("citrun", $package->get_file_size("/mutt"));
+$package->depends();
+$package->clean();
+$package->build();
-# Verify: instrumented data structures are consistent.
-my $viewer = Test::Viewer->new();
-my $exp = Expect->spawn("$srcdir/mutt");
+my $exp = Expect->spawn("/usr/ports/pobj/mutt-1.6.2/mutt-1.6.2/mutt");
my @known_good = (
# file name lines instrumented sites
- [ "/addrbook.c", 246, 102 ],
- [ "/alias.c", 658, 266 ],
- [ "/ascii.c", 107, 42 ],
- [ "/attach.c", 1043, 454 ],
- [ "/base64.c", 123, 42 ],
- [ "/browser.c", 1267, 342 ],
- [ "/buffy.c", 629, 234 ],
- [ "/charset.c", 680, 179 ],
- [ "/color.c", 824, 260 ],
- [ "/commands.c", 1018, 358 ],
- [ "/complete.c", 199, 70 ],
- [ "/compose.c", 1345, 375 ],
- [ "/conststrings.c", 47, 0 ],
- [ "/copy.c", 962, 403 ],
- [ "/crypt-mod.c", 59, 32 ],
- [ "/crypt.c", 1121, 461 ],
- [ "/cryptglue.c", 396, 100 ],
- [ "/curs_lib.c", 1046, 323 ],
- [ "/curs_main.c", 2349, 545 ],
- [ "/date.c", 191, 59 ],
- [ "/edit.c", 491, 212 ],
- [ "/editmsg.c", 235, 97 ],
- [ "/enter.c", 772, 267 ],
- [ "/filter.c", 184, 103 ],
- [ "/flags.c", 384, 129 ],
- [ "/from.c", 199, 138 ],
- [ "/getdomain.c", 70, 40 ],
- [ "/group.c", 209, 117 ],
- [ "/handler.c", 1845, 612 ],
- [ "/hash.c", 179, 83 ],
- [ "/hdrline.c", 764, 313 ],
- [ "/headers.c", 214, 124 ],
- [ "/help.c", 380, 187 ],
- [ "/history.c", 320, 122 ],
- [ "/hook.c", 545, 186 ],
- [ "/init.c", 3285, 1120 ],
- [ "/keymap.c", 1146, 387 ],
- [ "/lib.c", 1086, 360 ],
- [ "/main.c", 1225, 353 ],
- [ "/mbox.c", 1269, 446 ],
- [ "/mbyte.c", 569, 68 ],
- [ "/menu.c", 1082, 273 ],
- [ "/mh.c", 2351, 726 ],
- [ "/muttlib.c", 1958, 555 ],
- [ "/mx.c", 1629, 455 ],
- [ "/pager.c", 2817, 631 ],
- [ "/parse.c", 1648, 588 ],
- [ "/patchlist.c", 12, 28 ],
- [ "/pattern.c", 1546, 549 ],
- [ "/postpone.c", 748, 232 ],
- [ "/query.c", 543, 223 ],
- [ "/recvattach.c", 1274, 428 ],
- [ "/recvcmd.c", 950, 297 ],
- [ "/resize.c", 80, 47 ],
- [ "/rfc1524.c", 594, 203 ],
- [ "/rfc2047.c", 924, 315 ],
- [ "/rfc2231.c", 384, 136 ],
- [ "/rfc3676.c", 390, 140 ],
- [ "/rfc822.c", 919, 245 ],
- [ "/safe_asprintf.c", 96, 35 ],
- [ "/score.c", 196, 74 ],
- [ "/send.c", 1953, 660 ],
- [ "/sendlib.c", 2890, 972 ],
- [ "/signal.c", 254, 85 ],
- [ "/sort.c", 343, 133 ],
- [ "/status.c", 309, 148 ],
- [ "/system.c", 142, 65 ],
- [ "/thread.c", 1431, 386 ],
- [ "/url.c", 325, 164 ],
+ ["/account.c", 241, 89],
+ ["/addrbook.c", 246, 98],
+ ["/alias.c", 658, 262],
+ ["/ascii.c", 107, 42],
+ ["/attach.c", 1043, 454],
+ ["/base64.c", 123, 42],
+ ["/bcache.c", 268, 105],
+ ["/browser.c", 1267, 439],
+ ["/buffy.c", 629, 239],
+ ["/charset.c", 680, 167],
+ ["/color.c", 824, 260],
+ ["/commands.c", 1019, 361],
+ ["/complete.c", 199, 77],
+ ["/compose.c", 1345, 375],
+ ["/conststrings.c", 75, 0],
+ ["/copy.c", 962, 399],
+ ["/crypt-mod-pgp-classic.c", 138, 56],
+ ["/crypt-mod-smime-classic.c", 119, 49],
+ ["/crypt-mod.c", 59, 32],
+ ["/crypt.c", 1121, 461],
+ ["/cryptglue.c", 396, 107],
+ ["/curs_lib.c", 1046, 323],
+ ["/curs_main.c", 2349, 555],
+ ["/date.c", 191, 59],
+ ["/edit.c", 491, 208],
+ ["/editmsg.c", 235, 97],
+ ["/enter.c", 772, 267],
+ ["/filter.c", 184, 103],
+ ["/flags.c", 401, 137],
+ ["/from.c", 199, 138],
+ ["/getdomain.c", 70, 40],
+ ["/gnupgparse.c", 446, 147],
+ ["/group.c", 209, 117],
+ ["/handler.c", 1845, 610],
+ ["/hash.c", 179, 83],
+ ["/hcache.c", 1242, 305],
+ ["/hdrline.c", 764, 309],
+ ["/headers.c", 214, 120],
+ ["/help.c", 380, 187],
+ ["/history.c", 320, 122],
+ ["/hook.c", 545, 198],
+ ["/imap/auth.c", 114, 53],
+ ["/imap/auth_anon.c", 77, 52],
+ ["/imap/auth_cram.c", 181, 77],
+ ["/imap/auth_login.c", 74, 52],
+ ["/imap/browse.c", 472, 188],
+ ["/imap/command.c", 1042, 344],
+ ["/imap/imap.c", 2041, 714],
+ ["/imap/message.c", 1308, 440],
+ ["/imap/utf7.c", 292, 96],
+ ["/imap/util.c", 852, 284],
+ ["/init.c", 3285, 1160],
+ ["/keymap.c", 1150, 391],
+ ["/lib.c", 1086, 360],
+ ["/main.c", 1249, 362],
+ ["/mbox.c", 1269, 446],
+ ["/mbyte.c", 569, 69],
+ ["/md5.c", 475, 49],
+ ["/menu.c", 1082, 273],
+ ["/mh.c", 2351, 757],
+ ["/mutt_idna.c", 343, 131],
+ ["/mutt_socket.c", 584, 168],
+ ["/mutt_ssl.c", 1125, 377],
+ ["/mutt_tunnel.c", 194, 91],
+ ["/muttlib.c", 1960, 568],
+ ["/mx.c", 1691, 556],
+ ["/pager.c", 2817, 631],
+ ["/parse.c", 1648, 588],
+ ["/patchlist.c", 13, 29],
+ ["/pattern.c", 1546, 557],
+ ["/pgp.c", 1866, 722],
+ ["/pgpinvoke.c", 358, 112],
+ ["/pgpkey.c", 1045, 393],
+ ["/pgplib.c", 253, 71],
+ ["/pgpmicalg.c", 212, 102],
+ ["/pgppacket.c", 232, 75],
+ ["/pop.c", 931, 336],
+ ["/pop_auth.c", 418, 109],
+ ["/pop_lib.c", 597, 240],
+ ["/postpone.c", 751, 238],
+ ["/query.c", 543, 219],
+ ["/recvattach.c", 1274, 431],
+ ["/recvcmd.c", 950, 293],
+ ["/resize.c", 80, 47],
+ ["/rfc1524.c", 594, 203],
+ ["/rfc2047.c", 924, 303],
+ ["/rfc2231.c", 384, 136],
+ ["/rfc3676.c", 390, 140],
+ ["/rfc822.c", 919, 241],
+ ["/safe_asprintf.c", 96, 35],
+ ["/score.c", 196, 74],
+ ["/send.c", 1954, 664],
+ ["/sendlib.c", 2890, 1004],
+ ["/signal.c", 254, 85],
+ ["/smime.c", 2280, 802],
+ ["/smtp.c", 666, 206],
+ ["/sort.c", 343, 129],
+ ["/status.c", 309, 148],
+ ["/system.c", 142, 65],
+ ["/thread.c", 1431, 386],
+ ["/url.c", 325, 164],
);
if ($^O ne "darwin") {
@@ -138,3 +139,4 @@ $viewer->cmp_static_data(\@known_good);
$viewer->cmp_dynamic_data();
$exp->hard_close();
+$package->clean();
diff --git a/tt/nvi.t b/tt/nvi.t
@@ -0,0 +1,147 @@
+use strict;
+use warnings;
+
+use Expect;
+use Test::More tests => 465 ;
+use Test::Package;
+use Test::Report;
+use Test::Viewer;
+
+my $package = Test::Package->new("editors/nvi");
+my $viewer = Test::Viewer->new();
+
+$package->depends();
+$package->clean();
+$package->build();
+
+my $exp = Expect->spawn("/usr/ports/pobj/nvi-2.1.3/nvi2-2.1.3/build/nvi");
+
+my @known_good = (
+ ["cl/cl_funcs.c", 853, 192],
+ ["cl/cl_main.c", 423, 111],
+ ["cl/cl_read.c", 331, 73],
+ ["cl/cl_screen.c", 585, 141],
+ ["cl/cl_term.c", 478, 141],
+ ["common/conv.c", 471, 61],
+ ["common/cut.c", 352, 86],
+ ["common/delete.c", 164, 58],
+ ["common/encoding.c", 237, 46],
+ ["common/exf.c", 1525, 356],
+ ["common/key.c", 871, 149],
+ ["common/line.c", 658, 146],
+ ["common/log.c", 768, 141],
+ ["common/main.c", 608, 129],
+ ["common/mark.c", 278, 46],
+ ["common/msg.c", 913, 184],
+ ["common/options.c", 1189, 226],
+ ["common/options_f.c", 358, 94],
+ ["common/put.c", 234, 71],
+ ["common/recover.c", 974, 315],
+ ["common/screen.c", 233, 63],
+ ["common/search.c", 500, 134],
+ ["common/seq.c", 409, 117],
+ ["common/util.c", 424, 110],
+ ["ex/ex.c", 2370, 426],
+ ["ex/ex_abbrev.c", 114, 53],
+ ["ex/ex_append.c", 270, 53],
+ ["ex/ex_args.c", 331, 110],
+ ["ex/ex_argv.c", 915, 210],
+ ["ex/ex_at.c", 125, 36],
+ ["ex/ex_bang.c", 188, 35],
+ ["ex/ex_cd.c", 132, 39],
+ ["ex/ex_cmd.c", 446, 6],
+ ["ex/ex_cscope.c", 1098, 343],
+ ["ex/ex_delete.c", 65, 17],
+ ["ex/ex_display.c", 144, 67],
+ ["ex/ex_edit.c", 160, 41],
+ ["ex/ex_equal.c", 59, 11],
+ ["ex/ex_file.c", 83, 17],
+ ["ex/ex_filter.c", 318, 91],
+ ["ex/ex_global.c", 317, 89],
+ ["ex/ex_init.c", 431, 130],
+ ["ex/ex_join.c", 171, 53],
+ ["ex/ex_map.c", 119, 54],
+ ["ex/ex_mark.c", 45, 11],
+ ["ex/ex_mkexrc.c", 102, 35],
+ ["ex/ex_move.c", 193, 47],
+ ["ex/ex_open.c", 46, 11],
+ ["ex/ex_preserve.c", 105, 30],
+ ["ex/ex_print.c", 332, 109],
+ ["ex/ex_put.c", 51, 32],
+ ["ex/ex_quit.c", 46, 11],
+ ["ex/ex_read.c", 362, 113],
+ ["ex/ex_screen.c", 132, 30],
+ ["ex/ex_script.c", 628, 193],
+ ["ex/ex_set.c", 46, 12],
+ ["ex/ex_shell.c", 228, 103],
+ ["ex/ex_shift.c", 187, 38],
+ ["ex/ex_source.c", 96, 27],
+ ["ex/ex_stop.c", 51, 15],
+ ["ex/ex_subst.c", 1442, 264],
+ ["ex/ex_tag.c", 1315, 344],
+ ["ex/ex_txt.c", 426, 80],
+ ["ex/ex_undo.c", 77, 19],
+ ["ex/ex_usage.c", 191, 66],
+ ["ex/ex_util.c", 217, 42],
+ ["ex/ex_version.c", 40, 8],
+ ["ex/ex_visual.c", 164, 22],
+ ["ex/ex_write.c", 376, 125],
+ ["ex/ex_yank.c", 46, 8],
+ ["ex/ex_z.c", 146, 26],
+ ["regex/regcomp.c", 1630, 260],
+ ["regex/regerror.c", 172, 40],
+ ["regex/regexec.c", 174, 294],
+ ["regex/regfree.c", 79, 18],
+ ["vi/getc.c", 223, 72],
+ ["vi/v_at.c", 114, 44],
+ ["vi/v_ch.c", 283, 64],
+ ["vi/v_cmd.c", 506, 6],
+ ["vi/v_delete.c", 106, 27],
+ ["vi/v_ex.c", 651, 155],
+ ["vi/v_increment.c", 265, 82],
+ ["vi/v_init.c", 130, 40],
+ ["vi/v_itxt.c", 515, 141],
+ ["vi/v_left.c", 284, 42],
+ ["vi/v_mark.c", 232, 47],
+ ["vi/v_match.c", 178, 75],
+ ["vi/v_paragraph.c", 341, 62],
+ ["vi/v_put.c", 141, 21],
+ ["vi/v_redraw.c", 38, 8],
+ ["vi/v_replace.c", 203, 74],
+ ["vi/v_right.c", 142, 34],
+ ["vi/v_screen.c", 64, 11],
+ ["vi/v_scroll.c", 448, 76],
+ ["vi/v_search.c", 549, 116],
+ ["vi/v_section.c", 251, 48],
+ ["vi/v_sentence.c", 356, 128],
+ ["vi/v_status.c", 39, 8],
+ ["vi/v_txt.c", 2923, 489],
+ ["vi/v_ulcase.c", 172, 53],
+ ["vi/v_undo.c", 136, 16],
+ ["vi/v_util.c", 168, 60],
+ ["vi/v_word.c", 527, 181],
+ ["vi/v_xchar.c", 104, 28],
+ ["vi/v_yank.c", 81, 15],
+ ["vi/v_z.c", 146, 51],
+ ["vi/v_zexit.c", 53, 15],
+ ["vi/vi.c", 1247, 215],
+ ["vi/vs_line.c", 539, 79],
+ ["vi/vs_msg.c", 901, 204],
+ ["vi/vs_refresh.c", 887, 190],
+ ["vi/vs_relative.c", 295, 49],
+ ["vi/vs_smap.c", 1243, 379],
+ ["vi/vs_split.c", 950, 172],
+);
+
+$viewer->accept();
+is( $viewer->{num_tus}, scalar @known_good, "translation unit count" );
+
+$viewer->cmp_static_data(\@known_good);
+
+# Check that at least something has executed.
+$viewer->cmp_dynamic_data();
+
+$exp->hard_close();
+$viewer->close();
+
+$package->clean();
diff --git a/tt/openssl.t b/tt/openssl.t
@@ -0,0 +1,718 @@
+use strict;
+use warnings;
+
+use Expect;
+use Test::More tests => 2741 ;
+use Test::Package;
+use Test::Report;
+use Test::Viewer;
+
+my $package = Test::Package->new("security/openssl");
+
+$package->depends();
+$package->clean();
+$package->build();
+
+# Verify: instrumented data structures are consistent.
+my $viewer = Test::Viewer->new();
+$ENV{LD_LIBRARY_PATH}="/usr/ports/pobj/openssl-1.0.2h/openssl-1.0.2h";
+my $exp = Expect->spawn("/usr/ports/pobj/openssl*/openssl*/apps/openssl");
+
+my @known_good = (
+ ["apps/app_rand.c", 218, 56],
+ ["apps/apps.c", 3229, 1018],
+ ["apps/asn1pars.c", 431, 189],
+ ["apps/ca.c", 2921, 1191],
+ ["apps/ciphers.c", 240, 74],
+ ["apps/cms.c", 1358, 703],
+ ["apps/crl.c", 443, 199],
+ ["apps/crl2p7.c", 335, 123],
+ ["apps/dgst.c", 615, 294],
+ ["apps/dh.c", 338, 139],
+ ["apps/dhparam.c", 547, 210],
+ ["apps/dsa.c", 375, 154],
+ ["apps/dsaparam.c", 470, 177],
+ ["apps/ec.c", 366, 163],
+ ["apps/ecparam.c", 662, 298],
+ ["apps/enc.c", 716, 339],
+ ["apps/engine.c", 513, 215],
+ ["apps/errstr.c", 122, 38],
+ ["apps/gendh.c", 249, 82],
+ ["apps/gendsa.c", 288, 128],
+ ["apps/genpkey.c", 406, 187],
+ ["apps/genrsa.c", 351, 139],
+ ["apps/nseq.c", 171, 66],
+ ["apps/ocsp.c", 1368, 606],
+ ["apps/openssl.c", 697, 195],
+ ["apps/passwd.c", 495, 170],
+ ["apps/pkcs12.c", 1059, 462],
+ ["apps/pkcs7.c", 313, 120],
+ ["apps/pkcs8.c", 403, 186],
+ ["apps/pkey.c", 252, 105],
+ ["apps/pkeyparam.c", 186, 70],
+ ["apps/pkeyutl.c", 556, 231],
+ ["apps/prime.c", 152, 66],
+ ["apps/rand.c", 230, 107],
+ ["apps/req.c", 1733, 787],
+ ["apps/rsa.c", 440, 185],
+ ["apps/rsautl.c", 376, 157],
+ ["apps/s_cb.c", 1658, 498],
+ ["apps/s_client.c", 2334, 912],
+ ["apps/s_server.c", 3506, 1322],
+ ["apps/s_socket.c", 614, 155],
+ ["apps/s_time.c", 642, 194],
+ ["apps/sess_id.c", 301, 108],
+ ["apps/smime.c", 779, 406],
+ ["apps/speed.c", 2875, 967],
+ ["apps/spkac.c", 313, 133],
+ ["apps/srp.c", 769, 264],
+ ["apps/ts.c", 1120, 442],
+ ["apps/verify.c", 353, 152],
+ ["apps/version.c", 215, 72],
+ ["apps/x509.c", 1276, 635],
+ ["crypto/aes/aes_cfb.c", 86, 3],
+ ["crypto/aes/aes_ctr.c", 64, 1],
+ ["crypto/aes/aes_ecb.c", 74, 7],
+ ["crypto/aes/aes_ige.c", 324, 56],
+ ["crypto/aes/aes_misc.c", 87, 10],
+ ["crypto/aes/aes_ofb.c", 62, 1],
+ ["crypto/aes/aes_wrap.c", 73, 9],
+ ["crypto/asn1/a_bitstr.c", 263, 57],
+ ["crypto/asn1/a_bool.c", 112, 17],
+ ["crypto/asn1/a_bytes.c", 307, 80],
+ ["crypto/asn1/a_d2i_fp.c", 285, 66],
+ ["crypto/asn1/a_digest.c", 112, 20],
+ ["crypto/asn1/a_dup.c", 118, 20],
+ ["crypto/asn1/a_enum.c", 182, 42],
+ ["crypto/asn1/a_gentm.c", 313, 67],
+ ["crypto/asn1/a_i2d_fp.c", 158, 34],
+ ["crypto/asn1/a_int.c", 465, 102],
+ ["crypto/asn1/a_mbstr.c", 424, 117],
+ ["crypto/asn1/a_object.c", 403, 108],
+ ["crypto/asn1/a_octet.c", 79, 5],
+ ["crypto/asn1/a_print.c", 130, 27],
+ ["crypto/asn1/a_set.c", 239, 50],
+ ["crypto/asn1/a_sign.c", 332, 72],
+ ["crypto/asn1/a_strex.c", 650, 217],
+ ["crypto/asn1/a_strnid.c", 314, 74],
+ ["crypto/asn1/a_time.c", 229, 72],
+ ["crypto/asn1/a_type.c", 156, 29],
+ ["crypto/asn1/a_utctm.c", 353, 79],
+ ["crypto/asn1/a_utf8.c", 238, 75],
+ ["crypto/asn1/a_verify.c", 232, 45],
+ ["crypto/asn1/ameth_lib.c", 485,77],
+ ["crypto/asn1/asn1_err.c", 355, 9],
+ ["crypto/asn1/asn1_gen.c", 832, 192],
+ ["crypto/asn1/asn1_lib.c", 480, 119],
+ ["crypto/asn1/asn1_par.c", 425, 150],
+ ["crypto/asn1/asn_mime.c", 975, 338],
+ ["crypto/asn1/asn_moid.c", 154, 59],
+ ["crypto/asn1/asn_pack.c", 208, 42],
+ ["crypto/asn1/bio_asn1.c", 483, 105],
+ ["crypto/asn1/bio_ndef.c", 249, 48],
+ ["crypto/asn1/d2i_pr.c", 176, 37],
+ ["crypto/asn1/d2i_pu.c", 137, 24],
+ ["crypto/asn1/evp_asn1.c", 196, 45],
+ ["crypto/asn1/f_enum.c", 204, 43],
+ ["crypto/asn1/f_int.c", 216, 46],
+ ["crypto/asn1/f_string.c", 210, 42],
+ ["crypto/asn1/i2d_pr.c", 79, 14],
+ ["crypto/asn1/i2d_pu.c", 94, 13],
+ ["crypto/asn1/n_pkey.c", 346, 102],
+ ["crypto/asn1/nsseq.c", 85, 8],
+ ["crypto/asn1/p5_pbe.c", 144, 36],
+ ["crypto/asn1/p5_pbev2.c", 281, 81],
+ ["crypto/asn1/p8_pkey.c", 146, 32],
+ ["crypto/asn1/t_bitst.c", 106, 28],
+ ["crypto/asn1/t_crl.c", 134, 36],
+ ["crypto/asn1/t_pkey.c", 114, 35],
+ ["crypto/asn1/t_req.c", 255, 94],
+ ["crypto/asn1/t_spki.c", 109, 25],
+ ["crypto/asn1/t_x509.c", 557, 229],
+ ["crypto/asn1/t_x509a.c", 116, 33],
+ ["crypto/asn1/tasn_dec.c", 1228,312],
+ ["crypto/asn1/tasn_enc.c", 660, 187],
+ ["crypto/asn1/tasn_fre.c", 250, 60],
+ ["crypto/asn1/tasn_new.c", 382, 98],
+ ["crypto/asn1/tasn_prn.c", 586, 222],
+ ["crypto/asn1/tasn_typ.c", 150, 5],
+ ["crypto/asn1/tasn_utl.c", 276, 53],
+ ["crypto/asn1/x_algor.c", 149, 37],
+ ["crypto/asn1/x_attrib.c", 125, 20],
+ ["crypto/asn1/x_bignum.c", 154, 29],
+ ["crypto/asn1/x_crl.c", 518, 127],
+ ["crypto/asn1/x_exten.c", 78, 5],
+ ["crypto/asn1/x_info.c", 118, 17],
+ ["crypto/asn1/x_long.c", 197, 29],
+ ["crypto/asn1/x_name.c", 539, 137],
+ ["crypto/asn1/x_nx509.c", 73, 5],
+ ["crypto/asn1/x_pkey.c", 154, 24],
+ ["crypto/asn1/x_pubkey.c", 375, 119],
+ ["crypto/asn1/x_req.c", 117, 9],
+ ["crypto/asn1/x_sig.c", 70, 5],
+ ["crypto/asn1/x_spki.c", 83, 5],
+ ["crypto/asn1/x_val.c", 70, 5],
+ ["crypto/asn1/x_x509.c", 240, 48],
+ ["crypto/asn1/x_x509a.c", 197, 59],
+ ["crypto/bf/bf_cfb64.c", 124, 7],
+ ["crypto/bf/bf_ecb.c", 101, 4],
+ ["crypto/bf/bf_enc.c", 301, 9],
+ ["crypto/bf/bf_ofb64.c", 111, 4],
+ ["crypto/bf/bf_skey.c", 126, 16],
+ ["crypto/bio/b_dump.c", 209, 57],
+ ["crypto/bio/b_print.c", 864, 231],
+ ["crypto/bio/b_sock.c", 963, 148],
+ ["crypto/bio/bf_buff.c", 518, 139],
+ ["crypto/bio/bf_nbio.c", 254, 60],
+ ["crypto/bio/bf_null.c", 190, 44],
+ ["crypto/bio/bio_cb.c", 146, 28],
+ ["crypto/bio/bio_err.c", 158, 9],
+ ["crypto/bio/bio_lib.c", 597, 178],
+ ["crypto/bio/bss_acpt.c", 464, 108],
+ ["crypto/bio/bss_bio.c", 887, 148],
+ ["crypto/bio/bss_conn.c", 613, 131],
+ ["crypto/bio/bss_dgram.c", 2082,124],
+ ["crypto/bio/bss_fd.c", 331, 46],
+ ["crypto/bio/bss_file.c", 473, 79],
+ ["crypto/bio/bss_log.c", 454, 29],
+ ["crypto/bio/bss_mem.c", 314, 55],
+ ["crypto/bio/bss_null.c", 150, 19],
+ ["crypto/bio/bss_sock.c", 288, 41],
+ ["crypto/bn/asm/x86_64-gcc.c", 639, 36],
+ ["crypto/bn/bn_add.c", 314, 62],
+ ["crypto/bn/bn_blind.c", 386, 97],
+ ["crypto/bn/bn_const.c", 548, 21],
+ ["crypto/bn/bn_ctx.c", 449, 53],
+ ["crypto/bn/bn_depr.c", 116, 17],
+ ["crypto/bn/bn_div.c", 478, 57],
+ ["crypto/bn/bn_err.c", 155, 9],
+ ["crypto/bn/bn_exp.c", 1458, 370],
+ ["crypto/bn/bn_exp2.c", 304, 77],
+ ["crypto/bn/bn_gcd.c", 703, 197],
+ ["crypto/bn/bn_gf2m.c", 1301, 244],
+ ["crypto/bn/bn_kron.c", 187, 34],
+ ["crypto/bn/bn_lib.c", 917, 176],
+ ["crypto/bn/bn_mod.c", 317, 98],
+ ["crypto/bn/bn_mont.c", 559, 97],
+ ["crypto/bn/bn_mpi.c", 129, 31],
+ ["crypto/bn/bn_mul.c", 1165, 252],
+ ["crypto/bn/bn_nist.c", 1263, 118],
+ ["crypto/bn/bn_prime.c", 516, 186],
+ ["crypto/bn/bn_print.c", 398, 121],
+ ["crypto/bn/bn_rand.c", 296, 73],
+ ["crypto/bn/bn_recp.c", 253, 81],
+ ["crypto/bn/bn_shift.c", 225, 39],
+ ["crypto/bn/bn_sqr.c", 291, 54],
+ ["crypto/bn/bn_sqrt.c", 410, 130],
+ ["crypto/bn/bn_word.c", 228, 53],
+ ["crypto/bn/bn_x931p.c", 278, 95],
+ ["crypto/bn/rsaz_exp.c", 347, 110],
+ ["crypto/buffer/buf_err.c", 98, 9],
+ ["crypto/buffer/buf_str.c", 138,28],
+ ["crypto/buffer/buffer.c", 188, 37],
+ ["crypto/camellia/cmll_cfb.c", 142, 3],
+ ["crypto/camellia/cmll_ctr.c", 65, 1],
+ ["crypto/camellia/cmll_ecb.c", 74, 2],
+ ["crypto/camellia/cmll_misc.c", 81, 13],
+ ["crypto/camellia/cmll_ofb.c", 123, 1],
+ ["crypto/camellia/cmll_utl.c", 65, 7],
+ ["crypto/cast/c_cfb64.c", 124, 8],
+ ["crypto/cast/c_ecb.c", 84, 4],
+ ["crypto/cast/c_enc.c", 201, 12],
+ ["crypto/cast/c_ofb64.c", 111, 5],
+ ["crypto/cast/c_skey.c", 176, 11],
+ ["crypto/cmac/cm_ameth.c", 97, 7],
+ ["crypto/cmac/cm_pmeth.c", 217, 73],
+ ["crypto/cmac/cmac.c", 307, 102],
+ ["crypto/cms/cms_asn1.c", 460, 55],
+ ["crypto/cms/cms_att.c", 198, 61],
+ ["crypto/cms/cms_cd.c", 135, 5],
+ ["crypto/cms/cms_dd.c", 146, 29],
+ ["crypto/cms/cms_enc.c", 261, 70],
+ ["crypto/cms/cms_env.c", 975, 259],
+ ["crypto/cms/cms_err.c", 310, 9],
+ ["crypto/cms/cms_ess.c", 396, 99],
+ ["crypto/cms/cms_io.c", 134, 31],
+ ["crypto/cms/cms_kari.c", 466, 165],
+ ["crypto/cms/cms_lib.c", 653, 219],
+ ["crypto/cms/cms_pwri.c", 436, 115],
+ ["crypto/cms/cms_sd.c", 958, 357],
+ ["crypto/cms/cms_smime.c", 837, 308],
+ ["crypto/comp/c_rle.c", 63, 15],
+ ["crypto/comp/c_zlib.c", 764, 6],
+ ["crypto/comp/comp_err.c", 99, 9],
+ ["crypto/comp/comp_lib.c", 67, 24],
+ ["crypto/conf/conf_api.c", 306, 65],
+ ["crypto/conf/conf_def.c", 707, 158],
+ ["crypto/conf/conf_err.c", 134, 9],
+ ["crypto/conf/conf_lib.c", 392, 103],
+ ["crypto/conf/conf_mall.c", 82, 8],
+ ["crypto/conf/conf_mod.c", 598, 167],
+ ["crypto/conf/conf_sap.c", 100, 10],
+ ["crypto/cpt_err.c", 105, 9],
+ ["crypto/cryptlib.c", 1031, 109],
+ ["crypto/cversion.c", 108, 16],
+ ["crypto/des/cbc_cksm.c", 104, 10],
+ ["crypto/des/cbc_enc.c", 62, 14],
+ ["crypto/des/cfb64ede.c", 250, 28],
+ ["crypto/des/cfb64enc.c", 123, 12],
+ ["crypto/des/cfb_enc.c", 200, 21],
+ ["crypto/des/des_enc.c", 390, 31],
+ ["crypto/des/des_old.c", 346, 53],
+ ["crypto/des/des_old2.c", 81, 6],
+ ["crypto/des/ecb3_enc.c", 83, 8],
+ ["crypto/des/ecb_enc.c", 125, 10],
+ ["crypto/des/ede_cbcm_enc.c", 190, 18],
+ ["crypto/des/enc_read.c", 236, 43],
+ ["crypto/des/enc_writ.c", 183, 29],
+ ["crypto/des/fcrypt.c", 168, 17],
+ ["crypto/des/fcrypt_b.c", 141, 6],
+ ["crypto/des/ofb64ede.c", 124, 9],
+ ["crypto/des/ofb64enc.c", 110, 9],
+ ["crypto/des/ofb_enc.c", 132, 14],
+ ["crypto/des/pcbc_enc.c", 116, 12],
+ ["crypto/des/qud_cksm.c", 144, 11],
+ ["crypto/des/rand_key.c", 68, 11],
+ ["crypto/des/read2pwd.c", 141, 17],
+ ["crypto/des/rpc_enc.c", 101, 10],
+ ["crypto/des/set_key.c", 448, 31],
+ ["crypto/des/str2key.c", 165, 32],
+ ["crypto/des/xcbc_enc.c", 217, 14],
+ ["crypto/dh/dh_ameth.c", 958, 348],
+ ["crypto/dh/dh_asn1.c", 190, 28],
+ ["crypto/dh/dh_check.c", 188, 64],
+ ["crypto/dh/dh_depr.c", 83, 11],
+ ["crypto/dh/dh_err.c", 127, 9],
+ ["crypto/dh/dh_gen.c", 205, 46],
+ ["crypto/dh/dh_kdf.c", 188, 56],
+ ["crypto/dh/dh_key.c", 290, 75],
+ ["crypto/dh/dh_lib.c", 264, 65],
+ ["crypto/dh/dh_pmeth.c", 552, 158],
+ ["crypto/dh/dh_prn.c", 80, 12],
+ ["crypto/dh/dh_rfc5114.c", 286, 5],
+ ["crypto/dsa/dsa_ameth.c", 679, 227],
+ ["crypto/dsa/dsa_asn1.c", 203, 41],
+ ["crypto/dsa/dsa_depr.c", 114, 11],
+ ["crypto/dsa/dsa_err.c", 134, 9],
+ ["crypto/dsa/dsa_gen.c", 749, 308],
+ ["crypto/dsa/dsa_key.c", 146, 31],
+ ["crypto/dsa/dsa_lib.c", 330, 89],
+ ["crypto/dsa/dsa_ossl.c", 423, 122],
+ ["crypto/dsa/dsa_pmeth.c", 313, 83],
+ ["crypto/dsa/dsa_prn.c", 120, 33],
+ ["crypto/dsa/dsa_sign.c", 111, 16],
+ ["crypto/dsa/dsa_vrf.c", 76, 7],
+ ["crypto/dso/dso_beos.c", 254, 5],
+ ["crypto/dso/dso_dl.c", 381, 5],
+ ["crypto/dso/dso_dlfcn.c", 466, 97],
+ ["crypto/dso/dso_err.c", 159, 9],
+ ["crypto/dso/dso_lib.c", 449, 136],
+ ["crypto/dso/dso_null.c", 93, 6],
+ ["crypto/dso/dso_openssl.c", 84,7],
+ ["crypto/dso/dso_vms.c", 548, 5],
+ ["crypto/dso/dso_win32.c", 789, 5],
+ ["crypto/ebcdic.c", 285, 0],
+ ["crypto/ec/ec2_mult.c", 464, 181],
+ ["crypto/ec/ec2_oct.c", 404, 132],
+ ["crypto/ec/ec2_smpl.c", 799, 305],
+ ["crypto/ec/ec_ameth.c", 966, 397],
+ ["crypto/ec/ec_asn1.c", 1327, 367],
+ ["crypto/ec/ec_check.c", 121, 31],
+ ["crypto/ec/ec_curve.c", 3249, 71],
+ ["crypto/ec/ec_cvt.c", 181, 29],
+ ["crypto/ec/ec_err.c", 333, 9],
+ ["crypto/ec/ec_key.c", 566, 180],
+ ["crypto/ec/ec_lib.c", 1135, 401],
+ ["crypto/ec/ec_mult.c", 914, 204],
+ ["crypto/ec/ec_oct.c", 193, 53],
+ ["crypto/ec/ec_pmeth.c", 531, 183],
+ ["crypto/ec/ec_print.c", 180, 37],
+ ["crypto/ec/eck_prn.c", 378, 167],
+ ["crypto/ec/ecp_mont.c", 309, 82],
+ ["crypto/ec/ecp_nist.c", 221, 57],
+ ["crypto/ec/ecp_nistp224.c", 1770, 0],
+ ["crypto/ec/ecp_nistp256.c", 2370, 0],
+ ["crypto/ec/ecp_nistp521.c", 2149, 0],
+ ["crypto/ec/ecp_nistputil.c", 219, 0],
+ ["crypto/ec/ecp_nistz256.c", 1522, 291],
+ ["crypto/ec/ecp_oct.c", 429, 148],
+ ["crypto/ec/ecp_smpl.c", 1419, 636],
+ ["crypto/ecdh/ech_err.c", 99, 9],
+ ["crypto/ecdh/ech_kdf.c", 112, 26],
+ ["crypto/ecdh/ech_key.c", 82, 10],
+ ["crypto/ecdh/ech_lib.c", 266, 53],
+ ["crypto/ecdh/ech_ossl.c", 219, 51],
+ ["crypto/ecdsa/ecs_asn1.c", 68, 5],
+ ["crypto/ecdsa/ecs_err.c", 108, 9],
+ ["crypto/ecdsa/ecs_lib.c", 355, 75],
+ ["crypto/ecdsa/ecs_ossl.c", 465,164],
+ ["crypto/ecdsa/ecs_sign.c", 107,25],
+ ["crypto/ecdsa/ecs_vrf.c", 113, 23],
+ ["crypto/engine/eng_all.c", 137,13],
+ ["crypto/engine/eng_cnf.c", 243,79],
+ ["crypto/engine/eng_cryptodev.c", 1536, 5],
+ ["crypto/engine/eng_ctrl.c", 386, 130],
+ ["crypto/engine/eng_dyn.c", 571,140],
+ ["crypto/engine/eng_err.c", 182,9],
+ ["crypto/engine/eng_fat.c", 182,86],
+ ["crypto/engine/eng_init.c", 158, 29],
+ ["crypto/engine/eng_lib.c", 348,68],
+ ["crypto/engine/eng_list.c", 406, 84],
+ ["crypto/engine/eng_openssl.c", 403, 67],
+ ["crypto/engine/eng_pkey.c", 187, 39],
+ ["crypto/engine/eng_rdrand.c", 150, 37],
+ ["crypto/engine/eng_table.c", 359, 60],
+ ["crypto/engine/tb_asnmth.c", 247, 56],
+ ["crypto/engine/tb_cipher.c", 144, 31],
+ ["crypto/engine/tb_dh.c", 125, 23],
+ ["crypto/engine/tb_digest.c", 144, 31],
+ ["crypto/engine/tb_dsa.c", 125, 23],
+ ["crypto/engine/tb_ecdh.c", 140,23],
+ ["crypto/engine/tb_ecdsa.c", 125, 23],
+ ["crypto/engine/tb_pkmeth.c", 167, 37],
+ ["crypto/engine/tb_rand.c", 125,23],
+ ["crypto/engine/tb_rsa.c", 125, 23],
+ ["crypto/engine/tb_store.c", 130, 17],
+ ["crypto/err/err.c", 1146, 183],
+ ["crypto/err/err_all.c", 169, 33],
+ ["crypto/err/err_prn.c", 114, 22],
+ ["crypto/evp/bio_b64.c", 574, 114],
+ ["crypto/evp/bio_enc.c", 429, 87],
+ ["crypto/evp/bio_md.c", 273, 65],
+ ["crypto/evp/bio_ok.c", 625, 140],
+ ["crypto/evp/c_all.c", 91, 9],
+ ["crypto/evp/c_allc.c", 242, 185],
+ ["crypto/evp/c_alld.c", 115, 33],
+ ["crypto/evp/digest.c", 409, 101],
+ ["crypto/evp/e_aes.c", 2025, 370],
+ ["crypto/evp/e_aes_cbc_hmac_sha1.c", 1009, 158],
+ ["crypto/evp/e_aes_cbc_hmac_sha256.c", 986, 157],
+ ["crypto/evp/e_bf.c", 88, 8],
+ ["crypto/evp/e_camellia.c", 395,35],
+ ["crypto/evp/e_cast.c", 90, 8],
+ ["crypto/evp/e_des.c", 270, 45],
+ ["crypto/evp/e_des3.c", 496, 102],
+ ["crypto/evp/e_idea.c", 120, 14],
+ ["crypto/evp/e_null.c", 101, 10],
+ ["crypto/evp/e_old.c", 165, 25],
+ ["crypto/evp/e_rc2.c", 236, 52],
+ ["crypto/evp/e_rc4.c", 134, 12],
+ ["crypto/evp/e_rc4_hmac_md5.c", 309, 65],
+ ["crypto/evp/e_rc5.c", 123, 5],
+ ["crypto/evp/e_seed.c", 83, 7],
+ ["crypto/evp/e_xcbc_d.c", 131, 15],
+ ["crypto/evp/encode.c", 461, 63],
+ ["crypto/evp/evp_acnf.c", 74, 7],
+ ["crypto/evp/evp_cnf.c", 119, 42],
+ ["crypto/evp/evp_enc.c", 667, 206],
+ ["crypto/evp/evp_err.c", 255, 9],
+ ["crypto/evp/evp_key.c", 196, 57],
+ ["crypto/evp/evp_lib.c", 392, 61],
+ ["crypto/evp/evp_pbe.c", 313, 55],
+ ["crypto/evp/evp_pkey.c", 230, 59],
+ ["crypto/evp/m_dss.c", 105, 12],
+ ["crypto/evp/m_dss1.c", 106, 12],
+ ["crypto/evp/m_ecdsa.c", 155, 12],
+ ["crypto/evp/m_md2.c", 107, 5],
+ ["crypto/evp/m_md4.c", 109, 12],
+ ["crypto/evp/m_md5.c", 108, 12],
+ ["crypto/evp/m_mdc2.c", 109, 12],
+ ["crypto/evp/m_null.c", 99, 9],
+ ["crypto/evp/m_ripemd.c", 108, 12],
+ ["crypto/evp/m_sha.c", 107, 12],
+ ["crypto/evp/m_sha1.c", 236, 32],
+ ["crypto/evp/m_sigver.c", 204, 89],
+ ["crypto/evp/m_wp.c", 49, 12],
+ ["crypto/evp/names.c", 216, 56],
+ ["crypto/evp/p5_crpt.c", 150, 47],
+ ["crypto/evp/p5_crpt2.c", 335, 84],
+ ["crypto/evp/p_dec.c", 88, 8],
+ ["crypto/evp/p_enc.c", 88, 8],
+ ["crypto/evp/p_lib.c", 457, 139],
+ ["crypto/evp/p_open.c", 130, 27],
+ ["crypto/evp/p_seal.c", 122, 33],
+ ["crypto/evp/p_sign.c", 134, 30],
+ ["crypto/evp/p_verify.c", 117, 28],
+ ["crypto/evp/pmeth_fn.c", 347, 106],
+ ["crypto/evp/pmeth_gn.c", 221, 64],
+ ["crypto/evp/pmeth_lib.c", 614, 92],
+ ["crypto/ex_data.c", 647, 86],
+ ["crypto/fips_ers.c", 8, 0],
+ ["crypto/hmac/hm_ameth.c", 168, 25],
+ ["crypto/hmac/hm_pmeth.c", 263, 72],
+ ["crypto/hmac/hmac.c", 269, 90],
+ ["crypto/idea/i_cbc.c", 172, 9],
+ ["crypto/idea/i_cfb64.c", 124, 7],
+ ["crypto/idea/i_ecb.c", 89, 4],
+ ["crypto/idea/i_ofb64.c", 111, 4],
+ ["crypto/idea/i_skey.c", 172, 15],
+ ["crypto/krb5/krb5_asn.c", 163, 5],
+ ["crypto/lhash/lh_stats.c", 247,46],
+ ["crypto/lhash/lhash.c", 459, 59],
+ ["crypto/md4/md4_dgst.c", 200, 26],
+ ["crypto/md4/md4_one.c", 97, 12],
+ ["crypto/md5/md5_dgst.c", 217, 25],
+ ["crypto/md5/md5_one.c", 97, 12],
+ ["crypto/mdc2/mdc2_one.c", 77, 12],
+ ["crypto/mdc2/mdc2dgst.c", 197, 33],
+ ["crypto/mem.c", 467, 117],
+ ["crypto/mem_dbg.c", 831, 114],
+ ["crypto/modes/cbc128.c", 208, 38],
+ ["crypto/modes/ccm128.c", 480, 92],
+ ["crypto/modes/cfb128.c", 255, 41],
+ ["crypto/modes/ctr128.c", 264, 34],
+ ["crypto/modes/cts128.c", 545, 91],
+ ["crypto/modes/gcm128.c", 2372, 146],
+ ["crypto/modes/ofb128.c", 125, 16],
+ ["crypto/modes/wrap128.c", 139, 34],
+ ["crypto/modes/xts128.c", 205, 26],
+ ["crypto/o_dir.c", 87, 24],
+ ["crypto/o_fips.c", 97, 11],
+ ["crypto/o_init.c", 84, 6],
+ ["crypto/o_str.c", 117, 29],
+ ["crypto/o_time.c", 441, 29],
+ ["crypto/objects/o_names.c", 367, 66],
+ ["crypto/objects/obj_dat.c", 802, 266],
+ ["crypto/objects/obj_err.c", 101, 9],
+ ["crypto/objects/obj_lib.c", 136, 33],
+ ["crypto/objects/obj_xref.c", 223, 42],
+ ["crypto/ocsp/ocsp_asn.c", 184, 5],
+ ["crypto/ocsp/ocsp_cl.c", 384, 103],
+ ["crypto/ocsp/ocsp_err.c", 150, 9],
+ ["crypto/ocsp/ocsp_ext.c", 567, 171],
+ ["crypto/ocsp/ocsp_ht.c", 556, 171],
+ ["crypto/ocsp/ocsp_lib.c", 285, 81],
+ ["crypto/ocsp/ocsp_prn.c", 300, 123],
+ ["crypto/ocsp/ocsp_srv.c", 272, 84],
+ ["crypto/ocsp/ocsp_vfy.c", 455, 144],
+ ["crypto/pem/pem_all.c", 428, 44],
+ ["crypto/pem/pem_err.c", 169, 9],
+ ["crypto/pem/pem_info.c", 395, 118],
+ ["crypto/pem/pem_lib.c", 866, 358],
+ ["crypto/pem/pem_oth.c", 87, 10],
+ ["crypto/pem/pem_pk8.c", 260, 76],
+ ["crypto/pem/pem_pkey.c", 294, 95],
+ ["crypto/pem/pem_seal.c", 192, 42],
+ ["crypto/pem/pem_sign.c", 102, 13],
+ ["crypto/pem/pem_x509.c", 69, 5],
+ ["crypto/pem/pem_xaux.c", 71, 5],
+ ["crypto/pem/pvkfmt.c", 889, 331],
+ ["crypto/pkcs12/p12_add.c", 259,63],
+ ["crypto/pkcs12/p12_asn.c", 126,5],
+ ["crypto/pkcs12/p12_attr.c", 148, 33],
+ ["crypto/pkcs12/p12_crpt.c", 120, 27],
+ ["crypto/pkcs12/p12_crt.c", 359,110],
+ ["crypto/pkcs12/p12_decr.c", 203, 34],
+ ["crypto/pkcs12/p12_init.c", 93,14],
+ ["crypto/pkcs12/p12_key.c", 239,65],
+ ["crypto/pkcs12/p12_kiss.c", 300, 100],
+ ["crypto/pkcs12/p12_mutl.c", 196, 67],
+ ["crypto/pkcs12/p12_npas.c", 236, 77],
+ ["crypto/pkcs12/p12_p8d.c", 71, 7],
+ ["crypto/pkcs12/p12_p8e.c", 106,20],
+ ["crypto/pkcs12/p12_utl.c", 162,32],
+ ["crypto/pkcs12/pk12err.c", 150,9],
+ ["crypto/pkcs7/bio_pk7.c", 71, 7],
+ ["crypto/pkcs7/pk7_asn1.c", 252,22],
+ ["crypto/pkcs7/pk7_attr.c", 166,52],
+ ["crypto/pkcs7/pk7_doit.c", 1296, 397],
+ ["crypto/pkcs7/pk7_lib.c", 647, 198],
+ ["crypto/pkcs7/pk7_mime.c", 97, 37],
+ ["crypto/pkcs7/pk7_smime.c", 591, 201],
+ ["crypto/pkcs7/pkcs7err.c", 208,9],
+ ["crypto/pqueue/pqueue.c", 236, 41],
+ ["crypto/rand/md_rand.c", 593, 75],
+ ["crypto/rand/rand_egd.c", 293, 39],
+ ["crypto/rand/rand_err.c", 101, 9],
+ ["crypto/rand/rand_lib.c", 301, 52],
+ ["crypto/rand/rand_nw.c", 180, 5],
+ ["crypto/rand/rand_os2.c", 171, 5],
+ ["crypto/rand/rand_unix.c", 448,11],
+ ["crypto/rand/rand_win.c", 753, 5],
+ ["crypto/rand/randfile.c", 338, 70],
+ ["crypto/rc2/rc2_cbc.c", 229, 13],
+ ["crypto/rc2/rc2_ecb.c", 93, 3],
+ ["crypto/rc2/rc2_skey.c", 158, 12],
+ ["crypto/rc2/rc2cfb64.c", 124, 7],
+ ["crypto/rc2/rc2ofb64.c", 111, 4],
+ ["crypto/rc4/rc4_utl.c", 63, 6],
+ ["crypto/ripemd/rmd_dgst.c", 335, 26],
+ ["crypto/ripemd/rmd_one.c", 78, 12],
+ ["crypto/rsa/rsa_ameth.c", 960, 412],
+ ["crypto/rsa/rsa_asn1.c", 132, 18],
+ ["crypto/rsa/rsa_chk.c", 215, 69],
+ ["crypto/rsa/rsa_crpt.c", 248, 63],
+ ["crypto/rsa/rsa_depr.c", 108, 21],
+ ["crypto/rsa/rsa_eay.c", 905, 264],
+ ["crypto/rsa/rsa_err.c", 248, 9],
+ ["crypto/rsa/rsa_gen.c", 251, 85],
+ ["crypto/rsa/rsa_lib.c", 337, 84],
+ ["crypto/rsa/rsa_none.c", 95, 16],
+ ["crypto/rsa/rsa_null.c", 156, 12],
+ ["crypto/rsa/rsa_oaep.c", 284, 109],
+ ["crypto/rsa/rsa_pk1.c", 276, 82],
+ ["crypto/rsa/rsa_pmeth.c", 785, 288],
+ ["crypto/rsa/rsa_prn.c", 93, 19],
+ ["crypto/rsa/rsa_pss.c", 291, 76],
+ ["crypto/rsa/rsa_saos.c", 149, 30],
+ ["crypto/rsa/rsa_sign.c", 302, 80],
+ ["crypto/rsa/rsa_ssl.c", 150, 34],
+ ["crypto/rsa/rsa_x931.c", 168, 31],
+ ["crypto/seed/seed.c", 712, 5],
+ ["crypto/seed/seed_cbc.c", 66, 8],
+ ["crypto/seed/seed_cfb.c", 119, 6],
+ ["crypto/seed/seed_ecb.c", 62, 8],
+ ["crypto/seed/seed_ofb.c", 118, 6],
+ ["crypto/sha/sha1_one.c", 80, 12],
+ ["crypto/sha/sha1dgst.c", 75, 25],
+ ["crypto/sha/sha256.c", 388, 43],
+ ["crypto/sha/sha512.c", 685, 51],
+ ["crypto/sha/sha_dgst.c", 75, 27],
+ ["crypto/sha/sha_one.c", 80, 12],
+ ["crypto/srp/srp_lib.c", 358, 152],
+ ["crypto/srp/srp_vfy.c", 706, 210],
+ ["crypto/stack/stack.c", 385, 109],
+ ["crypto/ts/ts_asn1.c", 327, 32],
+ ["crypto/ts/ts_conf.c", 492, 172],
+ ["crypto/ts/ts_err.c", 189, 9],
+ ["crypto/ts/ts_lib.c", 144, 41],
+ ["crypto/ts/ts_req_print.c", 105, 27],
+ ["crypto/ts/ts_req_utils.c", 233, 64],
+ ["crypto/ts/ts_rsp_print.c", 282, 102],
+ ["crypto/ts/ts_rsp_sign.c", 1021, 330],
+ ["crypto/ts/ts_rsp_utils.c", 397, 122],
+ ["crypto/ts/ts_rsp_verify.c", 738, 185],
+ ["crypto/ts/ts_verify_ctx.c", 163, 44],
+ ["crypto/txt_db/txt_db.c", 382, 100],
+ ["crypto/ui/ui_compat.c", 70, 9],
+ ["crypto/ui/ui_err.c", 112, 9],
+ ["crypto/ui/ui_lib.c", 871, 241],
+ ["crypto/ui/ui_openssl.c", 718, 113],
+ ["crypto/ui/ui_util.c", 94, 20],
+ ["crypto/uid.c", 89, 7],
+ ["crypto/whrlpool/wp_dgst.c", 258, 54],
+ ["crypto/x509/by_dir.c", 437, 91],
+ ["crypto/x509/by_file.c", 278, 79],
+ ["crypto/x509/x509_att.c", 385, 135],
+ ["crypto/x509/x509_cmp.c", 499, 166],
+ ["crypto/x509/x509_d2.c", 110, 30],
+ ["crypto/x509/x509_def.c", 93, 11],
+ ["crypto/x509/x509_err.c", 188, 9],
+ ["crypto/x509/x509_ext.c", 212, 59],
+ ["crypto/x509/x509_lu.c", 711, 191],
+ ["crypto/x509/x509_obj.c", 231, 43],
+ ["crypto/x509/x509_r2x.c", 114, 28],
+ ["crypto/x509/x509_req.c", 329, 92],
+ ["crypto/x509/x509_set.c", 153, 41],
+ ["crypto/x509/x509_trs.c", 319, 79],
+ ["crypto/x509/x509_txt.c", 212, 71],
+ ["crypto/x509/x509_v3.c", 285, 92],
+ ["crypto/x509/x509_vfy.c", 2498,757],
+ ["crypto/x509/x509_vpm.c", 663, 144],
+ ["crypto/x509/x509cset.c", 168, 38],
+ ["crypto/x509/x509name.c", 398, 133],
+ ["crypto/x509/x509rset.c", 86, 17],
+ ["crypto/x509/x509spki.c", 124, 25],
+ ["crypto/x509/x509type.c", 128, 19],
+ ["crypto/x509/x_all.c", 559, 111],
+ ["crypto/x509v3/pcy_cache.c", 270, 67],
+ ["crypto/x509v3/pcy_data.c", 130, 19],
+ ["crypto/x509v3/pcy_lib.c", 168,31],
+ ["crypto/x509v3/pcy_map.c", 131,19],
+ ["crypto/x509v3/pcy_node.c", 191, 40],
+ ["crypto/x509v3/pcy_tree.c", 832, 198],
+ ["crypto/x509v3/v3_addr.c", 1345, 5],
+ ["crypto/x509v3/v3_akey.c", 206,45],
+ ["crypto/x509v3/v3_akeya.c", 74,5],
+ ["crypto/x509v3/v3_alt.c", 610, 181],
+ ["crypto/x509v3/v3_asid.c", 897,5],
+ ["crypto/x509v3/v3_bcons.c", 133, 21],
+ ["crypto/x509v3/v3_bitst.c", 143, 20],
+ ["crypto/x509v3/v3_conf.c", 533,181],
+ ["crypto/x509v3/v3_cpols.c", 492, 131],
+ ["crypto/x509v3/v3_crld.c", 563,190],
+ ["crypto/x509v3/v3_enum.c", 101,12],
+ ["crypto/x509v3/v3_extku.c", 150, 15],
+ ["crypto/x509v3/v3_genn.c", 251,43],
+ ["crypto/x509v3/v3_ia5.c", 120, 15],
+ ["crypto/x509v3/v3_info.c", 211,33],
+ ["crypto/x509v3/v3_int.c", 93, 7],
+ ["crypto/x509v3/v3_lib.c", 364, 95],
+ ["crypto/x509v3/v3_ncons.c", 480, 130],
+ ["crypto/x509v3/v3_ocsp.c", 313,79],
+ ["crypto/x509v3/v3_pci.c", 318, 89],
+ ["crypto/x509v3/v3_pcia.c", 57, 5],
+ ["crypto/x509v3/v3_pcons.c", 140, 22],
+ ["crypto/x509v3/v3_pku.c", 115, 15],
+ ["crypto/x509v3/v3_pmaps.c", 157, 19],
+ ["crypto/x509v3/v3_prn.c", 260, 85],
+ ["crypto/x509v3/v3_purp.c", 853,254],
+ ["crypto/x509v3/v3_scts.c", 335,63],
+ ["crypto/x509v3/v3_skey.c", 151,26],
+ ["crypto/x509v3/v3_sxnet.c", 274, 60],
+ ["crypto/x509v3/v3_utl.c", 1352,472],
+ ["crypto/x509v3/v3err.c", 250, 9],
+ ["ssl/bio_ssl.c", 592, 156],
+ ["ssl/d1_both.c", 1581, 319],
+ ["ssl/d1_clnt.c", 870, 129],
+ ["ssl/d1_lib.c", 574, 154],
+ ["ssl/d1_meth.c", 91, 14],
+ ["ssl/d1_pkt.c", 1922, 333],
+ ["ssl/d1_srtp.c", 449, 71],
+ ["ssl/d1_srvr.c", 981, 141],
+ ["ssl/kssl.c", 2261, 5],
+ ["ssl/s23_clnt.c", 803, 147],
+ ["ssl/s23_lib.c", 186, 46],
+ ["ssl/s23_meth.c", 90, 15],
+ ["ssl/s23_pkt.c", 114, 17],
+ ["ssl/s23_srvr.c", 653, 107],
+ ["ssl/s2_clnt.c", 1095, 5],
+ ["ssl/s2_enc.c", 198, 5],
+ ["ssl/s2_lib.c", 571, 5],
+ ["ssl/s2_meth.c", 92, 5],
+ ["ssl/s2_pkt.c", 726, 5],
+ ["ssl/s2_srvr.c", 1172, 5],
+ ["ssl/s3_both.c", 748, 127],
+ ["ssl/s3_cbc.c", 821, 146],
+ ["ssl/s3_clnt.c", 3764, 790],
+ ["ssl/s3_enc.c", 971, 276],
+ ["ssl/s3_lib.c", 4537, 427],
+ ["ssl/s3_meth.c", 75, 9],
+ ["ssl/s3_pkt.c", 1749, 333],
+ ["ssl/s3_srvr.c", 3615, 714],
+ ["ssl/ssl_algs.c", 156, 62],
+ ["ssl/ssl_asn1.c", 637, 94],
+ ["ssl/ssl_cert.c", 1265, 360],
+ ["ssl/ssl_ciph.c", 2078, 328],
+ ["ssl/ssl_conf.c", 692, 204],
+ ["ssl/ssl_err.c", 838, 9],
+ ["ssl/ssl_err2.c", 70, 7],
+ ["ssl/ssl_lib.c", 3572, 871],
+ ["ssl/ssl_rsa.c", 1044, 314],
+ ["ssl/ssl_sess.c", 1274, 272],
+ ["ssl/ssl_stat.c", 1079, 27],
+ ["ssl/ssl_txt.c", 263, 97],
+ ["ssl/ssl_utst.c", 73, 5],
+ ["ssl/t1_clnt.c", 91, 14],
+ ["ssl/t1_enc.c", 1378, 322],
+ ["ssl/t1_ext.c", 299, 64],
+ ["ssl/t1_lib.c", 4440, 1070],
+ ["ssl/t1_meth.c", 85, 14],
+ ["ssl/t1_reneg.c", 293, 39],
+ ["ssl/t1_srvr.c", 93, 14],
+ ["ssl/t1_trce.c", 1267, 5],
+ ["ssl/tls_srp.c", 543, 176],
+);
+
+$viewer->accept();
+is( $viewer->{num_tus}, scalar @known_good, "translation unit count" );
+
+$viewer->cmp_static_data(\@known_good);
+
+# Check that at least something has executed.
+$viewer->cmp_dynamic_data();
+
+$exp->hard_close();
+$viewer->close();
+
+$package->clean();