]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t4014-format-patch.sh
Merge branch 'dl/checkout-p-merge-base'
[thirdparty/git.git] / t / t4014-format-patch.sh
index 42588bf6e11fd5ff0aee94e0cffeab3a62f963c8..c5e5e0da3feef439415dbf9cfd235140eba7d0d9 100755 (executable)
@@ -313,6 +313,60 @@ test_expect_success 'multiple files' '
        ls patches/0001-Side-changes-1.patch patches/0002-Side-changes-2.patch patches/0003-Side-changes-3-with-n-backslash-n-in-it.patch
 '
 
+test_expect_success 'filename length limit' '
+       test_when_finished "rm -f 000*" &&
+       rm -rf 000[1-9]-*.patch &&
+       for len in 15 25 35
+       do
+               git format-patch --filename-max-length=$len -3 side &&
+               max=$(
+                       for patch in 000[1-9]-*.patch
+                       do
+                               echo "$patch" | wc -c
+                       done |
+                       sort -nr |
+                       head -n 1
+               ) &&
+               test $max -le $len || return 1
+       done
+'
+
+test_expect_success 'filename length limit from config' '
+       test_when_finished "rm -f 000*" &&
+       rm -rf 000[1-9]-*.patch &&
+       for len in 15 25 35
+       do
+               git -c format.filenameMaxLength=$len format-patch -3 side &&
+               max=$(
+                       for patch in 000[1-9]-*.patch
+                       do
+                               echo "$patch" | wc -c
+                       done |
+                       sort -nr |
+                       head -n 1
+               ) &&
+               test $max -le $len || return 1
+       done
+'
+
+test_expect_success 'filename limit applies only to basename' '
+       test_when_finished "rm -rf patches/" &&
+       rm -rf patches/ &&
+       for len in 15 25 35
+       do
+               git format-patch -o patches --filename-max-length=$len -3 side &&
+               max=$(
+                       for patch in patches/000[1-9]-*.patch
+                       do
+                               echo "${patch#patches/}" | wc -c
+                       done |
+                       sort -nr |
+                       head -n 1
+               ) &&
+               test $max -le $len || return 1
+       done
+'
+
 test_expect_success 'reroll count' '
        rm -fr patches &&
        git format-patch -o patches --cover-letter --reroll-count 4 master..side >list &&