cmd/tests: Add tests for variable delayed expansion

Frédéric Delanoy frederic.delanoy at gmail.com
Mon Aug 1 04:46:53 CDT 2011


---
 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
-- 
1.7.6




More information about the wine-patches mailing list