{"thread":{"id":"52682","subject":"Git Test Coverage Report (Jan 22, 2020)","startedAt":"2020-01-23T14:28:23Z","lastAt":"2020-01-23T14:28:23Z","messageCount":1,"participants":["Derrick Stolee"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"390271","messageId":"f4373bcf-e78e-aedf-d7d3-e6181164088b@gmail.com","threadId":"52682","inReplyTo":null,"subject":"Git Test Coverage Report (Jan 22, 2020)","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2020-01-23T14:28:19Z","receivedAt":"2020-01-23T14:28:23Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"Here is the latest test coverage report.\n\nThanks,\n-Stolee\n\n[1] https://derrickstolee.github.io/git-test-coverage/reports/2020-01-22.htm\n[2] https://derrickstolee.github.io/git-test-coverage/reports/2020-01-22.txt\n[3] https://derrickstolee.github.io/git-test-coverage/reports/2020-01-22-commits.txt\n\n---\n\npu\t93d4f0420cd84db6ba06dfde81314c8c5f328842\njch\t75b0f54c274253cd9cb3395f261a70f4238a3e9a\nnext\t3f081b084b0e55662871946d66dab3696a46a22a\nmaster\t232378479ee6c66206d47a9be175e3a39682aea6\nmaster@{1}\t8679ef24ed64018bb62170c43ce73e0261c0600a\n\n\nUncovered code in 'pu' not in 'jch'\n--------------------------------------------------------\n\nCommits introducing uncovered code:\nDenton Liu\t186dbeed rebase: use read_oneliner()\nbuiltin/rebase.c\n186dbeed 629) } else if (!read_oneliner(&buf, state_dir_path(\"head\", opts), 0, 1))\n\nDenton Liu\t06ebea5c rebase: generify reset_head()\nbuiltin/rebase.c\n06ebea5c 879) reset_head(the_repository, &opts->orig_head, \"checkout\",\n06ebea5c 880)    opts->head_name, 0,\n\nDenton Liu\te71223c6 rebase: use apply_autostash() from sequencer.c\nbuiltin/rebase.c\ne71223c6 1039) apply_autostash(state_dir_path(\"autostash\", opts));\n\nDenton Liu\t448bea61 sequencer: make apply_rebase() accept a path\nsequencer.c\n448bea61 5157) apply_autostash(rebase_path_autostash());\n\nDenton Liu\tfa717471 sequencer: use file strbuf for read_oneliner()\nsequencer.c\nfa717471 436) goto done;\nfa717471 442) 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\nElijah Newren\t81f5bc1c rebase, sequencer: remove the broken GIT_QUIET handling\nbuiltin/rebase.c\n81f5bc1c 698) write_file(state_dir_path(\"quiet\", opts), \"%s\", \"\");\n\nElijah Newren\t91e0ed22 rebase (interactive-backend): fix handling of commits that become empty\nsequencer.c\n91e0ed22 2534) opts->keep_redundant_commits = 1;\n\nElijah Newren\t8ef6c12e rebase (interactive-backend): make --keep-empty the default\nsequencer.c\n8ef6c12e 1539) return originally_empty;\n\nJonathan Nieder\tee70c128 index: offer advice for unknown index extensions\nread-cache.c\nee70c128 1761) if (advice_unknown_index_extension) {\n\nJosh Steadmon\t6da1f1a9 protocol: advertise multiple supported versions\nremote-curl.c\n6da1f1a9 354) return 0;\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\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\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\nPhillip Wood\t430b75f7 commit: give correct advice for empty commit during a rebase\nsequencer.c\n430b75f7 1472)     return -1;\n\n\n\nUncovered code in 'jch' not in 'next'\n--------------------------------------------------------\n\nCommits introducing uncovered code:\nAlban Gruin\t0d50cf5e sequencer: move check_todo_list_from_file() to rebase-interactive.c\nrebase-interactive.c\n0d50cf5e 210) goto out;\n0d50cf5e 215) goto out;\n0d50cf5e 224) fprintf(stderr, _(edit_todo_list_advice));\n\nAlex Torok\tfed842f0 rebase: fix --fork-point with short refname\nbuiltin/merge-base.c\nfed842f0 128) return 1;\n\nHans Jerry Illikainen\t54887b46 gpg-interface: add minTrustLevel as a configuration option\nbuiltin/pull.c\n54887b46 374) return status;\n\ngpg-interface.c\n54887b46 143) return 1;\n54887b46 207) free(trust);\n54887b46 208) goto error;\n54887b46 397) return config_error_nonbool(var);\n\npretty.c\n54887b46 1355) strbuf_addstr(sb, \"never\");\n54887b46 1356) break;\n54887b46 1358) strbuf_addstr(sb, \"marginal\");\n54887b46 1359) break;\n54887b46 1361) strbuf_addstr(sb, \"fully\");\n54887b46 1362) break;\n\nJeff King\t7cb9754e pack-objects: introduce pack.allowPackReuse\nbuiltin/pack-objects.c\n7cb9754e 2834) allow_pack_reuse = git_config_bool(k, v);\n7cb9754e 2835) return 0;\n\nJeff King\t7b143c16 pack-bitmap: introduce bitmap_walk_contains()\npack-bitmap.c\n7b143c16 903) return 0;\n\nJeff King\t4f0bd8b9 pack-objects: improve partial packfile reuse\nbuiltin/pack-objects.c\n4f0bd8b9 1124) return 1;\n4f0bd8b9 2681) (reuse_packfile_bitmap &&\n4f0bd8b9 2682)  bitmap_walk_contains(bitmap_git, reuse_packfile_bitmap, oid));\n\npack-bitmap.c\n4f0bd8b9 808) return;\n4f0bd8b9 811) return;\n4f0bd8b9 823) return;\n4f0bd8b9 861) i = bitmap_git->pack->num_objects / BITS_IN_EWORD;\n\nJohannes Schindelin\te118f063 built-in add -p: handle Escape sequences in interactive.singlekey mode\ncompat/terminal.c\ne118f063 330) if (ch == '\\033' /* ESC */) {\ne118f063 338) strbuf_splice(buf, buf->len - 1, 1, \"^[\", 2);\ne118f063 346) struct pollfd pfd = { .fd = 0, .events = POLLIN };\ne118f063 348) if (poll(&pfd, 1, 500) < 1)\ne118f063 349) break;\ne118f063 351) ch = getchar();\ne118f063 352) if (ch == EOF)\ne118f063 353) return 0;\ne118f063 354) strbuf_addch(buf, ch);\n\nJohannes Schindelin\t12acdf57 built-in add -p: handle Escape sequences more efficiently\ncompat/terminal.c\n12acdf57 255) static int sequence_entry_cmp(const void *hashmap_cmp_fn_data,\n12acdf57 260) return strcmp(e1->sequence, keydata ? keydata : e2->sequence);\n12acdf57 263) static int is_known_escape_sequence(const char *sequence)\n12acdf57 268) if (!initialized) {\n12acdf57 269) struct child_process cp = CHILD_PROCESS_INIT;\n12acdf57 270) struct strbuf buf = STRBUF_INIT;\n12acdf57 273) hashmap_init(&sequences, (hashmap_cmp_fn)sequence_entry_cmp,\n12acdf57 276) argv_array_pushl(&cp.args, \"infocmp\", \"-L\", \"-1\", NULL);\n12acdf57 277) if (pipe_command(&cp, NULL, 0, &buf, 0, NULL, 0))\n12acdf57 278) strbuf_setlen(&buf, 0);\n12acdf57 280) for (eol = p = buf.buf; *p; p = eol + 1) {\n12acdf57 281) p = strchr(p, '=');\n12acdf57 282) if (!p)\n12acdf57 283) break;\n12acdf57 284) p++;\n12acdf57 285) eol = strchrnul(p, '\\n');\n12acdf57 287) if (starts_with(p, \"\\\\E\")) {\n12acdf57 288) char *comma = memchr(p, ',', eol - p);\n12acdf57 291) p[0] = '^';\n12acdf57 292) p[1] = '[';\n12acdf57 293) FLEX_ALLOC_MEM(e, sequence, p, comma - p);\n12acdf57 294) hashmap_entry_init(&e->entry,\n12acdf57 295)    strhash(e->sequence));\n12acdf57 296) hashmap_add(&sequences, &e->entry);\n12acdf57 298) if (!*eol)\n12acdf57 299) break;\n12acdf57 301) initialized = 1;\n12acdf57 304) return !!hashmap_get_from_hash(&sequences, strhash(sequence), sequence);\n12acdf57 345) while (!is_known_escape_sequence(buf->buf)) {\n\nJohannes Schindelin\ta5e46e6b terminal: add a new function to read a single keystroke\ncompat/terminal.c\na5e46e6b 64) static int enable_non_canonical(void)\na5e46e6b 66) return disable_bits(ICANON | ECHO);\na5e46e6b 307) int read_key_without_echo(struct strbuf *buf)\na5e46e6b 312) if (warning_displayed || enable_non_canonical() < 0) {\na5e46e6b 313) if (!warning_displayed) {\na5e46e6b 316) warning_displayed = 1;\na5e46e6b 319) return strbuf_getline(buf, stdin);\na5e46e6b 322) strbuf_reset(buf);\na5e46e6b 323) ch = getchar();\na5e46e6b 324) if (ch == EOF) {\na5e46e6b 325) restore_term();\na5e46e6b 326) return EOF;\na5e46e6b 328) strbuf_addch(buf, ch);\na5e46e6b 358) restore_term();\na5e46e6b 359) return 0;\n\nJohannes Schindelin\t94ac3c31 terminal: make the code of disable_echo() reusable\ncompat/terminal.c\n94ac3c31 38) static int disable_bits(tcflag_t bits)\n94ac3c31 49) t.c_lflag &= ~bits;\n94ac3c31 59) static int disable_echo(void)\n94ac3c31 61) return disable_bits(ECHO);\n\nJohannes Schindelin\t180f48df built-in add -p: support interactive.diffFilter\nadd-patch.c\n180f48df 557) else if (p != pend)\n180f48df 559) goto mismatched_output;\n180f48df 590) return -1;\n\nJohannes Schindelin\t90a6bb98 legacy stash -p: respect the add.interactive.usebuiltin setting\nbuiltin/add.c\n90a6bb98 451) parse_pathspec(&pathspec, 0,\n90a6bb98 457) return run_add_interactive(NULL, \"--patch=stash\", &pathspec);\n\nJohannes Schindelin\td2a233cb built-in add -p: prepare for patch modes other than \"stage\"\nadd-patch.c\nd2a233cb 1567)       _(s->mode->help_patch_text));\n\nJohannes Schindelin\t52628f94 built-in add -p: implement the \"checkout\" patch modes\nadd-patch.c\n52628f94 1272) fwrite(diff->buf, diff->len, 1, stderr);\n\nJohannes Schindelin\t04f816b1 built-in add -p: respect the `interactive.singlekey` config setting\nadd-patch.c\n04f816b1 1156) int res = read_key_without_echo(&s->answer);\n04f816b1 1157) printf(\"%s\\n\", res == EOF ? \"\" : s->answer.buf);\n04f816b1 1158) return res;\n\nJohannes Schindelin\t6610e462 built-in stash: use the built-in `git add -p` if so configured\nbuiltin/stash.c\n6610e462 1026) setenv(INDEX_ENVIRONMENT, old_index_env, 1);\n\nMartin Ågren\t3bcdd852 builtin/config: extract `handle_value_regex()` from `get_value()`\nbuiltin/config.c\n3bcdd852 330) return CONFIG_INVALID_PATTERN;\n3bcdd852 375) goto free_strings;\n\nMartin Ågren\t3bf986d6 builtin/config: collect \"value_regexp\" data in a struct\nbuiltin/config.c\n3bf986d6 329) FREE_AND_NULL(cmd_line_value.regexp);\n\nRalf Thielow\ta4ffbbbb submodule.c: mark more strings for translation\nsubmodule.c\na4ffbbbb 1161) fprintf(stderr, _(\"Unable to push submodule '%s'\\n\"), path);\n\n\n\nUncovered code in 'next' not in 'master'\n--------------------------------------------------------\n\nCommits introducing uncovered code:\nbrian m. carlson\t63ab08fb run-command: avoid undefined behavior in exists_in_PATH\nrun-command.c\n63ab08fb 216) int found = r != NULL;\n63ab08fb 218) return found;\n\nJonathan Tan\t9c8a294a sha1-file: remove OBJECT_INFO_SKIP_CACHED\nsha1-file.c\n9c8a294a 1442) *(oi->disk_sizep) = 0;\n9c8a294a 1444) hashclr(oi->delta_base_sha1);\n9c8a294a 1446) strbuf_addstr(oi->type_name, type_name(co->type));\n\n\n\nUncovered code in 'master' not in 'master@{1}'\n--------------------------------------------------------\n\nCommits introducing uncovered code:\n\n"}]}