Files
FASM4Delphi/Tests/TesterMain.pas
2018-02-11 23:55:18 +03:00

74 lines
1.8 KiB
ObjectPascal

unit TesterMain;
interface
uses
DUnitX.TestFramework,Fasm4Delphi,SysUtils;
type
[TestFixture]
TMyTestObject = class(TObject)
public
[Setup]
procedure Setup;
[TearDown]
procedure TearDown;
[Test]
procedure Test1;
[Test]
procedure Test2;
[Test]
procedure Test3;
[Test]
procedure Test4;
end;
const
CompliterMemSize=$10000;
var
CompliterMem:PFASM_STATE;
implementation
procedure TMyTestObject.Setup;
begin
end;
procedure TMyTestObject.TearDown;
begin
end;
procedure TMyTestObject.Test1;
begin
if fasm_AssembleFile('..\..\Test1.ASM',CompliterMem,CompliterMemSize)<>FASM_OK then
raise Exception.Create('Condition: '+CompliterMem^.condition.ToString+sLineBreak+
'Error Code: '+CompliterMem^.error_code.ToString+sLineBreak);
end;
procedure TMyTestObject.Test2;
begin
if fasm_Assemble('add eax,0',CompliterMem,CompliterMemSize)<>FASM_OK then
raise Exception.Create('Condition: '+CompliterMem^.condition.ToString+sLineBreak+
'Error Code: '+CompliterMem^.error_code.ToString+sLineBreak);
end;
procedure TMyTestObject.Test3;
begin
if fasm_AssembleFile('..\..\..\FasmDll\FASM.ASH',CompliterMem,CompliterMemSize)=FASM_OK then
raise Exception.Create('FASM is compiling something that it is can not compile at all.');
end;
procedure TMyTestObject.Test4;
begin
if fasm_Assemble('call -100',CompliterMem,CompliterMemSize)<>FASM_OK then
raise Exception.Create('Condition: '+CompliterMem^.condition.ToString+sLineBreak+
'Error Code: '+CompliterMem^.error_code.ToString+sLineBreak);
end;
initialization
TDUnitX.RegisterTestFixture(TMyTestObject);
LoadFASM('..\..\..\FasmDll\FASM.DLL');
GetMem(CompliterMem,CompliterMemSize);
end.