=?UTF-8?Q?Fr=C3=A9d=C3=A9ric=20Delanoy=20?=: cmd/tests: Correctly determine script path for root directories.

Alexandre Julliard julliard at winehq.org
Tue Mar 11 14:45:40 CDT 2014


Module: wine
Branch: master
Commit: f80dd2469f0560714710f6f4e1d4905b17abb8bd
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f80dd2469f0560714710f6f4e1d4905b17abb8bd

Author: Frédéric Delanoy <frederic.delanoy at gmail.com>
Date:   Tue Mar 11 00:16:27 2014 +0100

cmd/tests: Correctly determine script path for root directories.

---

 programs/cmd/tests/batch.c               |   10 ++++++++--
 programs/cmd/tests/test_builtins.cmd     |    7 +++++++
 programs/cmd/tests/test_builtins.cmd.exp |    3 +++
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/programs/cmd/tests/batch.c b/programs/cmd/tests/batch.c
index c011d70..9df0bc5 100644
--- a/programs/cmd/tests/batch.c
+++ b/programs/cmd/tests/batch.c
@@ -459,8 +459,14 @@ START_TEST(batch)
     drive[0] = workdir[0];
     drive[1] = workdir[1]; /* Should be ':' */
     memcpy(path, workdir + drive_len, (workdir_len - drive_len) * sizeof(drive[0]));
-    path[workdir_len - drive_len] = '\\';
-    path_len = workdir_len - drive_len + 1;
+
+    /* Only add trailing backslash to 'path' for non-root directory */
+    if (workdir_len - drive_len > 1) {
+        path[workdir_len - drive_len] = '\\';
+        path_len = workdir_len - drive_len + 1;
+    } else {
+        path_len = 1; /* \ */
+    }
     shortpath_len = GetShortPathNameA(path, shortpath,
                                       sizeof(shortpath)/sizeof(shortpath[0]));
 
diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd
index 1d1eea4..16fdd43 100644
--- a/programs/cmd/tests/test_builtins.cmd
+++ b/programs/cmd/tests/test_builtins.cmd
@@ -308,6 +308,13 @@ set WINE_FOO=
 
 echo ------------ Testing variable expansion ------------
 call :setError 0
+echo ~p0 should be path containing batch file
+echo %~p0
+mkdir dummydir
+cd dummydir
+echo %~p0
+cd ..
+rmdir dummydir
 echo ~dp0 should be directory containing batch file
 echo %~dp0
 mkdir dummydir
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp
index 7380185..1575984 100644
--- a/programs/cmd/tests/test_builtins.cmd.exp
+++ b/programs/cmd/tests/test_builtins.cmd.exp
@@ -259,6 +259,9 @@ foo
 'jim'
 'apple"banana"grape'
 ------------ Testing variable expansion ------------
+~p0 should be path containing batch file
+ at path@
+ at path@
 ~dp0 should be directory containing batch file
 @pwd@\
 @pwd@\




More information about the wine-cvs mailing list