123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 |
- unit tctsutils;
- {$mode ObjFPC}{$H+}
- interface
- uses
- Classes, SysUtils, fpcunit, testregistry, tsutils, tstypes;
- Type
- { TTestUtilsCase }
- TTestUtilsCase = class(TTestCase)
- Private
- FConfig : TConfig;
- FFileName : String;
- FReadResult : Boolean;
- Public
- procedure SetUp; override;
- procedure TearDown; override;
- procedure DoRead;
- procedure CreateFile(const aLines : Array of string);
- Property ReadResult : Boolean Read FReadResult;
- Published
- procedure TestNoFile;
- procedure TestEmptyFile;
- procedure TestNoPercent;
- procedure TestNoEndComment;
- procedure TestSpaces;
- procedure TestCodeAndNote;
- procedure TestConfig;
- procedure TestNeedOptions;
- procedure TestDelOptions;
- Procedure TestNeedTarget;
- Procedure TestSkipTarget;
- procedure TestNeedCPU;
- procedure TestSkipCPU;
- Procedure TestSkipEMU;
- Procedure TestMinVersion;
- Procedure TestMaxVersion;
- Procedure TestResultCode;
- Procedure TestUsesGraph;
- Procedure TestShouldFail;
- procedure TestNoRun;
- Procedure TestNeedLibrary;
- Procedure TestNeedAfter;
- procedure TestTimeout;
- procedure TestFiles;
- Procedure TestWPOParas;
- Procedure TestWPOPasses;
- Procedure TestDelFiles;
- Procedure TestInteractive;
- end;
- implementation
- { TTestUtilsCase }
- procedure TTestUtilsCase.SetUp;
- begin
- inherited SetUp;
- FReadResult:=False;
- FFileName:=GetTempDir(False)+TestName+'.pas';
- if FileExists(FFileName) then
- if not DeleteFile(FFileName) then
- Fail('Failed to delete file '+FFileName);
- end;
- procedure TTestUtilsCase.TearDown;
- begin
- if (FFileName<>'') and FileExists(FFileName) then
- if not DeleteFile(FFileName) then
- Fail('Failed to delete file '+FFileName);
- inherited TearDown;
- end;
- procedure TTestUtilsCase.DoRead;
- begin
- FReadResult:=GetConfig('tc',FFileName,FConfig);
- end;
- procedure TTestUtilsCase.CreateFile(const aLines: array of string);
- var
- l : TStrings;
- begin
- L:=TStringList.Create;
- try
- l.AddStrings(aLines,True);
- l.SaveToFile(FFileName);
- finally
- l.Free;
- end;
- end;
- procedure TTestUtilsCase.TestNoFile;
- begin
- DoRead;
- AssertFalse('Not read',ReadResult);
- end;
- procedure TTestUtilsCase.TestEmptyFile;
- begin
- CreateFile([]);
- DoRead;
- AssertTrue('read',ReadResult);
- end;
- procedure TTestUtilsCase.TestNoPercent;
- begin
- CreateFile(['{CPU=X}']);
- DoRead;
- AssertTrue('read',ReadResult);
- AssertEquals('No value','',FCOnfig.NeedCPU);
- end;
- procedure TTestUtilsCase.TestNoEndComment;
- begin
- CreateFile(['{ %CPU=X']);
- DoRead;
- AssertTrue('read',ReadResult);
- AssertEquals('No value','',FConfig.NeedCPU);
- end;
- procedure TTestUtilsCase.TestSpaces;
- begin
- CreateFile(['{ %CPU = X }']);
- DoRead;
- AssertTrue('read',ReadResult);
- AssertEquals('No value','X',FConfig.NeedCPU);
- end;
- procedure TTestUtilsCase.TestCodeAndNote;
- begin
- CreateFile(['{%KNOWNRUNERROR=123X }']);
- DoRead;
- AssertTrue('read',ReadResult);
- AssertEquals('Runerror value',123,FConfig.KnownRunError);
- AssertEquals('RunError note','X',FConfig.KnownRunNote);
- end;
- procedure TTestUtilsCase.TestConfig;
- begin
- CreateFile(['{%CONFIGFILE=X.CFG Y.CFG}']);
- DoRead;
- AssertTrue('read',ReadResult);
- AssertEquals('Runerror value','X.CFG',FConfig.ConfigFileSrc);
- AssertEquals('RunError note','Y.CFG',FConfig.ConfigFileDst);
- end;
- procedure TTestUtilsCase.TestNeedOptions;
- begin
- CreateFile(['{%OPT=XYZ}']);
- DoRead;
- AssertEquals('Value','XYZ',FConfig.NeedOptions);;
- end;
- procedure TTestUtilsCase.TestDelOptions;
- begin
- CreateFile(['{%DELOPT=XYZ}']);
- DoRead;
- AssertEquals('Value','XYZ',FConfig.DelOptions);;
- end;
- procedure TTestUtilsCase.TestNeedTarget;
- begin
- CreateFile(['{%TARGET=XYZ}']);
- DoRead;
- AssertEquals('Value','XYZ',FConfig.NeedTarget);;
- end;
- procedure TTestUtilsCase.TestSkipTarget;
- begin
- CreateFile(['{%SKIPTARGET=XYZ}']);
- DoRead;
- AssertEquals('Value','XYZ',FConfig.SkipTarget);;
- end;
- procedure TTestUtilsCase.TestNeedCPU;
- begin
- CreateFile(['{%SKIPEMU=XYZ}']);
- DoRead;
- AssertEquals('Value','XYZ',FConfig.SkipEmu);;
- end;
- procedure TTestUtilsCase.TestSkipCPU;
- begin
- CreateFile(['{%SKIPEMU=XYZ}']);
- DoRead;
- AssertEquals('Value','XYZ',FConfig.SkipEmu);;
- end;
- procedure TTestUtilsCase.TestSkipEMU;
- begin
- CreateFile(['{%SKIPEMU=XYZ}']);
- DoRead;
- AssertEquals('Value','XYZ',FConfig.SkipEmu);;
- end;
- procedure TTestUtilsCase.TestMinVersion;
- begin
- CreateFile(['{%VERSION=XYZ}']);
- DoRead;
- AssertEquals('Value','XYZ',FConfig.MinVersion);;
- end;
- procedure TTestUtilsCase.TestMaxVersion;
- begin
- CreateFile(['{%MAXVERSION=XYZ}']);
- DoRead;
- AssertEquals('Value','XYZ',FConfig.MaxVersion);;
- end;
- procedure TTestUtilsCase.TestResultCode;
- begin
- CreateFile(['{%RESULT=1}']);
- DoRead;
- AssertEquals('Value',1,FConfig.ResultCode);
- end;
- procedure TTestUtilsCase.TestUsesGraph;
- begin
- CreateFile(['{%GRAPH}']);
- DoRead;
- AssertTrue('Value',FConfig.UsesGraph);
- end;
- procedure TTestUtilsCase.TestShouldFail;
- begin
- CreateFile(['{%FAIL}']);
- DoRead;
- AssertTrue('Value',FConfig.ShouldFail);
- end;
- procedure TTestUtilsCase.TestNoRun;
- begin
- CreateFile(['{%NORUN}']);
- DoRead;
- AssertTrue('Value',FConfig.NoRun);
- end;
- procedure TTestUtilsCase.TestNeedLibrary;
- begin
- CreateFile(['{%NEEDLIBRARY}']);
- DoRead;
- AssertTrue('Value',FConfig.NeedLibrary);
- end;
- procedure TTestUtilsCase.TestNeedAfter;
- begin
- CreateFile(['{%NEEDEDAFTER}']);
- DoRead;
- AssertTrue('Value',FConfig.NeededAfter);
- end;
- procedure TTestUtilsCase.TestTimeout;
- begin
- CreateFile(['{%TIMEOUT=123}']);
- DoRead;
- AssertEquals('Value',123,FConfig.Timeout)
- end;
- procedure TTestUtilsCase.TestFiles;
- begin
- CreateFile(['{%FILES=XYZ}']);
- DoRead;
- AssertEquals('Value','XYZ',FConfig.Files);;
- end;
- procedure TTestUtilsCase.TestWPOParas;
- begin
- CreateFile(['{%WPOPARAS=XYZ}']);
- DoRead;
- AssertEquals('Value','XYZ',FConfig.wpoparas);;
- end;
- procedure TTestUtilsCase.TestWPOPasses;
- begin
- CreateFile(['{%WPOPASSES=2}']);
- DoRead;
- AssertEquals('Value',2,FConfig.wpopasses);
- end;
- procedure TTestUtilsCase.TestDelFiles;
- begin
- CreateFile(['{%DELFILES=XYZ}']);
- DoRead;
- AssertEquals('Value','XYZ',FConfig.DelFiles);
- end;
- procedure TTestUtilsCase.TestInteractive;
- begin
- CreateFile(['{%INTERACTIVE}']);
- DoRead;
- AssertTrue('Value',FConfig.IsInteractive);
- end;
- initialization
- RegisterTest(TTestUtilsCase);
- end.
|