Re: [PATCH] Fail softly if file system does not like test data.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



    Most unix file system allow almost any byte sequence, but other may reject
    sequences that are not valid according to the locale. This change makes
    failure somewhat less likely by using UTF-8-encoded characters and skips
    the test if the local file system does not support the test data.
    
    Signed-off-by: Robin Rosenberg <robin.rosenberg@xxxxxxxxxx>
---

The first version of the patch had two errors. First it had a slash too much, then
it did not clean up after test for applicability and then it was sent UTF-8 encoded
which is wrong for non-utf8 systems. The patch is ment to actually have the
UTF-8 byte sequences and not be translated (it should work regardless on most
systems).

 t/t9200-git-cvsexportcommit.sh |   37 +++++++++++++++++++++++--------------
 1 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
index fd0a554..d0d5365 100755
--- a/t/t9200-git-cvsexportcommit.sh
+++ b/t/t9200-git-cvsexportcommit.sh
@@ -169,20 +169,29 @@ test_expect_success \
       test "$(echo $(sort "G g/CVS/Entries"|cut -d/ -f2,3,5))" = "with spaces.png/1.2/-kb with spaces.txt/1.2/"
       )'
 
-# This test contains ISO-8859-1 characters
-test_expect_success \
-     'File with non-ascii file name' \
-     'mkdir -p �goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/���&&
-      echo Foo >�goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/���g�dets��det.txt &&
-      git add �goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/���g�dets��det.txt &&
-      cp ../test9200a.png �goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/���g�dets��det.png &&
-      git add �goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/���g�dets��det.png &&
-      git commit -a -m "G� det s�g� det" && \
-      id=$(git rev-list --max-count=1 HEAD) &&
-      (cd "$CVSWORK" &&
-      git-cvsexportcommit -v -c $id &&
-      test "$(echo $(sort �goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/���CVS/Entries|cut -d/ -f2,3,5))" = "g�dets��det.png/1.1/-kb g�dets��det.txt/1.1/"
-      )'
+# This test contains UTF-8 characters and may fail on some filesystems
+mkdir -p "å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö" >/dev/null 2>&1
+if test $? -ne 0
+then
+    test_expect_success 'File with non-ascii file name skipped, file system is incompatible with test data' :
+    rm -rf "å"
+else
+    rm -rf "å"
+    test_expect_success \
+	'File with non-ascii file name' \
+	'(mkdir -p "å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö" ||
+         echo "Local filesystem does not permit this test" ) &&
+         echo Foo >"å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö/gårdetsågårdet.txt" &&
+         git add "å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö/gårdetsågårdet.txt" &&
+         cp ../test9200a.png "å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö/gårdetsågårdet.png" &&
+         git add "å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö/gårdetsågårdet.png" &&
+         git commit -a -m "Går det så går det" && \
+         id=$(git rev-list --max-count=1 HEAD) &&
+         (cd "$CVSWORK" &&
+         git-cvsexportcommit -v -c $id &&
+         test "$(echo $(sort "å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö/CVS/Entries"|cut -d/ -f2,3,5))" = "gårdetsågårdet.png/1.1/-kb gårdetsågårdet.txt/1.1/"
+         )'
+fi
 
 test_expect_success \
      'Mismatching patch should fail' \
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]