You are not logged in.
Pages: 1
mORMot 1.18.2363:
Synopse mORMot Framework Automated tests
------------------------------------------
1. Synopse libraries
1.1. Low level common:
- System copy record: 83 assertions passed 341us
- TRawUTF8List: 130,009 assertions passed 161.94ms
- TDynArray: 1,082,725 assertions passed 208.75ms
- TDynArrayHashed: 1,200,629 assertions passed 150.88ms
- TObjectListHashed: 999,885 assertions passed 481.28ms
- TObjectDynArrayWrapper: 167,501 assertions passed 33.15ms
- TObjArray: 2,016 assertions passed 1.95ms
- Fast string compare: 24 assertions passed 303us
- IdemPropName: 197 assertions passed 296us
- Url encoding: 150 assertions passed 1.27ms
- GUID: 9,005 assertions passed 1.82ms
- IsMatch: 599 assertions passed 415us
- Soundex: 35 assertions passed 266us
- Numerical conversions: 1,116,206 assertions passed 368.59ms
- crc32c: 20,020 assertions passed 74.89ms
pas 25.63ms 232.7 MB/s fast 4.37ms 1.3 GB/s
- Curr 64: 20,053 assertions passed 2.06ms
- CamelCase: 11 assertions passed 292us
- Bits: 4,774 assertions passed 6.25ms
- Ini files: 7,004 assertions passed 35.12ms
- UTF8: 105,137 assertions passed 973.23ms
- Iso 8601 date and time: 48,017 assertions passed 7.98ms
- Time zones: 407 assertions passed 16.88ms
- Url decoding: 1,100 assertions passed 444us
- Mime types: 27 assertions passed 390us
- TSynTable: 875 assertions passed 4.46ms
- TSynCache: 404 assertions passed 4.17ms
- TSynFilter: 1,005 assertions passed 3.24ms
- TSynValidate: 677 assertions passed 915us
- TSynLogFile: 42 assertions passed 1.64ms
- TSynUniqueIdentifier: 1,300,002 assertions passed 654.54ms
Total failed: 0 / 6,218,619 - Low level common PASSED 3.22s
1.2. Low level types:
- RTTI: 410 assertions passed 734us
- Url encoding: 200 assertions passed 831us
- Encode decode JSON: 283,022 assertions passed 171.94ms
- Variants: 48 assertions passed 401us
- Mustache renderer: 144 assertions passed 4.21ms
- TDocVariant: 71,783 assertions passed 190.75ms
- BSON: 245,050 assertions passed 3.65ms
- TSynTableStatement: 206 assertions passed 451us
- TSynMonitorUsage: 1,202 assertions passed 452us
Total failed: 0 / 602,065 - Low level types PASSED 385.46ms
1.3. Big table:
- TSynBigTable: 19,332 assertions passed 167.38ms
- TSynBigTableString: 16,200 assertions passed 26.09ms
- TSynBigTableMetaData: 475,563 assertions passed 1.30s
- TSynBigTableRecord: 375,563 assertions passed 1.87s
Total failed: 0 / 886,658 - Big table PASSED 3.37s
1.4. Synopse PDF:
! - TPdfDocument: 1 / 2 FAILED 10.66ms
- TPdfDocumentGDI: 5 assertions passed 1.09s
Total failed: 1 / 7 - Synopse PDF FAILED 1.11s
1.5. Cryptographic routines:
- Adler32: 1 assertion passed 684us
- MD5: 86 assertions passed 696us
- SHA1: 10 assertions passed 10.27ms
- SHA256: 8 assertions passed 16.84ms
- AES256: 16,816 assertions passed 1.02s
- RC4: 1 assertion passed 193us
- Base64: 11,994 assertions passed 127.47ms
- CompressShaAes: 1,683 assertions passed 4.86ms
Total failed: 0 / 30,599 - Cryptographic routines PASSED 1.19s
1.6. Compression:
- In memory compression: 12 assertions passed 399.71ms
- GZIP format: 19 assertions passed 739.67ms
- ZIP format: 79 assertions passed 2.84s
- SynLZO: 3,006 assertions passed 121.23ms
- SynLZ: 32,221 assertions passed 785.63ms
Total failed: 0 / 35,337 - Compression PASSED 4.89s
2. mORMot
2.1. File based:
- Database direct access: 20,251 assertions passed 257.34ms
- Virtual table direct access: 12 assertions passed 2.56ms
- TSQLTableJSON: 144,070 assertions passed 154.01ms
! File based - TSQLRestClientDB
! Exception EAccessViolation raised with messsage:
! Access violation at address 0044ED5A in module 'TestSQL3.exe'. Read of addres
s 1C96BD90
! File based - TRecordVersion
! Exception EAccessViolation raised with messsage:
! Access violation at address 0044ED5A in module 'TestSQL3.exe'. Read of addres
s 1C96BC30
2.2. File based memory map:
- Database direct access: 20,246 assertions passed 244.52ms
- Virtual table direct access: 12 assertions passed 2.43ms
- TSQLTableJSON: 144,070 assertions passed 140.86ms
! File based memory map - TSQLRestClientDB
! Exception EAccessViolation raised with messsage:
! Access violation at address 0044ED5A in module 'TestSQL3.exe'. Read of addres
s 1C96A840
! File based memory map - TRecordVersion
! Exception EAccessViolation raised with messsage:
! Access violation at address 0044ED5A in module 'TestSQL3.exe'. Read of addres
s 1C96A9A0
2.3. File based WAL:
- Database direct access: 20,251 assertions passed 266.81ms
- Virtual table direct access: 12 assertions passed 2.80ms
- TSQLTableJSON: 144,070 assertions passed 155.39ms
! File based WAL - TSQLRestClientDB
! Exception EAccessViolation raised with messsage:
! Access violation at address 0044ED5A in module 'TestSQL3.exe'. Read of addres
s 1C96A6E0
! File based WAL - TRecordVersion
! Exception EAccessViolation raised with messsage:
! Access violation at address 0044ED5A in module 'TestSQL3.exe'. Read of addres
s 1C96BC30
2.4. Memory based:
- Database direct access: 20,246 assertions passed 236.26ms
- Virtual table direct access: 12 assertions passed 1.68ms
- TSQLTableJSON: 144,070 assertions passed 138.76ms
! Memory based - TSQLRestClientDB
! Exception EAccessViolation raised with messsage:
! Access violation at address 0044ED5A in module 'TestSQL3.exe'. Read of addres
s 1C96A790
! Memory based - TRecordVersion
! Exception EAccessViolation raised with messsage:
! Access violation at address 0044ED5A in module 'TestSQL3.exe'. Read of addres
s 1C96A9A0
In Delphi XE2 is fine.
Michal
Offline
I tried .obj compiled by Delphi 2007 and XE2.
The effect is the same.
Michal
Offline
@ab,
It seems to me that an error occurs in this procedure:
procedure TSynMonitor.FillPerSecProperties;
begin
if fTaskCount=0 then
exit; // avoid division per zero
fPerSec := fTotalTime.PerSecond(fTaskCount);
fAverageTime.MicroSec := Round(fTotalTime.MicroSec/fTaskCount);
end;
Michal
Offline
Sounds like if there are some threading issue with TSynMonitor use.
I'll check and fix it.
And include the latest feature of the framework, i.e. TSynMonitorUsage - an automated statistics gathering of any process, in a database.
Offline
OK.
I've made all TSynMonitor instances thread-safe.
And it was not enough for Delphi 2007...
After a lot of time, I understood that the Delphi 2007 compiler did not compile correctly inlined methods with QWord/Int64 parameters, like those:
function PerSecond(const Count: QWord): QWord; inline;,
With the following, it worked:
function PerSecond(const Count: QWord): QWord;
{$ifdef FPC_OR_UNICODE}inline;{$endif} // Delphi 2007 is buggy as hell
Now all tests do pass on my side:
Using mORMot 1.18.2365 FTS3
Running on Windows 7 64bit SP1 (6.1.7601) with code page 1252
TSQLite3LibraryStatic 3.10.2 with internal MM
Generated with: Delphi 2007 compiler
Time elapsed for all tests: 45.02s
Tests performed at 08/02/2016 14:49:09
Total assertions failed for all test suits: 0 / 23,129,542
All tests passed successfully.
Offline
Offline
@ab,
For me now, too. (1.18.2366).
Is fine.
It is interesting that on Windows 8.1-64 had more AV errors than on Windows 7.
Michal
Last edited by miab3 (2016-02-08 14:59:33)
Offline
Pages: 1