citrun

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

git.sh (6439B)


      1 #!/bin/sh -eu
      2 #
      3 # Instruments git, checks logs, and makes sure the resulting program still
      4 # works.
      5 #
      6 . tt/openbsd.subr 'devel' 'git'
      7 plan 16
      8 
      9 pkg_clean
     10 
     11 pkg_extract
     12 pkg_check_deps
     13 pkg_build
     14 
     15 pkg_extract_instrumented
     16 pkg_build_instrumented
     17 
     18 pkg_scrub_logs $workdist/config.log $workdist_inst/config.log
     19 pkg_diff_build_logs
     20 
     21 # Writes too many shared memory files and quickly fills /tmp.
     22 #pkg_test
     23 
     24 # Last known good instrumentation report.
     25 cat <<EOF > $workdir_inst/check.good
     26 Summary:
     27        383 Source files used as input
     28         84 Application link commands
     29        374 Modified source compiles successful
     30          9 Modified source compiles failed
     31 
     32 Totals:
     33     185771 Lines of source code
     34       6011 Function definitions
     35      16469 If statements
     36       1504 For loops
     37       1021 While loops
     38         71 Do while loops
     39        272 Switch statements
     40       6822 Return statement values
     41      30611 Call expressions
     42     528576 Total statements
     43      34627 Binary operators
     44       1531 Errors rewriting source
     45 EOF
     46 pkg_citrun_check
     47 
     48 cat <<EOF > $workdir_inst/tu_list.good
     49 abspath.c 181
     50 advice.c 120
     51 alias.c 78
     52 alloc.c 116
     53 archive-tar.c 454
     54 archive-zip.c 586
     55 archive.c 561
     56 argv-array.c 88
     57 attr.c 826
     58 base85.c 133
     59 bisect.c 1033
     60 blob.c 19
     61 branch.c 372
     62 builtin/add.c 444
     63 builtin/am.c 2429
     64 builtin/annotate.c 23
     65 builtin/apply.c 4666
     66 builtin/archive.c 110
     67 builtin/bisect--helper.c 32
     68 builtin/blame.c 2884
     69 builtin/branch.c 876
     70 builtin/bundle.c 74
     71 builtin/cat-file.c 541
     72 builtin/check-attr.c 187
     73 builtin/check-ignore.c 188
     74 builtin/check-mailmap.c 67
     75 builtin/check-ref-format.c 89
     76 builtin/checkout-index.c 258
     77 builtin/checkout.c 1286
     78 builtin/clean.c 1001
     79 builtin/clone.c 1114
     80 builtin/column.c 60
     81 builtin/commit-tree.c 130
     82 builtin/commit.c 1830
     83 builtin/config.c 723
     84 builtin/count-objects.c 158
     85 builtin/credential.c 32
     86 builtin/describe.c 483
     87 builtin/diff-files.c 72
     88 builtin/diff-index.c 58
     89 builtin/diff-tree.c 189
     90 builtin/diff.c 474
     91 builtin/fast-export.c 1074
     92 builtin/fetch-pack.c 222
     93 builtin/fetch.c 1243
     94 builtin/fmt-merge-msg.c 715
     95 builtin/for-each-ref.c 82
     96 builtin/fsck.c 695
     97 builtin/gc.c 446
     98 builtin/get-tar-commit-id.c 42
     99 builtin/grep.c 928
    100 builtin/hash-object.c 156
    101 builtin/help.c 501
    102 builtin/index-pack.c 1793
    103 builtin/init-db.c 580
    104 builtin/interpret-trailers.c 50
    105 builtin/log.c 1893
    106 builtin/ls-files.c 568
    107 builtin/ls-remote.c 115
    108 builtin/ls-tree.c 190
    109 builtin/mailinfo.c 62
    110 builtin/mailsplit.c 342
    111 builtin/merge-base.c 260
    112 builtin/merge-file.c 112
    113 builtin/merge-index.c 111
    114 builtin/merge-ours.c 35
    115 builtin/merge-recursive.c 81
    116 builtin/merge-tree.c 380
    117 builtin/merge.c 1640
    118 builtin/mktag.c 175
    119 builtin/mktree.c 192
    120 builtin/mv.c 287
    121 builtin/name-rev.c 414
    122 builtin/notes.c 1022
    123 builtin/pack-objects.c 2780
    124 builtin/pack-redundant.c 696
    125 builtin/pack-refs.c 22
    126 builtin/patch-id.c 199
    127 builtin/prune-packed.c 68
    128 builtin/prune.c 158
    129 builtin/pull.c 929
    130 builtin/push.c 572
    131 builtin/read-tree.c 250
    132 builtin/receive-pack.c 1793
    133 builtin/reflog.c 751
    134 builtin/remote-ext.c 200
    135 builtin/remote-fd.c 80
    136 builtin/remote.c 1634
    137 builtin/repack.c 415
    138 builtin/replace.c 500
    139 builtin/rerere.c 117
    140 builtin/reset.c 390
    141 builtin/rev-list.c 404
    142 builtin/rev-parse.c 877
    143 builtin/revert.c 215
    144 builtin/rm.c 435
    145 builtin/send-pack.c 301
    146 builtin/shortlog.c 342
    147 builtin/show-branch.c 952
    148 builtin/show-ref.c 229
    149 builtin/stripspace.c 62
    150 builtin/submodule--helper.c 875
    151 builtin/symbolic-ref.c 77
    152 builtin/tag.c 498
    153 builtin/unpack-file.c 37
    154 builtin/unpack-objects.c 581
    155 builtin/update-index.c 1166
    156 builtin/update-ref.c 444
    157 builtin/update-server-info.c 26
    158 builtin/upload-archive.c 128
    159 builtin/var.c 94
    160 builtin/verify-commit.c 95
    161 builtin/verify-pack.c 83
    162 builtin/verify-tag.c 59
    163 builtin/worktree.c 478
    164 builtin/write-tree.c 57
    165 bulk-checkin.c 278
    166 bundle.c 494
    167 cache-tree.c 724
    168 color.c 396
    169 column.c 416
    170 combine-diff.c 1544
    171 commit.c 1697
    172 compat/obstack.c 414
    173 compat/terminal.c 148
    174 config.c 2452
    175 connect.c 834
    176 connected.c 117
    177 convert.c 1414
    178 copy.c 68
    179 credential.c 374
    180 csum-file.c 187
    181 ctype.c 67
    182 date.c 1189
    183 decorate.c 86
    184 diff-delta.c 490
    185 diff-lib.c 536
    186 diff-no-index.c 304
    187 diff.c 5157
    188 diffcore-break.c 305
    189 diffcore-delta.c 236
    190 diffcore-order.c 132
    191 diffcore-pickaxe.c 239
    192 diffcore-rename.c 680
    193 dir.c 2708
    194 editor.c 69
    195 entry.c 293
    196 environment.c 348
    197 ewah/bitmap.c 214
    198 ewah/ewah_bitmap.c 711
    199 ewah/ewah_io.c 210
    200 ewah/ewah_rlw.c 116
    201 exec_cmd.c 154
    202 fetch-pack.c 1062
    203 fsck.c 830
    204 gettext.c 180
    205 git.c 719
    206 gpg-interface.c 261
    207 graph.c 1332
    208 grep.c 1798
    209 hashmap.c 266
    210 help.c 474
    211 hex.c 91
    212 ident.c 518
    213 kwset.c 772
    214 levenshtein.c 87
    215 line-log.c 1254
    216 line-range.c 291
    217 list-objects.c 235
    218 ll-merge.c 413
    219 lockfile.c 208
    220 log-tree.c 888
    221 mailinfo.c 1038
    222 mailmap.c 365
    223 match-trees.c 345
    224 merge-blobs.c 93
    225 merge-recursive.c 2109
    226 merge.c 97
    227 mergesort.c 74
    228 name-hash.c 239
    229 notes-cache.c 96
    230 notes-merge.c 752
    231 notes-utils.c 177
    232 notes.c 1319
    233 object.c 428
    234 pack-bitmap-write.c 549
    235 pack-bitmap.c 1069
    236 pack-check.c 182
    237 pack-objects.c 110
    238 pack-revindex.c 201
    239 pack-write.c 372
    240 pager.c 179
    241 parse-options-cb.c 223
    242 parse-options.c 677
    243 patch-delta.c 87
    244 patch-ids.c 106
    245 path.c 1249
    246 pathspec.c 497
    247 pkt-line.c 251
    248 preload-index.c 114
    249 pretty.c 1818
    250 prio-queue.c 91
    251 progress.c 268
    252 prompt.c 76
    253 quote.c 456
    254 reachable.c 207
    255 read-cache.c 2327
    256 ref-filter.c 1713
    257 reflog-walk.c 339
    258 refs.c 1232
    259 refs/files-backend.c 3433
    260 remote.c 2367
    261 replace_object.c 123
    262 rerere.c 1252
    263 resolve-undo.c 193
    264 revision.c 3316
    265 run-command.c 1197
    266 send-pack.c 582
    267 sequencer.c 1163
    268 server-info.c 286
    269 setup.c 1059
    270 sha1-array.c 60
    271 sha1-lookup.c 318
    272 sha1_file.c 3647
    273 sha1_name.c 1515
    274 shallow.c 665
    275 sideband.c 153
    276 sigchain.c 62
    277 split-index.c 322
    278 strbuf.c 866
    279 streaming.c 554
    280 string-list.c 311
    281 submodule-config.c 508
    282 submodule.c 1164
    283 symlinks.c 324
    284 tag.c 196
    285 tempfile.c 306
    286 thread-utils.c 78
    287 trace.c 435
    288 trailer.c 916
    289 transport-helper.c 1388
    290 transport.c 1119
    291 tree-diff.c 708
    292 tree-walk.c 1063
    293 tree.c 254
    294 unpack-trees.c 1961
    295 url.c 132
    296 urlmatch.c 539
    297 usage.c 191
    298 userdiff.c 290
    299 utf8.c 668
    300 varint.c 31
    301 version.c 39
    302 versioncmp.c 144
    303 wildmatch.c 280
    304 worktree.c 306
    305 wrapper.c 699
    306 write_or_die.c 108
    307 ws.c 396
    308 wt-status.c 1756
    309 xdiff-interface.c 323
    310 xdiff/xdiffi.c 645
    311 xdiff/xemit.c 268
    312 xdiff/xhistogram.c 364
    313 xdiff/xmerge.c 687
    314 xdiff/xpatience.c 359
    315 xdiff/xprepare.c 484
    316 xdiff/xutils.c 496
    317 zlib.c 274
    318 EOF
    319 
    320 $workdist_inst/git --help > /dev/null
    321 ok 'is instrumented git exit code 0' test $? -eq 0
    322 
    323 ok "is write_tus.pl exit code 0" \
    324 	tt/write_tus.pl $workdir_inst/tu_list.out ${CITRUN_PROCDIR}git_*
    325 ok "translation unit manifest" \
    326 	diff -u $workdir_inst/tu_list.good $workdir_inst/tu_list.out
    327 
    328 pkg_clean