Changes from Version 5: * Save the content of .gitattributes in .gitattributes.bak before adding conflict-marker-size=3a, as subsequent tests do not depend on having invalid lines. Restore .gitattributes to its original state after testing. * Use test_grep for testing failure output, as it provides a cleaner approach. * Use err instead of actual_error for conciseness and to maintain consistency with the style of the rest of the test suite. Usman Akinyemi (3): daemon: replace atoi() with strtoul_ui() and strtol_i() merge: replace atoi() with strtol_i() for marker size validation imap: replace atoi() with strtol_i() for UIDVALIDITY and UIDNEXT parsing daemon.c | 12 ++++++++---- imap-send.c | 13 ++++++++----- merge-ll.c | 11 +++++++++-- t/t5570-git-daemon.sh | 25 +++++++++++++++++++++++++ t/t6406-merge-attr.sh | 8 ++++++++ 5 files changed, 58 insertions(+), 11 deletions(-) base-commit: 90fe3800b92a49173530828c0a17951abd30f0e1 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1810%2FUnique-Usman%2Fr_atoi-v6 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1810/Unique-Usman/r_atoi-v6 Pull-Request: https://github.com/git/git/pull/1810 Range-diff vs v5: 1: d9c997d7a9c ! 1: 3daedaeb260 daemon: replace atoi() with strtoul_ui() and strtol_i() @@ t/t5570-git-daemon.sh: TEST_PASSES_SANITIZE_LEAK=true +test_expect_success 'daemon rejects invalid --init-timeout values' ' + for arg in "3a" "-3" + do -+ test_must_fail git daemon --init-timeout="$arg" 2>actual_error && -+ test_write_lines "fatal: invalid init-timeout ${SQ}$arg${SQ}, expecting a non-negative integer" >expected && -+ test_cmp actual_error expected || return 1 ++ test_must_fail git daemon --init-timeout="$arg" 2>err && ++ test_grep "fatal: invalid init-timeout ${SQ}$arg${SQ}, expecting a non-negative integer" err || ++ return 1 + done +' + +test_expect_success 'daemon rejects invalid --timeout values' ' + for arg in "3a" "-3" + do -+ test_must_fail git daemon --timeout="$arg" 2>actual_error && -+ test_write_lines "fatal: invalid timeout ${SQ}$arg${SQ}, expecting a non-negative integer" >expected && -+ test_cmp actual_error expected || return 1 ++ test_must_fail git daemon --timeout="$arg" 2>err && ++ test_grep "fatal: invalid timeout ${SQ}$arg${SQ}, expecting a non-negative integer" err || ++ return 1 + done +' + +test_expect_success 'daemon rejects invalid --max-connections values' ' + arg='3a' && -+ test_must_fail git daemon --max-connections=3a 2>actual_error && -+ test_write_lines "fatal: invalid max-connections ${SQ}$arg${SQ}, expecting an integer" >expected && -+ test_cmp actual_error expected ++ test_must_fail git daemon --max-connections=3a 2>err && ++ test_grep "fatal: invalid max-connections ${SQ}$arg${SQ}, expecting an integer" err +' + start_git_daemon 2: da9ea10e4e1 ! 2: 0ea3b349560 merge: replace atoi() with strtol_i() for marker size validation @@ t/t6406-merge-attr.sh: test_expect_success 'retry the merge with longer context' ' +test_expect_success 'invalid conflict-marker-size 3a' ' -+ echo "text conflict-marker-size=3a" >>.gitattributes && -+ git checkout -m text 2>error && -+ test_grep "warning: invalid marker-size ${SQ}3a${SQ}, expecting an integer" error ++ cp .gitattributes .gitattributes.bak && ++ echo "text conflict-marker-size=3a" >>.gitattributes && ++ test_when_finished "mv .gitattributes.bak .gitattributes" && ++ git checkout -m text 2>err && ++ test_grep "warning: invalid marker-size ${SQ}3a${SQ}, expecting an integer" err +' + test_expect_success 'custom merge backend' ' 3: 9b2b2dc8fc8 = 3: 17484df5200 imap: replace atoi() with strtol_i() for UIDVALIDITY and UIDNEXT parsing -- gitgitgadget