3
3
./runtests --format=plain --suite=TTestCodetoolsCfgScript
4
./runtests --format=plain --suite=TestCfgScript
4
./runtests --format=plain --suite=TestCfgScriptBase
5
./runtests --format=plain --suite=TestCfgScriptLCL
22
23
TTestCodetoolsCfgScript = class(TTestCase)
24
procedure TestResult(Script, ExpectedResult: string);
25
procedure TestResult(Script, ExpectedResult: string; Vars: PCTCfgScriptVariables = nil);
25
26
procedure TestSyntaxError(Script, ExpectedError: string);
27
procedure TestCfgScript;
28
procedure TestCfgScriptBase;
29
procedure TestCfgScriptLCL;
32
34
{ TTestCodetoolsCfgScript }
34
procedure TTestCodetoolsCfgScript.TestResult(Script, ExpectedResult: string);
36
procedure TTestCodetoolsCfgScript.TestResult(Script, ExpectedResult: string;
37
Vars: PCTCfgScriptVariables);
36
39
Engine: TCTConfigScriptEngine;
37
40
ScriptResult: String;
40
43
Engine:=TCTConfigScriptEngine.Create;
42
45
Engine.MaxErrorCount:=1;
47
Engine.Variables.Assign(Vars^);
43
48
if not Engine.Execute(Script) then begin
44
49
writeln('Script failed to run:');
45
50
for i:=0 to Engine.ErrorCount-1 do
78
procedure TTestCodetoolsCfgScript.TestCfgScript;
85
procedure TTestCodetoolsCfgScript.TestCfgScriptBase;
80
87
TestResult('Result:=2;','2');
81
88
TestResult('a:=2; b:=a; Result:=b;','2');
89
96
TestSyntaxError('{invalid operator * }Result:=2*3;','expected ; of statement, but found *');
99
procedure TTestCodetoolsCfgScript.TestCfgScriptLCL;
101
Vars: TCTCfgScriptVariables;
103
Vars:=TCTCfgScriptVariables.Create;
105
Vars['TargetOS']:='wince';
106
Vars['TargetCPU']:='arm';
108
Vars['SrcOS']:='win';
110
'// LCLWidgetType'#10
111
+'if undefined(LCLWidgetType) then begin'#10
112
+' //if GetIDEValue(''OS'')=TargetOS then begin'#10
113
+' // use the same widgettype as the IDE'#10
114
+' //LCLWidgetType := GetIDEValue(''LCLWidgetType'');'#10
115
+' //if LCLWidgetType=''nogui'' then'#10
116
+' //LCLWidgetType:='''';'#10
118
+' if LCLWidgetType+''''='''' then begin'#10
119
+' if (TargetOS=''win32'') or (TargetOS=''win64'') then'#10
120
+' LCLWidgetType := ''win32'''#10
121
+' else if TargetOS=''wince'' then'#10
122
+' LCLWidgetType := ''wince'''#10
123
+' else if TargetOS=''darwin'' then'#10
124
+' LCLWidgetType := ''carbon'''#10
126
+' LCLWidgetType:=''gtk2'';'#10
130
//Vars.WriteDebugReport('LCL',' ');
131
AssertEquals('LCLWidgetType','wince',Vars['LCLWidgetType']);
93
138
AddToCodetoolsTestSuite(TTestCodetoolsCfgScript);