citrun

watch C/C++ source code execute
Log | Files | Refs | LICENSE

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:
MTest/Package.pm | 108++++++++++++++------------------------------------------------------------------
Mtt/mutt.t | 218++++++++++++++++++++++++++++++++++++++++---------------------------------------
Att/nvi.t | 147+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Att/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();