@matheusbsbs / matheus-bagliano / commits / 417e45e5e3
Fork 0

t4060: make test work with SHA-256

In this test, there are two main types of object IDs we see in the diffs: the ones for the submodules, which we care about, and the ones for the individual files, which are unrelated to what we're testing. Much of the test already computes the former, so extend the rest of the test to do so as well. Add a diff comparison function that normalizes the differences in the latter, since they're not explicitly what we're testing. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

brian m. carlson committed Feb 7, 2020 at 00:52 UTC 417e45e5e38f824f65259f1c67d3a40b3597e12a
1 file changed +70 -56
t/t4060-diff-submodule-option-diff-format.sh
+70 -56
@@ -42,6 +42,17 @@ commit_file () {
42 git commit "$@" -m "Commit $*" >/dev/null
43 }
44
45 +diff_cmp () {
46 + for i in "$1" "$2"
47 + do
48 + sed -e 's/^index 0000000\.\.[0-9a-f]*/index 0000000..1234567/' \
49 + -e 's/^index [0-9a-f]*\.\.[0-9a-f]*/index 1234567..89abcde/' \
50 + "$i" >"$i.compare" || return 1
51 + done &&
52 + test_cmp "$1.compare" "$2.compare" &&
53 + rm -f "$1.compare" "$2.compare"
54 +}
55 +
56 test_expect_success 'setup repository' '
57 test_create_repo sm1 &&
58 add_file . foo &&
@@ -69,7 +80,7 @@ test_expect_success 'added submodule' '
80 @@ -0,0 +1 @@
81 +foo2
82 EOF
72 - test_cmp expected actual
83 + diff_cmp expected actual
84 '
85
86 test_expect_success 'added submodule, set diff.submodule' '
@@ -93,7 +104,7 @@ test_expect_success 'added submodule, set diff.submodule' '
104 @@ -0,0 +1 @@
105 +foo2
106 EOF
96 - test_cmp expected actual
107 + diff_cmp expected actual
108 '
109
110 test_expect_success '--submodule=short overrides diff.submodule' '
@@ -109,7 +120,7 @@ test_expect_success '--submodule=short overrides diff.submodule' '
120 @@ -0,0 +1 @@
121 +Subproject commit $fullhead1
122 EOF
112 - test_cmp expected actual
123 + diff_cmp expected actual
124 '
125
126 test_expect_success 'diff.submodule does not affect plumbing' '
@@ -124,7 +135,7 @@ test_expect_success 'diff.submodule does not affect plumbing' '
135 @@ -0,0 +1 @@
136 +Subproject commit $fullhead1
137 EOF
127 - test_cmp expected actual
138 + diff_cmp expected actual
139 '
140
141 commit_file sm1 &&
@@ -142,7 +153,7 @@ test_expect_success 'modified submodule(forward)' '
153 @@ -0,0 +1 @@
154 +foo3
155 EOF
145 - test_cmp expected actual
156 + diff_cmp expected actual
157 '
158
159 test_expect_success 'modified submodule(forward)' '
@@ -157,7 +168,7 @@ test_expect_success 'modified submodule(forward)' '
168 @@ -0,0 +1 @@
169 +foo3
170 EOF
160 - test_cmp expected actual
171 + diff_cmp expected actual
172 '
173
174 test_expect_success 'modified submodule(forward) --submodule' '
@@ -166,7 +177,7 @@ test_expect_success 'modified submodule(forward) --submodule' '
177 Submodule sm1 $head1..$head2:
178 > Add foo3 ($added foo3)
179 EOF
169 - test_cmp expected actual
180 + diff_cmp expected actual
181 '
182
183 fullhead2=$(cd sm1; git rev-parse --verify HEAD)
@@ -181,7 +192,7 @@ test_expect_success 'modified submodule(forward) --submodule=short' '
192 -Subproject commit $fullhead1
193 +Subproject commit $fullhead2
194 EOF
184 - test_cmp expected actual
195 + diff_cmp expected actual
196 '
197
198 commit_file sm1 &&
@@ -210,7 +221,7 @@ test_expect_success 'modified submodule(backward)' '
221 @@ -1 +0,0 @@
222 -foo3
223 EOF
213 - test_cmp expected actual
224 + diff_cmp expected actual
225 '
226
227 head4=$(add_file sm1 foo4 foo5)
@@ -247,7 +258,7 @@ test_expect_success 'modified submodule(backward and forward)' '
258 @@ -0,0 +1 @@
259 +foo5
260 EOF
250 - test_cmp expected actual
261 + diff_cmp expected actual
262 '
263
264 commit_file sm1 &&
@@ -291,7 +302,7 @@ test_expect_success 'typechanged submodule(submodule->blob), --cached' '
302 @@ -0,0 +1 @@
303 +sm1
304 EOF
294 - test_cmp expected actual
305 + diff_cmp expected actual
306 '
307
308 test_expect_success 'typechanged submodule(submodule->blob)' '
@@ -327,7 +338,7 @@ test_expect_success 'typechanged submodule(submodule->blob)' '
338 @@ -0,0 +1 @@
339 +foo5
340 EOF
330 - test_cmp expected actual
341 + diff_cmp expected actual
342 '
343
344 rm -rf sm1 &&
@@ -344,7 +355,7 @@ test_expect_success 'typechanged submodule(submodule->blob)' '
355 @@ -0,0 +1 @@
356 +sm1
357 EOF
347 - test_cmp expected actual
358 + diff_cmp expected actual
359 '
360
361 rm -f sm1 &&
@@ -356,7 +367,7 @@ test_expect_success 'nonexistent commit' '
367 cat >expected <<-EOF &&
368 Submodule sm1 $head4...$head6 (commits not present)
369 EOF
359 - test_cmp expected actual
370 + diff_cmp expected actual
371 '
372
373 commit_file
@@ -386,11 +397,12 @@ test_expect_success 'typechanged submodule(blob->submodule)' '
397 @@ -0,0 +1 @@
398 +foo7
399 EOF
389 - test_cmp expected actual
400 + diff_cmp expected actual
401 '
402
403 commit_file sm1 &&
404 test_expect_success 'submodule is up to date' '
405 + head7=$(git -C sm1 rev-parse --short --verify HEAD) &&
406 git diff-index -p --submodule=diff HEAD >actual &&
407 test_must_be_empty actual
408 '
@@ -401,7 +413,7 @@ test_expect_success 'submodule contains untracked content' '
413 cat >expected <<-EOF &&
414 Submodule sm1 contains untracked content
415 EOF
404 - test_cmp expected actual
416 + diff_cmp expected actual
417 '
418
419 test_expect_success 'submodule contains untracked content (untracked ignored)' '
@@ -433,7 +445,7 @@ test_expect_success 'submodule contains untracked and modified content' '
445 -foo6
446 +new
447 EOF
436 - test_cmp expected actual
448 + diff_cmp expected actual
449 '
450
451 # NOT OK
@@ -450,7 +462,7 @@ test_expect_success 'submodule contains untracked and modified content (untracke
462 -foo6
463 +new
464 EOF
453 - test_cmp expected actual
465 + diff_cmp expected actual
466 '
467
468 test_expect_success 'submodule contains untracked and modified content (dirty ignored)' '
@@ -478,7 +490,7 @@ test_expect_success 'submodule contains modified content' '
490 -foo6
491 +new
492 EOF
481 - test_cmp expected actual
493 + diff_cmp expected actual
494 '
495
496 (cd sm1; git commit -mchange foo6 >/dev/null) &&
@@ -486,7 +498,7 @@ head8=$(cd sm1; git rev-parse --short --verify HEAD) &&
498 test_expect_success 'submodule is modified' '
499 git diff-index -p --submodule=diff HEAD >actual &&
500 cat >expected <<-EOF &&
489 - Submodule sm1 17243c9..$head8:
501 + Submodule sm1 $head7..$head8:
502 diff --git a/sm1/foo6 b/sm1/foo6
503 index 462398b..3e75765 100644
504 --- a/sm1/foo6
@@ -495,7 +507,7 @@ test_expect_success 'submodule is modified' '
507 -foo6
508 +new
509 EOF
498 - test_cmp expected actual
510 + diff_cmp expected actual
511 '
512
513 test_expect_success 'modified submodule contains untracked content' '
@@ -503,7 +515,7 @@ test_expect_success 'modified submodule contains untracked content' '
515 git diff-index -p --submodule=diff HEAD >actual &&
516 cat >expected <<-EOF &&
517 Submodule sm1 contains untracked content
506 - Submodule sm1 17243c9..$head8:
518 + Submodule sm1 $head7..$head8:
519 diff --git a/sm1/foo6 b/sm1/foo6
520 index 462398b..3e75765 100644
521 --- a/sm1/foo6
@@ -512,13 +524,13 @@ test_expect_success 'modified submodule contains untracked content' '
524 -foo6
525 +new
526 EOF
515 - test_cmp expected actual
527 + diff_cmp expected actual
528 '
529
530 test_expect_success 'modified submodule contains untracked content (untracked ignored)' '
531 git diff-index -p --ignore-submodules=untracked --submodule=diff HEAD >actual &&
532 cat >expected <<-EOF &&
521 - Submodule sm1 17243c9..$head8:
533 + Submodule sm1 $head7..$head8:
534 diff --git a/sm1/foo6 b/sm1/foo6
535 index 462398b..3e75765 100644
536 --- a/sm1/foo6
@@ -527,13 +539,13 @@ test_expect_success 'modified submodule contains untracked content (untracked ig
539 -foo6
540 +new
541 EOF
530 - test_cmp expected actual
542 + diff_cmp expected actual
543 '
544
545 test_expect_success 'modified submodule contains untracked content (dirty ignored)' '
546 git diff-index -p --ignore-submodules=dirty --submodule=diff HEAD >actual &&
547 cat >expected <<-EOF &&
536 - Submodule sm1 17243c9..cfce562:
548 + Submodule sm1 $head7..$head8:
549 diff --git a/sm1/foo6 b/sm1/foo6
550 index 462398b..3e75765 100644
551 --- a/sm1/foo6
@@ -542,7 +554,7 @@ test_expect_success 'modified submodule contains untracked content (dirty ignore
554 -foo6
555 +new
556 EOF
545 - test_cmp expected actual
557 + diff_cmp expected actual
558 '
559
560 test_expect_success 'modified submodule contains untracked content (all ignored)' '
@@ -556,7 +568,7 @@ test_expect_success 'modified submodule contains untracked and modified content'
568 cat >expected <<-EOF &&
569 Submodule sm1 contains untracked content
570 Submodule sm1 contains modified content
559 - Submodule sm1 17243c9..cfce562:
571 + Submodule sm1 $head7..$head8:
572 diff --git a/sm1/foo6 b/sm1/foo6
573 index 462398b..dfda541 100644
574 --- a/sm1/foo6
@@ -566,7 +578,7 @@ test_expect_success 'modified submodule contains untracked and modified content'
578 +new
579 +modification
580 EOF
569 - test_cmp expected actual
581 + diff_cmp expected actual
582 '
583
584 test_expect_success 'modified submodule contains untracked and modified content (untracked ignored)' '
@@ -574,7 +586,7 @@ test_expect_success 'modified submodule contains untracked and modified content
586 git diff-index -p --ignore-submodules=untracked --submodule=diff HEAD >actual &&
587 cat >expected <<-EOF &&
588 Submodule sm1 contains modified content
577 - Submodule sm1 17243c9..cfce562:
589 + Submodule sm1 $head7..$head8:
590 diff --git a/sm1/foo6 b/sm1/foo6
591 index 462398b..e20e2d9 100644
592 --- a/sm1/foo6
@@ -585,14 +597,14 @@ test_expect_success 'modified submodule contains untracked and modified content
597 +modification
598 +modification
599 EOF
588 - test_cmp expected actual
600 + diff_cmp expected actual
601 '
602
603 test_expect_success 'modified submodule contains untracked and modified content (dirty ignored)' '
604 echo modification >> sm1/foo6 &&
605 git diff-index -p --ignore-submodules=dirty --submodule=diff HEAD >actual &&
606 cat >expected <<-EOF &&
595 - Submodule sm1 17243c9..cfce562:
607 + Submodule sm1 $head7..$head8:
608 diff --git a/sm1/foo6 b/sm1/foo6
609 index 462398b..3e75765 100644
610 --- a/sm1/foo6
@@ -601,7 +613,7 @@ test_expect_success 'modified submodule contains untracked and modified content
613 -foo6
614 +new
615 EOF
604 - test_cmp expected actual
616 + diff_cmp expected actual
617 '
618
619 test_expect_success 'modified submodule contains untracked and modified content (all ignored)' '
@@ -616,7 +628,7 @@ test_expect_success 'modified submodule contains modified content' '
628 git diff-index -p --submodule=diff HEAD >actual &&
629 cat >expected <<-EOF &&
630 Submodule sm1 contains modified content
619 - Submodule sm1 17243c9..cfce562:
631 + Submodule sm1 $head7..$head8:
632 diff --git a/sm1/foo6 b/sm1/foo6
633 index 462398b..ac466ca 100644
634 --- a/sm1/foo6
@@ -629,29 +641,29 @@ test_expect_success 'modified submodule contains modified content' '
641 +modification
642 +modification
643 EOF
632 - test_cmp expected actual
644 + diff_cmp expected actual
645 '
646
647 rm -rf sm1
648 test_expect_success 'deleted submodule' '
649 git diff-index -p --submodule=diff HEAD >actual &&
650 cat >expected <<-EOF &&
639 - Submodule sm1 17243c9...0000000 (submodule deleted)
651 + Submodule sm1 $head7...0000000 (submodule deleted)
652 EOF
641 - test_cmp expected actual
653 + diff_cmp expected actual
654 '
655
656 test_expect_success 'create second submodule' '
657 test_create_repo sm2 &&
646 - head7=$(add_file sm2 foo8 foo9) &&
658 + head9=$(add_file sm2 foo8 foo9) &&
659 git add sm2
660 '
661
662 test_expect_success 'multiple submodules' '
663 git diff-index -p --submodule=diff HEAD >actual &&
664 cat >expected <<-EOF &&
653 - Submodule sm1 17243c9...0000000 (submodule deleted)
654 - Submodule sm2 0000000...a5a65c9 (new submodule)
665 + Submodule sm1 $head7...0000000 (submodule deleted)
666 + Submodule sm2 0000000...$head9 (new submodule)
667 diff --git a/sm2/foo8 b/sm2/foo8
668 new file mode 100644
669 index 0000000..db9916b
@@ -667,13 +679,13 @@ test_expect_success 'multiple submodules' '
679 @@ -0,0 +1 @@
680 +foo9
681 EOF
670 - test_cmp expected actual
682 + diff_cmp expected actual
683 '
684
685 test_expect_success 'path filter' '
686 git diff-index -p --submodule=diff HEAD sm2 >actual &&
687 cat >expected <<-EOF &&
676 - Submodule sm2 0000000...a5a65c9 (new submodule)
688 + Submodule sm2 0000000...$head9 (new submodule)
689 diff --git a/sm2/foo8 b/sm2/foo8
690 new file mode 100644
691 index 0000000..db9916b
@@ -689,15 +701,15 @@ test_expect_success 'path filter' '
701 @@ -0,0 +1 @@
702 +foo9
703 EOF
692 - test_cmp expected actual
704 + diff_cmp expected actual
705 '
706
707 commit_file sm2
708 test_expect_success 'given commit' '
709 git diff-index -p --submodule=diff HEAD^ >actual &&
710 cat >expected <<-EOF &&
699 - Submodule sm1 17243c9...0000000 (submodule deleted)
700 - Submodule sm2 0000000...a5a65c9 (new submodule)
711 + Submodule sm1 $head7...0000000 (submodule deleted)
712 + Submodule sm2 0000000...$head9 (new submodule)
713 diff --git a/sm2/foo8 b/sm2/foo8
714 new file mode 100644
715 index 0000000..db9916b
@@ -713,7 +725,7 @@ test_expect_success 'given commit' '
725 @@ -0,0 +1 @@
726 +foo9
727 EOF
716 - test_cmp expected actual
728 + diff_cmp expected actual
729 '
730
731 test_expect_success 'setup .git file for sm2' '
@@ -726,8 +738,8 @@ test_expect_success 'setup .git file for sm2' '
738 test_expect_success 'diff --submodule=diff with .git file' '
739 git diff --submodule=diff HEAD^ >actual &&
740 cat >expected <<-EOF &&
729 - Submodule sm1 17243c9...0000000 (submodule deleted)
730 - Submodule sm2 0000000...a5a65c9 (new submodule)
741 + Submodule sm1 $head7...0000000 (submodule deleted)
742 + Submodule sm2 0000000...$head9 (new submodule)
743 diff --git a/sm2/foo8 b/sm2/foo8
744 new file mode 100644
745 index 0000000..db9916b
@@ -743,25 +755,27 @@ test_expect_success 'diff --submodule=diff with .git file' '
755 @@ -0,0 +1 @@
756 +foo9
757 EOF
746 - test_cmp expected actual
758 + diff_cmp expected actual
759 '
760
761 test_expect_success 'setup nested submodule' '
762 git submodule add -f ./sm2 &&
763 git commit -a -m "add sm2" &&
764 git -C sm2 submodule add ../sm2 nested &&
753 - git -C sm2 commit -a -m "nested sub"
765 + git -C sm2 commit -a -m "nested sub" &&
766 + head10=$(git -C sm2 rev-parse --short --verify HEAD)
767 '
768
769 test_expect_success 'move nested submodule HEAD' '
770 echo "nested content" >sm2/nested/file &&
771 git -C sm2/nested add file &&
759 - git -C sm2/nested commit --allow-empty -m "new HEAD"
772 + git -C sm2/nested commit --allow-empty -m "new HEAD" &&
773 + head11=$(git -C sm2/nested rev-parse --short --verify HEAD)
774 '
775
776 test_expect_success 'diff --submodule=diff with moved nested submodule HEAD' '
777 cat >expected <<-EOF &&
764 - Submodule nested a5a65c9..b55928c:
778 + Submodule nested $head9..$head11:
779 diff --git a/nested/file b/nested/file
780 new file mode 100644
781 index 0000000..ca281f5
@@ -772,13 +786,13 @@ test_expect_success 'diff --submodule=diff with moved nested submodule HEAD' '
786 EOF
787 git -C sm2 diff --submodule=diff >actual 2>err &&
788 test_must_be_empty err &&
775 - test_cmp expected actual
789 + diff_cmp expected actual
790 '
791
792 test_expect_success 'diff --submodule=diff recurses into nested submodules' '
793 cat >expected <<-EOF &&
794 Submodule sm2 contains modified content
781 - Submodule sm2 a5a65c9..280969a:
795 + Submodule sm2 $head9..$head10:
796 diff --git a/sm2/.gitmodules b/sm2/.gitmodules
797 new file mode 100644
798 index 0000000..3a816b8
@@ -788,7 +802,7 @@ test_expect_success 'diff --submodule=diff recurses into nested submodules' '
802 +[submodule "nested"]
803 + path = nested
804 + url = ../sm2
791 - Submodule nested 0000000...b55928c (new submodule)
805 + Submodule nested 0000000...$head11 (new submodule)
806 diff --git a/sm2/nested/file b/sm2/nested/file
807 new file mode 100644
808 index 0000000..ca281f5
@@ -813,7 +827,7 @@ test_expect_success 'diff --submodule=diff recurses into nested submodules' '
827 EOF
828 git diff --submodule=diff >actual 2>err &&
829 test_must_be_empty err &&
816 - test_cmp expected actual
830 + diff_cmp expected actual
831 '
832
833 test_done