Files
FasmOnDelphi/Tests/TesterMain.pas
2018-03-10 23:33:07 +03:00

80 lines
2.0 KiB
ObjectPascal

unit TesterMain;
interface
uses
DUnitX.TestFramework,Fasm4Delphi,FasmOnDelphi,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;
var
Res:TFasmOut;
begin
Res:=FasmAssemble('add eax,',CompliterMemSize);
raise Exception.Create('Answ: '+Res.OutPut.OutStr+sLineBreak);
//'Error Code:'+CompliterMem^.error_code.ToString+sLineBreak);
if Res.OutPut.Error<>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);
OpenFASM('..\..\..\Fasm4Delphi\FasmDll\FASM.DLL',true);
//OpenFASM('..\..\..\fasmw172\FASM.EXE');
GetMem(CompliterMem,CompliterMemSize);
end.