mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-10 13:59:20 +02:00
FpDebug: tests for signed enum
This commit is contained in:
parent
3f5473a15b
commit
b4af31d09f
@ -1066,8 +1066,11 @@ t.Add(AName, p+'FiveDynArray'+e+'[0]', weMatch('.*',skRecord));
|
||||
|
||||
t.Add(AName, p+'EnumX0a'+e, weEnum('EnXVal01', 'TEnumX0'));
|
||||
t.Add(AName, p+'EnumX0b'+e, weEnum('EnXVal04', 'TEnumX0'));
|
||||
t.Add(AName, p+'EnumX1a'+e, weEnum('EnXVal11', 'TEnumX1'));
|
||||
t.Add(AName, p+'EnumX1b'+e, weEnum('EnXVal14', 'TEnumX1'));
|
||||
t.Add(AName, p+'EnumX1a'+e, weEnum('EnXVal11 = -3', 'TEnumX1'));
|
||||
t.Add(AName, p+'EnumX1b'+e, weEnum('EnXVal14 = 10', 'TEnumX1'));
|
||||
t.Add(AName, p+'EnumX1Aa'+e, weEnum('EnXValA11 = 1', 'TEnumX1a'));
|
||||
t.Add(AName, p+'EnumX1Ab'+e, weEnum('EnXValA14 = 190', 'TEnumX1a'))
|
||||
.IgnAll(stDwarf2, Compiler.Version >= 030301);
|
||||
t.Add(AName, p+'EnumX2a'+e, weEnum('EnXVal21', 'TEnumX2'));
|
||||
t.Add(AName, p+'EnumX2b'+e, weEnum('EnXVal24', 'TEnumX2'));
|
||||
|
||||
@ -1428,6 +1431,9 @@ begin
|
||||
t.Add('EnXVal14', 'EnXVal14', weMatch('EnXVal14 *:?= *10', skEnumValue));
|
||||
t.Add('EnXVal21', 'EnXVal21', weMatch('EnXVal21 *:?= *-203', skEnumValue));
|
||||
t.Add('EnXVal24', 'EnXVal24', weMatch('EnXVal24 *:?= *210', skEnumValue));
|
||||
t.Add('EnXValA11', 'EnXValA11', weMatch('EnXValA11 *= *1', skEnumValue));
|
||||
t.Add('EnXValA14', 'EnXValA14', weMatch('EnXValA14 *= *190', skEnumValue))
|
||||
.IgnAll(stDwarf2, Compiler.Version >= 030301);
|
||||
|
||||
// recurse pointers
|
||||
// TODO: currently just run them and check they do not fail,crash or hang.
|
||||
@ -4055,7 +4061,32 @@ procedure TTestWatches.TestWatchesExpression;
|
||||
t.Add('ENUM-Cmp: ', 'TEnum('+p+'Enum) > eNVaL3', weBool(False));
|
||||
t.Add('ENUM-Cmp: ', p+'Enum > TEnum(2)', weBool(False));
|
||||
t.Add('ENUM-Cmp: ', p+'Enum > TEnum(1)', weBool(True));
|
||||
t.Add('ENUM-Cmp: ', p+'Enum > TEnum(-1)', weBool(True));
|
||||
t.Add('ENUM-Cmp: ', p+'Enum > TEnum(-1)', weBool(False)) // Enum is all positive / cast will be an unsigned enum // changed
|
||||
.IgnAll([], Compiler.Version < 030301)
|
||||
.IgnAll(stDwarf2, Compiler.Version >= 030301);
|
||||
t.Add('ENUM-Cmp: ', p+'EnumX0a < TEnumX0(-1)', weBool(True));
|
||||
t.Add('ENUM-Cmp: ', p+'EnumX0a > TEnumX0(-900)', weBool(True));
|
||||
t.Add('ENUM-Cmp: ', p+'EnumX0b > TEnumX0(-1)', weBool(True));
|
||||
|
||||
t.Add('ENUM-Cmp: ', p+'EnumX1a < '+p+'EnumX1b', weBool(True));
|
||||
t.Add('ENUM-Cmp: ', p+'EnumX1a < EnXVal14', weBool(True));
|
||||
t.Add('ENUM-Cmp: ', p+'EnumX1a = EnXVal11', weBool(True));
|
||||
t.Add('ENUM-Cmp: ', p+'EnumX1b > EnXVal11', weBool(True));
|
||||
t.Add('ENUM-Cmp: ', p+'EnumX1b > EnXVal12', weBool(True));
|
||||
t.Add('ENUM-Cmp: ', 'EnXVal11 < EnXVal14', weBool(True));
|
||||
|
||||
t.Add('ENUM-Cmp: ', p+'EnumX1Aa < '+p+'EnumX1Ab', weBool(True))
|
||||
.IgnAll(stDwarf2, Compiler.Version >= 030301);
|
||||
t.Add('ENUM-Cmp: ', p+'EnumX1Aa < EnXValA14', weBool(True))
|
||||
.IgnAll(stDwarf2, Compiler.Version >= 030301);
|
||||
t.Add('ENUM-Cmp: ', p+'EnumX1Aa = EnXValA11', weBool(True))
|
||||
.IgnAll(stDwarf2, Compiler.Version >= 030301);
|
||||
t.Add('ENUM-Cmp: ', p+'EnumX1Ab > EnXValA11', weBool(True))
|
||||
.IgnAll(stDwarf2, Compiler.Version >= 030301);
|
||||
t.Add('ENUM-Cmp: ', p+'EnumX1Ab > EnXValA12', weBool(True))
|
||||
.IgnAll(stDwarf2, Compiler.Version >= 030301);
|
||||
t.Add('ENUM-Cmp: ', 'EnXValA11 < EnXValA14', weBool(True))
|
||||
.IgnAll(stDwarf2, Compiler.Version >= 030301);
|
||||
end;
|
||||
|
||||
var
|
||||
|
Binary file not shown.
@ -276,7 +276,8 @@ type
|
||||
|
||||
TEnumX0 = (EnXVal01= -503, EnXVal02= 4, EnXVal03= 7, EnXVal04= 510);
|
||||
{$PackEnum 1}
|
||||
TEnumX1 = (EnXVal11= -3, EnXVal12= 4, EnXVal13= 7, EnXVal14= 10);
|
||||
TEnumX1 = (EnXVal11= -3, EnXVal12= 4, EnXVal13= 7, EnXVal14= 10);
|
||||
TEnumX1a = (EnXValA11= 1, EnXValA12= 4, EnXValA13= 7, EnXValA14= 190);
|
||||
{$PackEnum 2}
|
||||
TEnumX2 = (EnXVal21= -203, EnXVal22= 4, EnXVal23= 7, EnXVal24= 210);
|
||||
{$PackEnum default}
|
||||
|
@ -425,6 +425,8 @@
|
||||
pre__EnumX0b{e} _OP_ TEnumX0(EnXVal04); //@@ _pre3_EnumX0b{e3};
|
||||
pre__EnumX1a{e} _OP_ TEnumX1(EnXVal11); //@@ _pre3_EnumX1a{e3};
|
||||
pre__EnumX1b{e} _OP_ TEnumX1(EnXVal14); //@@ _pre3_EnumX1b{e3};
|
||||
pre__EnumX1Aa{e} _OP_ TEnumX1a(EnXValA11); //@@ _pre3_EnumX1Aa{e3};
|
||||
pre__EnumX1Ab{e} _OP_ TEnumX1a(EnXValA14); //@@ _pre3_EnumX1Ab{e3};
|
||||
pre__EnumX2a{e} _OP_ TEnumX2(EnXVal21); //@@ _pre3_EnumX2a{e3};
|
||||
pre__EnumX2b{e} _OP_ TEnumX2(EnXVal24); //@@ _pre3_EnumX2b{e3};
|
||||
|
||||
|
@ -1845,6 +1845,17 @@ begin
|
||||
Result := True;
|
||||
Expect := AContext.Expectation;
|
||||
|
||||
TestWatchDisplayFormat.Enum.UseInherited := True;
|
||||
TestWatchDisplayFormat.EnumVal.UseInherited := True;
|
||||
TestWatchDisplayFormat.Enum.MainFormat := vdfEnumName;
|
||||
TestWatchDisplayFormat.EnumVal.MainFormat := vdfEnumName;
|
||||
if pos('=', Expect.ExpTextData) > 0 then begin
|
||||
TestWatchDisplayFormat.Enum.UseInherited := False;
|
||||
TestWatchDisplayFormat.EnumVal.UseInherited := False;
|
||||
TestWatchDisplayFormat.Enum.MainFormat := vdfEnumNameAndOrd;
|
||||
TestWatchDisplayFormat.EnumVal.MainFormat := vdfEnumNameAndOrd;
|
||||
end;
|
||||
|
||||
Result := TestEquals('Data', Expect.ExpTextData, FWatchResultPrinter.PrintWatchValue(AContext.WatchRes, TestWatchDisplayFormat, ''), not(Compiler.SymbolType in stDwarf2), AContext, AnIgnoreRsn);
|
||||
end;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user