[fpc-devel] TJSONDeStreamer can't handle such date format 'yyyy-MM-dd"T"hh:nn:ss"Z"'

Michael Van Canneyt michael at freepascal.org
Tue Jul 19 11:55:36 CEST 2016



On Tue, 19 Jul 2016, Luiz Americo Pereira Camara wrote:

> 2016-07-19 5:47 GMT-03:00 Michael Van Canneyt <michael at freepascal.org>:
>
>>
>>
>> On Tue, 19 Jul 2016, Dimitrios Chr. Ioannidis wrote:
>>
>>     Exception class:   EAssertionFailedError
>>>     Exception message: "Correct extended value" expected: <5,67> but was:
>>> <6>
>>>         at   $0043241F  TTESTJSONDESTREAMER__TESTFLOAT4,  line 374 of
>>> testjsonrtti.pp
>>>
>>
>> I am aware of this.
>>
>> However, this is only on i386, on 64-bit the code runs fine.
>> I have no idea why, the code should be CPU agnostic.
>>
>> I have not yet had the opportunity to debug it on a i386 machine.
>>
>
> I just looked at it in this weekend.
>
> After doing some tests and reading the docs i realized that is not a bug in
> fpjsonrtti, nor a bug at all.
>
> First write directly 4.56 to the property (of comp type). Reading it
> directly gives a rounded value (5)
>
> Than i read the docs:
> http://www.freepascal.org/docs-html/ref/refsu6.html
> "The Comp type is, in effect, a 64-bit integer and is not available on all
> target platforms. To get more information on the supported types for each
> platform, refer to the Programmer’s Guide. "
>
> http://www.freepascal.org/docs-html/prog/progsu160.html#x204-2130008.2.5
> "Comp
>
> For Intel 80x86 processors, the comp type contains a 63-bit integral value,
> and a sign bit (in the MSB position). The comp type uses 8 bytes of storage
> space.
>
> On other processors, the comp type is not supported.
> "
>
> It works in 64bit cpu because is testing other code:
>
> {$ifdef CPUX86_64}
>    AssertProp('ExtendedProp',TJSONFloat(5));
>  {$else}
>    AssertProp('ExtendedProp',4.56);
>  {$endif}

Haha... I was thrown off by the ExtendedProp in the error reports.
That should be CompProp obviously. I will adapt the test code accordingly.

Many many thanks for spotting this !!

Michael.


More information about the fpc-devel mailing list