74 lines
1.8 KiB
ObjectPascal
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.
|