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