X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Ffilesys.test.sh;h=f892feed0842b3e8540a6420a3c10966305e93f9;hb=71d60093b1a9d80c4de6c5f51c6783eef86968d9;hp=28f39351846903e348b2d1e5ae2f3021da4df0d7;hpb=165bb53b405ab95ce76615ab77cee8284df0a36e;p=sbcl.git diff --git a/tests/filesys.test.sh b/tests/filesys.test.sh index 28f3935..f892fee 100644 --- a/tests/filesys.test.sh +++ b/tests/filesys.test.sh @@ -6,17 +6,19 @@ # While most of SBCL is derived from the CMU CL system, the test # files (like this one) were written from scratch after the fork # from CMU CL. -# +# # This software is in the public domain and is provided with # absolutely no warranty. See the COPYING and CREDITS files for # more information. # Test DIRECTORY and TRUENAME. -testdir=`pwd`"/filesys-test-$$" +testdir=`/bin/pwd`"/filesys-test-$$" mkdir $testdir echo this is a test > $testdir/test-1.tmp echo this is a test > $testdir/test-2.tmp +echo this is a test > $testdir/wild\?test.tmp cd $testdir +ln -s $testdir dirlinktest ln -s test-1.tmp link-1 ln -s `pwd`/test-2.tmp link-2 ln -s i-do-not-exist link-3 @@ -24,12 +26,14 @@ ln -s link-4 link-4 ln -s link-5 link-6 ln -s `pwd`/link-6 link-5 expected_truenames=\ -"'(#p\"$testdir/link-3\"\ +"'(#p\"$testdir/\"\ + #p\"$testdir/link-3\"\ #p\"$testdir/link-4\"\ #p\"$testdir/link-5\"\ #p\"$testdir/link-6\"\ #p\"$testdir/test-1.tmp\"\ - #p\"$testdir/test-2.tmp\")" + #p\"$testdir/test-2.tmp\"\ + #p\"$testdir/wild\\\\?test.tmp\")" $SBCL <~%" - directory-pathname) + directory-pathname) (format t "~&~@~%" - directory-sorted-truenamestrings) + directory-sorted-truenamestrings) (format t "~&~@~%" - result-sorted-truenamestrings) + result-sorted-truenamestrings) (error "mismatch between DIRECTORY and expected result")))) (defun need-match (directory-pathname result-pathnames) "Require that (DIRECTORY DIRECTORY-PATHNAME) return RESULT-PATHNAMES @@ -150,39 +156,46 @@ Lisp filename syntax idiosyncrasies)." (need-match "./animal" '("animal/")) (need-match "animal/*.*" '("animal/invertebrate/" "animal/vertebrate/")) (need-match "animal/*/*.*" - '("animal/vertebrate/bird/" - "animal/vertebrate/mammal/" - "animal/vertebrate/snake/")) + '("animal/vertebrate/bird/" + "animal/vertebrate/mammal/" + "animal/vertebrate/snake/")) (need-match "plant/*.*" '("plant/kingsfoil" "plant/pipeweed")) (need-match "plant/**/*.*" '("plant/kingsfoil" "plant/pipeweed")) (need-match "plant/**/**/*.*" '("plant/kingsfoil" "plant/pipeweed")) (let ((vertebrates (mapcar (lambda (stem) - (concatenate 'string - "animal/vertebrate/" - stem)) - '("bird/" - "mammal/" - "mammal/bear/" "mammal/bear/grizzly" - "mammal/mythical/" "mammal/mythical/mermaid" - "mammal/mythical/unicorn" - "mammal/platypus" - "mammal/rodent/" "mammal/rodent/beaver" - "mammal/rodent/mouse" "mammal/rodent/rabbit" - "mammal/rodent/rat" - "mammal/ruminant/" "mammal/ruminant/cow" - "mammal/walrus" - "snake/" "snake/python")))) + (concatenate 'string + "animal/vertebrate/" + stem)) + '("bird/" + "mammal/" + "mammal/bear/" "mammal/bear/grizzly" + "mammal/mythical/" "mammal/mythical/mermaid" + "mammal/mythical/unicorn" + "mammal/platypus" + "mammal/rodent/" "mammal/rodent/beaver" + "mammal/rodent/mouse" "mammal/rodent/rabbit" + "mammal/rodent/rat" + "mammal/ruminant/" "mammal/ruminant/cow" + "mammal/walrus" + "snake/" "snake/python")))) (need-match "animal/vertebrate/**/*.*" vertebrates) (need-match "animal/vertebrate/mammal/../**/*.*" vertebrates) (need-match "animal/vertebrate/mammal/../**/**/*.*" vertebrates) + #+nil (need-match "animal/vertebrate/mammal/mythical/../**/../**/*.*" - vertebrates)) + vertebrates)) (need-match "animal/vertebrate/**/robot.*" nil) (need-match "animal/vertebrate/mammal/../**/*.robot" nil) (need-match "animal/vertebrate/mammal/../**/robot/*.*" nil) + #+nil (need-match "animal/vertebrate/mammal/robot/../**/../**/*.*" nil)) (need-matches) +(sb-ext:quit :unix-status 52) EOF +if [ $? != 52 ]; then + echo DIRECTORY/TRUENAME test part 1 failed, unexpected SBCL return code=$? + exit 1 +fi cd .. rm -r $testdir