{"thread":{"id":"52835","subject":"Git Test Coverage Report (Feb. 18, 2020)","startedAt":"2020-02-18T12:46:11Z","lastAt":"2020-02-20T13:52:56Z","messageCount":4,"participants":["Derrick Stolee","Taylor Blau","Johannes Schindelin"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"391982","messageId":"2c97befe-9be8-9946-b643-91656fa3dcd8@gmail.com","threadId":"52835","inReplyTo":null,"subject":"Git Test Coverage Report (Feb. 18, 2020)","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2020-02-18T12:46:03Z","receivedAt":"2020-02-18T12:46:11Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"Here is today's test coverage report.\n\nThanks,\n-Stolee\n\n[1] https://derrickstolee.github.io/git-test-coverage/reports/2020-02-18.htm\n[2] https://derrickstolee.github.io/git-test-coverage/reports/2020-02-18.txt\n[3] https://derrickstolee.github.io/git-test-coverage/reports/2020-02-18-commits.txt\n\n---\n\npu\t0597994ff847422e35ac5b51151a6efd4d47429c\njch\t94d54fbb911ec1d6ebb4ee0e0000ac8c7c139fce\nnext\t3043dbfab8cba19275c80425d1436651d4be4a4a\nmaster\t51ebf55b9309824346a6589c9f3b130c6f371b8f\nmaster@{1}\tde93cc14ab7e8db7645d8dbe4fd2603f76d5851f\n\n\nUncovered code in 'pu' not in 'jch'\n--------------------------------------------------------\n\nCommits introducing uncovered code:\nDenton Liu\t448bea61 sequencer: make apply_rebase() accept a path\nsequencer.c\n448bea61 5143) apply_autostash(rebase_path_autostash());\n\nDenton Liu\tfa717471 sequencer: use file strbuf for read_oneliner()\nsequencer.c\nfa717471 438) goto done;\nfa717471 444) goto done;\n\nDenton Liu\tb3137f2e reset: extract reset_head() from rebase\nreset.c\nb3137f2e 37) ret = -1;\nb3137f2e 38) goto leave_reset_head;\nb3137f2e 43) goto leave_reset_head;\nb3137f2e 65) goto leave_reset_head;\nb3137f2e 71) goto leave_reset_head;\nb3137f2e 76) goto leave_reset_head;\nb3137f2e 80) ret = -1;\nb3137f2e 81) goto leave_reset_head;\nb3137f2e 89) goto leave_reset_head;\nb3137f2e 108) } else if (old_orig)\nb3137f2e 109) delete_ref(NULL, \"ORIG_HEAD\", old_orig, 0);\n\nDenton Liu\te71223c6 rebase: use apply_autostash() from sequencer.c\nbuiltin/rebase.c\ne71223c6 1028) apply_autostash(state_dir_path(\"autostash\", opts));\n\nDenton Liu\t06ebea5c rebase: generify reset_head()\nbuiltin/rebase.c\n06ebea5c 868) reset_head(the_repository, &opts->orig_head, \"checkout\",\n06ebea5c 869)    opts->head_name, 0,\n\nDenton Liu\t186dbeed rebase: use read_oneliner()\nbuiltin/rebase.c\n186dbeed 618) } else if (!read_oneliner(&buf, state_dir_path(\"head\", opts), 0, 1))\n\nDerrick Stolee\t3d2f906e diff: halt tree-diff early after max_changes\ntree-diff.c\n3d2f906e 438) break;\n\nDerrick Stolee\t92667ee9 commit-graph: examine commits by generation number\ncommit-graph.c\n92667ee9 89) else if (a->date > b->date)\n92667ee9 90) return 1;\n92667ee9 91) return 0;\n92667ee9 1296) QSORT(sorted_by_pos, ctx->commits.nr, commit_pos_cmp);\n\nEmily Shaffer\t5c29e1d9 bugreport: gather git version and build info\nhelp.c\n5c29e1d9 641) strbuf_addstr(buf, \"no commit associated with this build\\n\");\n\nEmily Shaffer\tcdf7f95b bugreport: add tool to generate debugging info\nbugreport.c\ncdf7f95b 406) strbuf_release(&report_path);\n\nEmily Shaffer\t6bf7dba7 help: move list_config_help to builtin/help\nbuiltin/help.c\n6bf7dba7 123) puts(var);\n6bf7dba7 124) continue;\n\nEmily Shaffer\t262042dc bugreport: add git-remote-https version\nbugreport.c\n262042dc 23)     strbuf_addstr(version_info, \"'git-remote-https --build-info' not supported\\n\");\n\nEmily Shaffer\t211dfeff bugreport: add uname info\nbugreport.c\n211dfeff 39) strbuf_addf(sys_info, \"uname() failed with code %d\\n\", errno);\n\nEmily Shaffer\tc86be76b bugreport: add config values from safelist\nbugreport.c\nc86be76b 73) strbuf_addf(config_info, \"%s:\\n\", bugreport_config_safelist[idx]);\nc86be76b 74) for_each_string_list_item(it, list) {\nc86be76b 75) kv_info = it->util;\nc86be76b 76) strbuf_addf(config_info, \"  %s (%s)\\n\", it->string,\nc86be76b 77)     kv_info ? config_scope_name(kv_info->scope)\n\nEmily Shaffer\tc61e416d bugreport: list contents of $OBJDIR/info\nbugreport.c\nc61e416d 216) return;\nc61e416d 225) strbuf_addbuf(contents, dirpath);\nc61e416d 226) strbuf_addstr(contents, d->d_name);\nc61e416d 227) strbuf_complete_line(contents);\nc61e416d 229) if (d->d_type == DT_DIR) {\nc61e416d 230) strbuf_addstr(dirpath, d->d_name);\nc61e416d 231) list_contents_of_dir_recursively(contents, dirpath);\nc61e416d 233) strbuf_setlen(dirpath, path_len);\n\nEmily Shaffer\te5daadc0 bugreport: add packed object summary\nbugreport.c\ne5daadc0 193) pack_count++;\ne5daadc0 198) open_pack_index(pack);\ne5daadc0 199) object_count += pack->num_objects;\n\nEmily Shaffer\t82e7f0b6 bugreport: count loose objects\nbugreport.c\n82e7f0b6 132) static int loose_object_cb(const struct object_id *oid, const char *path,\n82e7f0b6 134) int *loose_object_count = data;\n82e7f0b6 136) if (loose_object_count) {\n82e7f0b6 137) (*loose_object_count)++;\n82e7f0b6 138) return 0;\n82e7f0b6 141) return 1;\n\nEmily Shaffer\t0ae9bf16 bugreport: collect list of populated hooks\nbugreport.c\n0ae9bf16 126) strbuf_addstr(hook_info, iter->string);\n0ae9bf16 127) strbuf_complete_line(hook_info);\n\nEmily Shaffer\t5538f178 bugreport: summarize contents of alternates file\nbugreport.c\n5538f178 282) while (strbuf_getline(&alternate, file) != EOF) {\n5538f178 283) if (!access(alternate.buf, F_OK))\n5538f178 284) exists++;\n5538f178 286) broken++;\n5538f178 289) strbuf_addf(alternates_info,\n5538f178 295) fclose(file);\n5538f178 296) strbuf_release(&alternate);\n5538f178 297) strbuf_release(&alternates_path);\n\nGarima Singh\t282c08a9 commit-graph: write Bloom filters to commit graph file\ncommit-graph.c\n282c08a9 328) chunk_repeated = 1;\n282c08a9 335) chunk_repeated = 1;\n282c08a9 342) break;\n282c08a9 371) graph->chunk_bloom_indexes = NULL;\n282c08a9 372) graph->chunk_bloom_data = NULL;\n282c08a9 373) graph->bloom_filter_settings = NULL;\n282c08a9 1087) progress = start_delayed_progress(\n282c08a9 1089) ctx->commits.nr);\n282c08a9 1112) progress = start_delayed_progress(\n282c08a9 1114) ctx->commits.nr);\n282c08a9 1288) progress = start_delayed_progress(\n\nGarima Singh\tb6d925e7 bloom: core Bloom filter implementation for changed paths\nbloom.c\nb6d925e7 247) for (i = 0; i < diff_queued_diff.nr; i++)\nb6d925e7 248) diff_free_filepair(diff_queued_diff.queue[i]);\nb6d925e7 249) filter->data = NULL;\nb6d925e7 250) filter->len = 0;\nb6d925e7 267) return -1;\n\nt/helper/test-bloom.c\nb6d925e7 20) printf(\"No filter.\\n\");\nb6d925e7 21) return;\n\nGarima Singh\t6bdbf235 commit-graph: compute Bloom filters for changed paths\ncommit-graph.c\n6bdbf235 1290) ctx->commits.nr);\n\nHeba Waly\t51b9d1b6 advice: refactor advise API\nadvice.c\n51b9d1b6 170) int advice_push_update_rejected_enabled(void)\n51b9d1b6 172) return advice_enabled(PUSH_UPDATE_REJECTED) ||\n51b9d1b6 173)        advice_enabled(PUSH_UPDATE_REJECTED_ALIAS);\n\nJeff King\tdc9f0216 commit-graph: examine changed-path objects in pack order\ncommit-graph.c\ndc9f0216 62) return; /* should never happen, but be lenient */\ndc9f0216 67) static int commit_pos_cmp(const void *va, const void *vb)\ndc9f0216 69) const struct commit *a = *(const struct commit **)va;\ndc9f0216 70) const struct commit *b = *(const struct commit **)vb;\ndc9f0216 71) return commit_pos_at(&commit_pos, a) -\ndc9f0216 72)        commit_pos_at(&commit_pos, b);\n\nPhillip Wood\t430b75f7 commit: give correct advice for empty commit during a rebase\nsequencer.c\n430b75f7 1474)     return -1;\n\nPranit Bauva\ta287a32f run-command: make `exists_in_PATH()` non-static\nrun-command.c\na287a32f 213) int exists_in_PATH(const char *file)\n\nPranit Bauva\teb337930 bisect: libify `bisect_next_all`\nbisect.c\neb337930 1024) return BISECT_FAILED;\n\nPranit Bauva\tf9b21d38 bisect: libify `check_good_are_ancestors_of_bad` and its dependents\nbisect.c\nf9b21d38 920) warning_errno(_(\"could not create file '%s'\"),\n\nTanushree Tumane\t670e173f bisect--helper: introduce new `decide_next()` function\nbuiltin/bisect--helper.c\n670e173f 320) return -1;\n670e173f 321) return 0;\n\nTanushree Tumane\t14d137cf bisect--helper: change `retval` to `res`\nbuiltin/bisect--helper.c\n14d137cf 227) res = -1;\n14d137cf 233) res = error_errno(_(\"couldn't open the file '%s'\"), git_path_bisect_log());\n14d137cf 410) res = -1;\n14d137cf 416) res = -1;\n14d137cf 582) res = -1;\n14d137cf 594) res = -1;\n14d137cf 606) res = -1;\n\nTaylor Blau\t5d5916fd builtin/commit-graph.c: support '--split[=<strategy>]'\ncommit-graph.c\n5d5916fd 1751) break;\n\nTaylor Blau\ta599e2c9 builtin/commit-graph.c: introduce '--input=<source>'\nbuiltin/commit-graph.c\na599e2c9 75) *to = 0;\na599e2c9 76) return 0;\na599e2c9 86) *to |= COMMIT_GRAPH_INPUT_APPEND;\n\n\n\nUncovered code in 'jch' not in 'next'\n--------------------------------------------------------\n\nCommits introducing uncovered code:\nElijah Newren\t8a997ed1 rebase, sequencer: remove the broken GIT_QUIET handling\nbuiltin/rebase.c\n8a997ed1 695) write_file(state_dir_path(\"quiet\", opts), \"%s\", \"\");\n\nElijah Newren\te98c4269 rebase (interactive-backend): fix handling of commits that become empty\nsequencer.c\ne98c4269 2523) opts->keep_redundant_commits = 1;\n\nElijah Newren\t10cdb9f3 rebase: rename the two primary rebase backends\nbuiltin/rebase.c\n10cdb9f3 1664) if (is_merge(&options))\n\nElijah Newren\td48e5e21 rebase (interactive-backend): make --keep-empty the default\nsequencer.c\nd48e5e21 1529) return originally_empty;\n\n\n\nUncovered code in 'next' not in 'master'\n--------------------------------------------------------\n\nCommits introducing uncovered code:\nBert Wesarg\t1a83068c remote: clean-up by returning early to avoid one indentation\nbuiltin/remote.c\n1a83068c 287) return 0;\n\nBert Wesarg\tf2a2327a config: provide access to the current line number\nconfig.c\nf2a2327a 3346) return cf->linenr;\n\nBert Wesarg\t88f8576e pull --rebase/remote rename: document and honor single-letter abbreviations rebase types\nrebase.c\n88f8576e 26) return REBASE_MERGES;\n\nJeff King\t792f8119 rev-list: factor out bitmap-optimized routines\nbuiltin/rev-list.c\n792f8119 394) return -1;\n792f8119 437) return -1;\n\nJeff King\t608d9c93 rev-list: allow bitmaps when counting objects\nbuiltin/rev-list.c\n608d9c93 403) return -1;\n\nJeff King\t4eb707eb rev-list: allow commit-only bitmap traversals\npack-bitmap.c\n4eb707eb 626)     (obj->type == OBJ_TAG && !revs->tag_objects))\n4eb707eb 627) continue;\n\nJeff King\t4f3bd560 pack-bitmap: implement BLOB_NONE filtering\npack-bitmap.c\n4f3bd560 732) continue;\n\nJeff King\t84243da1 pack-bitmap: implement BLOB_LIMIT filtering\npack-bitmap.c\n84243da1 799) nth_packed_object_oid(&oid, pack, entry->nr);\n\n\n\nUncovered code in 'master' not in 'master@{1}'\n--------------------------------------------------------\n\nCommits introducing uncovered code:\nAlban Gruin\t5a5445d8 rebase-interactive: warn if commit is dropped with `rebase --edit-todo'\nsequencer.c\n5a5445d8 4235) unlink(rebase_path_dropped());\n\nAlban Gruin\t1da5874c sequencer: move check_todo_list_from_file() to rebase-interactive.c\nrebase-interactive.c\n1da5874c 239) goto out;\n1da5874c 244) goto out;\n1da5874c 251) fprintf(stderr, _(edit_todo_list_advice));\n\nJeff King\t92fb0db9 pack-objects: add checks for duplicate objects\nbuiltin/pack-objects.c\n92fb0db9 1133) return 1;\n92fb0db9 2690) (reuse_packfile_bitmap &&\n92fb0db9 2691)  bitmap_walk_contains(bitmap_git, reuse_packfile_bitmap, oid));\n\nJeff King\te704fc79 pack-objects: introduce pack.allowPackReuse\nbuiltin/pack-objects.c\ne704fc79 2843) allow_pack_reuse = git_config_bool(k, v);\ne704fc79 2844) return 0;\n\nJeff King\tda806352 diff: move diff.wsErrorHighlight to \"basic\" config\ndiff.c\nda806352 448) return -1;\n\nJeff King\tbb514de3 pack-objects: improve partial packfile reuse\npack-bitmap.c\nbb514de3 808) return;\nbb514de3 811) return;\nbb514de3 823) return;\nbb514de3 861) i = bitmap_git->pack->num_objects / BITS_IN_EWORD;\n\nJonathan Tan\t50033772 connected: verify promisor-ness of partial clone\nconnected.c\n50033772 70) continue;\n\nKevin Willford\t8da2c576 fsmonitor: handle version 2 of the hooks that will use opaque token\nfsmonitor.c\n8da2c576 36) if (hook_version == HOOK_INTERFACE_VERSION1 ||\n8da2c576 37)     hook_version == HOOK_INTERFACE_VERSION2)\n8da2c576 38) return hook_version;\n8da2c576 199) strbuf_addf(&last_update_token, \"%\"PRIu64\"\", last_update);\n\nKevin Willford\t56c69100 fsmonitor: change last update timestamp on the index_state to opaque token\nfsmonitor.c\n56c69100 62) timestamp = get_be64(index);\n56c69100 63) strbuf_addf(&last_update, \"%\"PRIu64\"\", timestamp);\n56c69100 64) index += sizeof(uint64_t);\n\nMatheus Tavares\t31877c9a object-store: allow threaded access to object reading\npackfile.c\n31877c9a 1472) return;\n\nsha1-file.c\n31877c9a 1431) return;\n31877c9a 1440) return;\n\nMatheus Tavares\tc8123e72 streaming: allow open_istream() to handle any repo\nstreaming.c\nc8123e72 154) if (open_istream_incore(st, r, &oi, real, type)) {\n\nMatthew Rogers\t9a83d088 submodule-config: add subomdule config scope\nconfig.c\n9a83d088 3315) return \"submodule\";\n\nMatthew Rogers\t6dc905d9 config: split repo scope to local and worktree\nconfig.c\n6dc905d9 3311) return \"worktree\";\n\nMatthew Rogers\ta5cb4204 config: make scope_name non-static and rename it\nconfig.c\na5cb4204 3305) return \"system\";\na5cb4204 3317) return \"unknown\";\n\nMatthew Rogers\te37efa40 config: teach git_config_source to remember its scope\nbuiltin/config.c\ne37efa40 670) given_config_source.scope = CONFIG_SCOPE_SYSTEM;\n\nRené Scharfe\t2d539754 name-rev: release unused name strings\nbuiltin/name-rev.c\n2d539754 102) free(name->tip_name);\n\nRené Scharfe\ta91cc7fa strbuf: add and use strbuf_insertstr()\nnotes.c\na91cc7fa 1337) strbuf_insertstr(sb, 0, \"refs/\");\n\n\n\n"},{"id":"391983","messageId":"d3635fdf-1948-5d58-a1bf-abd5f56b18d1@gmail.com","threadId":"52835","inReplyTo":"2c97befe-9be8-9946-b643-91656fa3dcd8@gmail.com","subject":"Re: Git Test Coverage Report (Feb. 18, 2020)","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2020-02-18T12:55:23Z","receivedAt":"2020-02-18T12:55:26Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"Here are some notes that apply to the changed-path Bloom filter series [1].\n\n[1] https://lore.kernel.org/git/pull.497.v2.git.1580943390.gitgitgadget@gmail.com/\n\nOn 2/18/2020 7:46 AM, Derrick Stolee wrote:\n> Derrick Stolee\t92667ee9 commit-graph: examine commits by generation number\n> commit-graph.c\n> 92667ee9 89) else if (a->date > b->date)\n> 92667ee9 90) return 1;\n> 92667ee9 91) return 0;\n> 92667ee9 1296) QSORT(sorted_by_pos, ctx->commits.nr, commit_pos_cmp);\n\nThis QSORT not being covered means we are not testing the --changed-paths\noption with an input option that scans pack-files, and instead always using\n--reachable.\n\nGarima: could we update Peff's commit that originally introduced this QSORT\nto have such a test? Thanks!\n\n> Garima Singh\t282c08a9 commit-graph: write Bloom filters to commit graph file\n> commit-graph.c\n> 282c08a9 328) chunk_repeated = 1;\n> 282c08a9 335) chunk_repeated = 1;\n> 282c08a9 342) break;\n> 282c08a9 371) graph->chunk_bloom_indexes = NULL;\n> 282c08a9 372) graph->chunk_bloom_data = NULL;\n> 282c08a9 373) graph->bloom_filter_settings = NULL;\n\nI wouldn't worry about testing these error conditions.\n\n> 282c08a9 1087) progress = start_delayed_progress(\n> 282c08a9 1089) ctx->commits.nr);\n> 282c08a9 1112) progress = start_delayed_progress(\n> 282c08a9 1114) ctx->commits.nr);\n> 282c08a9 1288) progress = start_delayed_progress(\n\nBut, could we have a test that verifies the progress is output for these\nsteps? Use GIT_PROGRESS_DELAY=0 to guarantee that the strings are output.\n\n> Garima Singh\tb6d925e7 bloom: core Bloom filter implementation for changed paths\n> bloom.c\n> b6d925e7 247) for (i = 0; i < diff_queued_diff.nr; i++)\n> b6d925e7 248) diff_free_filepair(diff_queued_diff.queue[i]);\n> b6d925e7 249) filter->data = NULL;\n> b6d925e7 250) filter->len = 0;\n\nThese are a result of the case of a commit having over 512 changes. I think\nthere is a follow-up item to make this 512 value be configurable, and when\nwe do that, then we should add a test that covers this case, but with a\nsmaller configured value.\n\n> t/helper/test-bloom.c\n> b6d925e7 20) printf(\"No filter.\\n\");\n> b6d925e7 21) return;\n\nThis could be covered similarly with such a test.\n \n> Jeff King\tdc9f0216 commit-graph: examine changed-path objects in pack order\n> commit-graph.c\n> dc9f0216 62) return; /* should never happen, but be lenient */\n> dc9f0216 67) static int commit_pos_cmp(const void *va, const void *vb)\n> dc9f0216 69) const struct commit *a = *(const struct commit **)va;\n> dc9f0216 70) const struct commit *b = *(const struct commit **)vb;\n> dc9f0216 71) return commit_pos_at(&commit_pos, a) -\n> dc9f0216 72)        commit_pos_at(&commit_pos, b);\n\nAs mentioned earlier, we just don't cover --changed-paths along with\nscanning pack-files, but we should.\n\nThanks,\n-Stolee\n\n"},{"id":"392108","messageId":"20200219204430.GB5101@syl.local","threadId":"52835","inReplyTo":"2c97befe-9be8-9946-b643-91656fa3dcd8@gmail.com","subject":"Re: Git Test Coverage Report (Feb. 18, 2020)","fromName":"Taylor Blau","fromEmail":"me@ttaylorr.com","sentAt":"2020-02-19T20:44:30Z","receivedAt":"2020-02-19T20:44:35Z","isPatch":false,"sender":{"key":"me@ttaylorr.com","avatar":"https://avatars.githubusercontent.com/u/301000140?v=4"},"body":"Hi Stolee,\n\nThanks as always for collecting these. I always finds these emails very\nhelpful.\n\nOn Tue, Feb 18, 2020 at 07:46:03AM -0500, Derrick Stolee wrote:\n\n> Taylor Blau\t5d5916fd builtin/commit-graph.c: support '--split[=<strategy>]'\n> commit-graph.c\n> 5d5916fd 1751) break;\n\nThis 'break' line only changed indentation, so I don't think that this\nis new 'uncovered' code in my series, only that it got a little bit\nharder to trigger.\n\nIt is interesting that this is uncovered, but I don't think that there's\na huge sense of urgency to add tests to cover it.\n\n> Taylor Blau\ta599e2c9 builtin/commit-graph.c: introduce '--input=<source>'\n> builtin/commit-graph.c\n> a599e2c9 75) *to = 0;\n> a599e2c9 76) return 0;\n\nThese seem more interesting to cover, but only marginally so.\n\n> a599e2c9 86) *to |= COMMIT_GRAPH_INPUT_APPEND;\n\nThis one I think we could ignore, though, since the same behavior is\ntriggered by simply '--append' instead of '--input=append'. We decided\nin [1] to\n\nThanks,\nTaylor\n\n[1]: 846706e9-efe2-448d-67a3-a96638e9bcbc@gmail.com\n"},{"id":"392166","messageId":"nycvar.QRO.7.76.6.2002201448200.46@tvgsbejvaqbjf.bet","threadId":"52835","inReplyTo":"20200219204430.GB5101@syl.local","subject":"Re: Git Test Coverage Report (Feb. 18, 2020)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2020-02-20T13:52:47Z","receivedAt":"2020-02-20T13:52:56Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Taylor,\n\nOn Wed, 19 Feb 2020, Taylor Blau wrote:\n\n> On Tue, Feb 18, 2020 at 07:46:03AM -0500, Derrick Stolee wrote:\n>\n> > Taylor Blau\t5d5916fd builtin/commit-graph.c: support '--split[=<strategy>]'\n> > commit-graph.c\n> > 5d5916fd 1751) break;\n>\n> This 'break' line only changed indentation, so I don't think that this\n> is new 'uncovered' code in my series, only that it got a little bit\n> harder to trigger.\n>\n> It is interesting that this is uncovered, but I don't think that there's\n> a huge sense of urgency to add tests to cover it.\n\nI could imagine that this is actually not the `break` statement, but the\none before that. It seems to be an issue with the way GCC optimizes that\nsometimes GDB (and gcov) have problems attributing precisely the line that\nis associated with a given assembler instruction. My guess is that the\noptimizer often seems to \"reflow\" the code, e.g. it would jump to the end\nof a switch statement only to jump _back_ to the actual switch case.\n\nSo I would expect the report to be legit, but pointing to the incorrect\nsource code line. At least that's what I seem to recall from the last time\na Test Code Coverage report pointed at one of the `break` statements I had\nadded.\n\n>\n> > Taylor Blau\ta599e2c9 builtin/commit-graph.c: introduce '--input=<source>'\n> > builtin/commit-graph.c\n> > a599e2c9 75) *to = 0;\n> > a599e2c9 76) return 0;\n>\n> These seem more interesting to cover, but only marginally so.\n>\n> > a599e2c9 86) *to |= COMMIT_GRAPH_INPUT_APPEND;\n>\n> This one I think we could ignore, though, since the same behavior is\n> triggered by simply '--append' instead of '--input=append'. We decided\n> in [1] to\n\nto...? :-D\n\nThanks,\nDscho\n\n>\n> Thanks,\n> Taylor\n>\n> [1]: 846706e9-efe2-448d-67a3-a96638e9bcbc@gmail.com\n>\n"}]}