[Pkg-pascal-devel] Bug#891682: castle-game-engine: FTBFS on arm64: assorted test suite errors and failures
Punit Agrawal
punitagrawal at gmail.com
Sat Apr 14 11:42:29 BST 2018
On Tue, 27 Feb 2018 18:56:10 -0500 "Aaron M. Ucko" <ucko at debian.org> wrote:
> Source: castle-game-engine
> Version: 6.4+dfsg1-2
> Severity: important
> Tags: upstream
> Justification: fails to build from source
> User: debian-arm at lists.debian.org
> Usertags: arm64
>
> Builds of castle-game-engine for arm64 have been failing. As of the
> latest upload (6.4+dfsg1-2), it ran into an assortment of test suite
> errors and failures, per the below excerpts from [1]. Could you
> please take a look?
There are a few different errors/failures in the log. I started out by
looking into -
> List of failures:
> Failure:
> Message: TTestRectangles.TestScaleEmpty: expected: <0> but was: <429496729600>
> Exception class: EAssertionFailedError
> Exception message: expected: <0> but was: <429496729600>
> at $00000000004C57C4
After some trial and error, I landed on the first failing statement in
TestScaleEmpty.
AssertEquals(0, R.ScaleAround0(2).Width);
where R is a Rectangle(10, 20, 0, 50), i.e., Width = 0 and Height = 50.
ScaleAround0() returns a record of type TRectangle.
function TRectangle.ScaleAround0(const Factor: Single): TRectangle;
var
ResultRight, ResultTop: Integer;
begin
if Width > 0 then
begin
Result.Left := Floor(Left * Factor);
ResultRight := Ceil(Right * Factor);
Result.Width := ResultRight - Result.Left;
end else
begin
Result.Width := Width;
Result.Left := Left;
end;
if Height > 0 then
begin
Result.Bottom := Floor(Bottom * Factor);
ResultTop := Ceil(Top * Factor);
Result.Height := ResultTop - Result.Bottom;
end else
begin
Result.Height := Height;
Result.Bottom := Bottom;
end;
end;
After parsing the function, the AssertEquals() makes sense.
At this point, I suspect it's a compiler issue. I've created a
reproducer (attached) that highlights the problem and behaves
differently on arm64 and x86.
Note: I am not at all familiar with Pascal. Input from somebody more
familiar with the language ecosystem will be greatly appreciated.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.pas
Type: application/octet-stream
Size: 856 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-pascal-devel/attachments/20180414/319c34a5/attachment.obj>
More information about the Pkg-pascal-devel
mailing list