From 1e34c25106c2c1a8713ef0aef0ffc4d2eccdbeeb Mon Sep 17 00:00:00 2001
From: vincentdarley <vincentdarley>
Date: Wed, 17 Dec 2003 10:12:04 +0000
Subject: fix to fs norm bug 860402

---
 tests/fileSystem.test | 50 ++++++++++++++++++++++++++++++--------------------
 1 file changed, 30 insertions(+), 20 deletions(-)

diff --git a/tests/fileSystem.test b/tests/fileSystem.test
index 5063417..3a78665 100644
--- a/tests/fileSystem.test
+++ b/tests/fileSystem.test
@@ -24,12 +24,13 @@ namespace eval ::tcl::test::fileSystem {
     catch {
 	file delete -force link.file
 	file delete -force dir.link
-	file delete -force [file join dir.file linkinside.file]
+	file delete -force [file join dir.dir linkinside.file]
     }
 
 makeFile "test file" gorp.file
-makeDirectory dir.file
-makeFile "test file in directory" [file join dir.file inside.file]
+makeDirectory dir.dir
+makeDirectory [file join dir.dir dirinside.dir]
+makeFile "test file in directory" [file join dir.dir inside.file]
 
 proc testPathEqual {one two} {
     if {[string equal $one $two]} {
@@ -42,9 +43,11 @@ proc testPathEqual {one two} {
 if {[catch {
     file link link.file gorp.file 
     file link \
-      [file join dir.file linkinside.file] \
-      [file join dir.file inside.file]
-    file link dir.link dir.file
+      [file join dir.dir linkinside.file] \
+      [file join dir.dir inside.file]
+    file link dir.link dir.dir
+    file link [file join dir.dir dirinside.link] \
+      [file join dir.dir dirinside.dir]
 }]} {
     tcltest::testConstraint hasLinks 0
 } else {
@@ -64,7 +67,7 @@ test filesystem-1.0 {link normalisation} {hasLinks} {
 } {0}
 
 test filesystem-1.1 {link normalisation} {hasLinks} {
-   string equal [file normalize dir.file] [file normalize dir.link]
+   string equal [file normalize dir.dir] [file normalize dir.link]
 } {0}
 
 test filesystem-1.2 {link normalisation} {hasLinks macOrUnix} {
@@ -73,45 +76,45 @@ test filesystem-1.2 {link normalisation} {hasLinks macOrUnix} {
 } {1}
 
 test filesystem-1.3 {link normalisation} {hasLinks} {
-    testPathEqual [file normalize [file join dir.file foo]] \
+    testPathEqual [file normalize [file join dir.dir foo]] \
      [file normalize [file join dir.link foo]]
 } {1}
 
 test filesystem-1.4 {link normalisation} {hasLinks} {
-    testPathEqual [file normalize [file join dir.file inside.file]] \
+    testPathEqual [file normalize [file join dir.dir inside.file]] \
      [file normalize [file join dir.link inside.file]]
 } {1}
 
 test filesystem-1.5 {link normalisation} {hasLinks} {
-    testPathEqual [file normalize [file join dir.file linkinside.file]] \
-     [file normalize [file join dir.file linkinside.file]]
+    testPathEqual [file normalize [file join dir.dir linkinside.file]] \
+     [file normalize [file join dir.dir linkinside.file]]
 } {1}
 
 test filesystem-1.6 {link normalisation} {hasLinks} {
-   string equal [file normalize [file join dir.file linkinside.file]] \
+   string equal [file normalize [file join dir.dir linkinside.file]] \
      [file normalize [file join dir.link inside.file]]
 } {0}
 
 test filesystem-1.7 {link normalisation} {hasLinks macOrUnix} {
     testPathEqual [file normalize [file join dir.link linkinside.file foo]] \
-     [file normalize [file join dir.file inside.file foo]]
+     [file normalize [file join dir.dir inside.file foo]]
 } {1}
 
 test filesystem-1.8 {link normalisation} {hasLinks} {
-   string equal [file normalize [file join dir.file linkinside.filefoo]] \
+   string equal [file normalize [file join dir.dir linkinside.filefoo]] \
      [file normalize [file join dir.link inside.filefoo]]
 } {0}
 
 test filesystem-1.9 {link normalisation} {macOrUnix hasLinks} {
     file delete -force dir.link
-    file link dir.link [file nativename dir.file]
-    testPathEqual [file normalize [file join dir.file linkinside.file foo]] \
+    file link dir.link [file nativename dir.dir]
+    testPathEqual [file normalize [file join dir.dir linkinside.file foo]] \
       [file normalize [file join dir.link inside.file foo]]
 } {1}
 
 test filesystem-1.10 {link normalisation: double link} {macOrUnix hasLinks} {
     file link dir2.link dir.link
-    testPathEqual [file normalize [file join dir.file linkinside.file foo]] \
+    testPathEqual [file normalize [file join dir.dir linkinside.file foo]] \
       [file normalize [file join dir2.link inside.file foo]]
 } {1}
 
@@ -119,7 +122,7 @@ makeDirectory dir2.file
 
 test filesystem-1.11 {link normalisation: double link, back in tree} {macOrUnix hasLinks} {
     file link [file join dir2.file dir2.link] dir2.link
-    testPathEqual [file normalize [file join dir.file linkinside.file foo]] \
+    testPathEqual [file normalize [file join dir.dir linkinside.file foo]] \
       [file normalize [file join dir2.file dir2.link inside.file foo]]
 } {1}
 
@@ -252,12 +255,19 @@ test filesystem-1.29 {link normalisation: link with ..} {hasLinks} {
     }
 } {ok}
 
+test filesystem-1.29.1 {link normalisation with two consecutive links} {hasLinks} {
+    testPathEqual [file normalize [file join dir.link dirinside.link abc]] \
+      [file normalize [file join dir.dir dirinside.dir abc]]
+} {1}
+
 file delete -force dir2.file
 file delete -force dir2.link
 file delete -force link.file dir.link
 file delete -force dir2
-removeFile [file join dir.file inside.file]
-removeDirectory dir.file
+file delete -force [file join dir.dir dirinside.link]
+removeFile [file join dir.dir inside.file]
+removeDirectory [file join dir.dir dirinside.dir]
+removeDirectory dir.dir
 
 test filesystem-1.30 {normalisation of nonexistent user} {
     list [catch {file normalize ~noonewiththisname} err] $err
-- 
cgit v0.12