1::
2:: PROJECT:     ReactOS CMD Testing Suite
3:: LICENSE:     GPL v2 or any later version
4:: FILE:        tests/set.cmd
5:: PURPOSE:     Tests for the "set" command
6:: COPYRIGHT:   Copyright 2005 Royce Mitchell III
7::              Copyright 2008 Colin Finck <mail@colinfinck.de>
8::
9
10:: Test the /A parameter
11call :_test "set /a a=1"
12call :_testvar %a% a 1
13
14call :_test "set /a b=a"
15call :_testvar %b% b 1
16
17call :_test "set /a a=!5"
18call :_testvar %a% a 0
19
20call :_test "set /a a=!a"
21call :_testvar %a% a 1
22
23call :_test "set /a a=~5"
24call :_testvar %a% a -6
25
26call :_test "set /a a=5,a=-a"
27call :_testvar %a% a -5
28
29call :_test "set /a a=5*7"
30call :_testvar %a% a 35
31
32call :_test "set /a a=2000/10"
33call :_testvar %a% a 200
34
35call :_test "set /a a=42%%%%9"
36call :_testvar %a% a 6
37
38call :_test "set /a a=5%%2"
39call :_testvar %a% a 5
40
41call :_test "set /a a=42%13"
42call :_testvar %a% a 423
43
44call :_test "set /a a=7+9"
45call :_testvar %a% a 16
46
47call :_test "set /a a=9-7"
48call :_testvar %a% a 2
49
50set /a a=9^<^<2
51call :_testvar %a% a 36
52
53set /a a=36^>^>2
54call :_testvar %a% a 9
55
56set /a a=42^&9
57call :_testvar %a% a 8
58
59set /a a=32^9
60call :_testvar %a% a 329
61
62set /a a=32^^9
63call :_testvar %a% a 41
64
65set /a a=10^|22
66call :_testvar %a% a 30
67
68call :_test "set /a a=2,a*=3"
69call :_testvar %a% a 6
70
71call :_test "set /a a=11,a/=2"
72call :_testvar %a% a 5
73
74call :_test "set /a a=42,a%%%%=9"
75call :_testvar %a% a 6
76
77call :_test "set /a a=7,a+=9"
78call :_testvar %a% a 16
79
80call :_test "set /a a=9,a-=7"
81call :_testvar %a% a 2
82
83set /a a=42,a^&=9
84call :_testvar %a% a 8
85
86set /a a=32,a^^=9
87call :_testvar %a% a 41
88
89set /a a=10,a^|=22
90call :_testvar %a% a 30
91
92set /a a=9,a^<^<=2
93call :_testvar %a% a 36
94
95set /a a=36,a^>^>=2
96call :_testvar %a% a 9
97
98call :_test "set /a a=1,2"
99call :_testvar %a% a 1
100
101call :_test "set /a a=(a=1,a+2)"
102call :_testvar %a% a 3
103
104goto :EOF
105