Browse Source

mask necessary whitespace policy violations in test scripts

All of these violations are necessary parts of the tests
(which are generally checking the behavior of trailing
whitespace, or contain diff fragments with empty lines).

Our solution is two-fold:

  1. Process input with whitespace problems using tr. This
     has the added bonus that it becomes very obvious where
     the bogus whitespace is intended to go.

  2. Move large diff fragments into their own supplemental
     files. This gets rid of the whitespace problem, since
     supplemental files are not checked, and it also makes
     the test script a bit easier to read.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jeff King 17 years ago committed by Junio C Hamano
parent
commit
74f16b0c6f
  1. 4
      t/t3800-mktag.sh
  2. 8
      t/t4015-diff-whitespace.sh
  3. 132
      t/t4109-apply-multifrag.sh
  4. 28
      t/t4109/patch1.patch
  5. 30
      t/t4109/patch2.patch
  6. 31
      t/t4109/patch3.patch
  7. 30
      t/t4109/patch4.patch
  8. 4
      t/t4119-apply-config.sh

4
t/t3800-mktag.sh

@ -241,11 +241,11 @@ check_verify_failure 'disallow spaces in tag email' \ @@ -241,11 +241,11 @@ check_verify_failure 'disallow spaces in tag email' \
############################################################
# 17. disallow missing tag timestamp

cat >tag.sig <<EOF
tr '_' ' ' >tag.sig <<EOF
object $head
type commit
tag mytag
tagger T A Gger <tagger@example.com>
tagger T A Gger <tagger@example.com>__

EOF


8
t/t4015-diff-whitespace.sh

@ -62,16 +62,16 @@ EOF @@ -62,16 +62,16 @@ EOF

git update-index x

cat << EOF > x
tr '_' ' ' << EOF > x
whitespace at beginning
whitespace change
white space in the middle
whitespace at end
whitespace at end__
unchanged line
CR at end
EOF

tr 'Q' '\015' << EOF > expect
tr 'Q_' '\015 ' << EOF > expect
diff --git a/x b/x
index d99af23..8b32fb5 100644
--- a/x
@ -84,7 +84,7 @@ index d99af23..8b32fb5 100644 @@ -84,7 +84,7 @@ index d99af23..8b32fb5 100644
+ whitespace at beginning
+whitespace change
+white space in the middle
+whitespace at end
+whitespace at end__
unchanged line
-CR at endQ
+CR at end

132
t/t4109-apply-multifrag.sh

@ -9,134 +9,10 @@ test_description='git apply test patches with multiple fragments. @@ -9,134 +9,10 @@ test_description='git apply test patches with multiple fragments.
'
. ./test-lib.sh

# setup

cat > patch1.patch <<\EOF
diff --git a/main.c b/main.c
new file mode 100644
--- /dev/null
+++ b/main.c
@@ -0,0 +1,23 @@
+#include <stdio.h>
+
+int func(int num);
+void print_int(int num);
+
+int main() {
+ int i;
+
+ for (i = 0; i < 10; i++) {
+ print_int(func(i));
+ }
+
+ return 0;
+}
+
+int func(int num) {
+ return num * num;
+}
+
+void print_int(int num) {
+ printf("%d", num);
+}
+
EOF
cat > patch2.patch <<\EOF
diff --git a/main.c b/main.c
--- a/main.c
+++ b/main.c
@@ -1,7 +1,9 @@
+#include <stdlib.h>
#include <stdio.h>
int func(int num);
void print_int(int num);
+void print_ln();
int main() {
int i;
@@ -10,6 +12,8 @@
print_int(func(i));
}
+ print_ln();
+
return 0;
}
@@ -21,3 +25,7 @@
printf("%d", num);
}
+void print_ln() {
+ printf("\n");
+}
+
EOF
cat > patch3.patch <<\EOF
diff --git a/main.c b/main.c
--- a/main.c
+++ b/main.c
@@ -1,9 +1,7 @@
-#include <stdlib.h>
#include <stdio.h>
int func(int num);
void print_int(int num);
-void print_ln();
int main() {
int i;
@@ -12,8 +10,6 @@
print_int(func(i));
}
- print_ln();
-
return 0;
}
@@ -25,7 +21,3 @@
printf("%d", num);
}
-void print_ln() {
- printf("\n");
-}
-
EOF
cat > patch4.patch <<\EOF
diff --git a/main.c b/main.c
--- a/main.c
+++ b/main.c
@@ -1,13 +1,14 @@
#include <stdio.h>
int func(int num);
-void print_int(int num);
+int func2(int num);
int main() {
int i;
for (i = 0; i < 10; i++) {
- print_int(func(i));
+ printf("%d", func(i));
+ printf("%d", func3(i));
}
return 0;
@@ -17,7 +18,7 @@
return num * num;
}
-void print_int(int num) {
- printf("%d", num);
+int func2(int num) {
+ return num * num * num;
}
EOF
cp ../t4109/patch1.patch .
cp ../t4109/patch2.patch .
cp ../t4109/patch3.patch .
cp ../t4109/patch4.patch .

test_expect_success "S = git apply (1)" \
'git apply patch1.patch patch2.patch'

28
t/t4109/patch1.patch

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
diff --git a/main.c b/main.c
new file mode 100644
--- /dev/null
+++ b/main.c
@@ -0,0 +1,23 @@
+#include <stdio.h>
+
+int func(int num);
+void print_int(int num);
+
+int main() {
+ int i;
+
+ for (i = 0; i < 10; i++) {
+ print_int(func(i));
+ }
+
+ return 0;
+}
+
+int func(int num) {
+ return num * num;
+}
+
+void print_int(int num) {
+ printf("%d", num);
+}
+

30
t/t4109/patch2.patch

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
diff --git a/main.c b/main.c
--- a/main.c
+++ b/main.c
@@ -1,7 +1,9 @@
+#include <stdlib.h>
#include <stdio.h>
int func(int num);
void print_int(int num);
+void print_ln();
int main() {
int i;
@@ -10,6 +12,8 @@
print_int(func(i));
}
+ print_ln();
+
return 0;
}
@@ -21,3 +25,7 @@
printf("%d", num);
}
+void print_ln() {
+ printf("\n");
+}
+

31
t/t4109/patch3.patch

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
cat > patch3.patch <<\EOF
diff --git a/main.c b/main.c
--- a/main.c
+++ b/main.c
@@ -1,9 +1,7 @@
-#include <stdlib.h>
#include <stdio.h>
int func(int num);
void print_int(int num);
-void print_ln();
int main() {
int i;
@@ -12,8 +10,6 @@
print_int(func(i));
}
- print_ln();
-
return 0;
}
@@ -25,7 +21,3 @@
printf("%d", num);
}
-void print_ln() {
- printf("\n");
-}
-

30
t/t4109/patch4.patch

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
diff --git a/main.c b/main.c
--- a/main.c
+++ b/main.c
@@ -1,13 +1,14 @@
#include <stdio.h>
int func(int num);
-void print_int(int num);
+int func2(int num);
int main() {
int i;
for (i = 0; i < 10; i++) {
- print_int(func(i));
+ printf("%d", func(i));
+ printf("%d", func3(i));
}
return 0;
@@ -17,7 +18,7 @@
return num * num;
}
-void print_int(int num) {
- printf("%d", num);
+int func2(int num) {
+ return num * num * num;
}

4
t/t4119-apply-config.sh

@ -19,12 +19,12 @@ test_expect_success setup ' @@ -19,12 +19,12 @@ test_expect_success setup '
'

# Also handcraft GNU diff output; note this has trailing whitespace.
cat >gpatch.file <<\EOF &&
tr '_' ' ' >gpatch.file <<\EOF &&
--- file1 2007-02-21 01:04:24.000000000 -0800
+++ file1+ 2007-02-21 01:07:44.000000000 -0800
@@ -1 +1 @@
-A
+B
+B_
EOF

sed -e 's|file1|sub/&|' gpatch.file >gpatch-sub.file &&

Loading…
Cancel
Save