git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Robin Rosenberg <robin.rosenberg@dewire.com>
Date
Jan 30, 2007, 22:49 UTC
Message-ID
<20070130224446.28311.31828.stgit@lathund.dewire.com>
In-Reply-To
<20070130163219.GA14431@164.242.249.10.in-addr.arpa>

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 (which happen to be valid interpreted as ISO-8859-1 and skips the test if the local file system does not support the test data.

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
---

Please try this on cygwin (western iso-8859-X, korean on FAT & NTFS) and MacOSX (HFS) where we know there was a problem. The non-ascii filename test should be skipped, with a notice) in most asian locales on Windows and MacOSX.

 t/t9200-git-cvsexportcommit.sh |   35 +++++++++++++++++++++--------------
 1 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
index fd0a554..fdf7b3f 100755
--- a/t/t9200-git-cvsexportcommit.sh
+++ b/t/t9200-git-cvsexportcommit.sh
@@ -169,20 +169,27 @@ 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�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/"
-      )'
+# 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' :
+else
+    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' \
Previous: Robin RosenbergNext: Brian Gernhardt
Message 3 of 9 in “t9200-git-cvsexportcommit #8 failure on OS X”
  1. Brian GernhardtJan 30, 2007
  2. Robin RosenbergJan 30, 2007
  3. Fail softly if file system does not like test data.Robin Rosenberg, Jan 30, 2007
  4. Brian GernhardtJan 30, 2007
  5. Robin RosenbergJan 31, 2007
  6. Brian GernhardtJan 31, 2007
  7. Robin RosenbergJan 31, 2007
  8. Junio C HamanoJan 31, 2007
  9. Robin RosenbergJan 31, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.