Frédéric Delanoy : cmd/tests: Add tests for variable delayed expansion.

Alexandre Julliard julliard at winehq.org
Mon Aug 1 13:22:13 CDT 2011


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

Author: Frédéric Delanoy <frederic.delanoy at gmail.com>
Date:   Mon Aug  1 11:46:53 2011 +0200

cmd/tests: Add tests for variable delayed expansion.

---

 programs/cmd/tests/test_builtins.cmd     |   40 ++++++++++++++++++++++++++++++
 programs/cmd/tests/test_builtins.cmd.exp |   15 +++++++++++
 2 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd
index 04d8fdd..3f8c72e 100644
--- a/programs/cmd/tests/test_builtins.cmd
+++ b/programs/cmd/tests/test_builtins.cmd
@@ -168,6 +168,46 @@ echo P%ERRORLEVEL%
 echo %ERRORLEVEL%S
 echo P%ERRORLEVEL%S
 
+echo ------------ Testing variable delayed expansion --------------
+rem NT4 doesn't support this
+echo ...default mode (load-time expansion)
+set FOO=foo
+echo %FOO%
+echo !FOO!
+if %FOO% == foo (
+    set FOO=bar
+    if %FOO% == bar (echo bar) else echo foo
+)
+
+set FOO=foo
+if %FOO% == foo (
+    set FOO=bar
+    if !FOO! == bar (echo bar) else echo foo
+)
+
+echo ...runtime (delayed) expansion mode
+setlocal EnableDelayedExpansion
+set FOO=foo
+echo %FOO%
+echo !FOO!
+if %FOO% == foo (
+    set FOO=bar
+    if %FOO% == bar (echo bar) else echo foo
+)
+
+set FOO=foo
+if %FOO% == foo (
+    set FOO=bar
+    if !FOO! == bar (echo bar) else echo foo
+)
+echo %ErrorLevel%
+setlocal DisableDelayedExpansion
+echo %ErrorLevel%
+set FOO=foo
+echo %FOO%
+echo !FOO!
+set FOO=
+
 echo ------------ Testing conditional execution --------------
 echo ...unconditional ^&
 call :setError 123 & echo foo1
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp
index d7ac58a..b754faf 100644
--- a/programs/cmd/tests/test_builtins.cmd.exp
+++ b/programs/cmd/tests/test_builtins.cmd.exp
@@ -146,6 +146,21 @@ ERRORLEVEL
 P0
 0S
 P0S
+------------ Testing variable delayed expansion --------------
+...default mode (load-time expansion)
+foo
+!FOO!
+foo
+foo
+...runtime (delayed) expansion mode
+foo
+ at todo_wine@foo at or_broken@!FOO!
+foo
+ at todo_wine@bar at or_broken@foo
+0
+0 at or_broken@1
+foo
+!FOO!
 ------------ Testing conditional execution --------------
 @todo_wine at ...unconditional &
 foo1




More information about the wine-cvs mailing list