Synopse mORMot Framework Automated tests ------------------------------------------ 1. Synopse libraries 1.1. Low level common: - System copy record: 83 assertions passed 285us - TRawUTF8List: 130,009 assertions passed 506.01ms - TDynArray: 1,082,741 assertions passed 1.32s - TDynArrayHashed: 1,200,629 assertions passed 1.16s - TObjectListHashed: 998,179 assertions passed 1.77s - TObjectDynArrayWrapper: 167,501 assertions passed 299.53ms - TObjArray: 2,016 assertions passed 21.67ms - Fast string compare: 24 assertions passed 293us - IdemPropName: 197 assertions passed 541us - Url encoding: 150 assertions passed 11.51ms - GUID: 9,005 assertions passed 120.72ms - IsMatch: 599 assertions passed 1.51ms - Soundex: 35 assertions passed 274us - Numerical conversions: 1,115,937 assertions passed 3.93s - crc32c: 20,020 assertions passed 213.79ms pas 40.82ms 146.1 MB/s fast 16.18ms 368.7 MB/s - Bloom filters: 2,010,072 assertions passed 1.19s - Curr 64: 20,053 assertions passed 18.82ms - CamelCase: 11 assertions passed 260us - Bits: 4,774 assertions passed 409us - Ini files: 7,004 assertions passed 94.33ms - UTF8: 100,112 assertions passed 2.26s - Baudot code: 10,007 assertions passed 130.17ms - Iso 8601 date and time: 48,021 assertions passed 69.41ms - Time zones: 398 assertions passed 1.56ms - Url decoding: 1,100 assertions passed 1.53ms - Mime types: 30 assertions passed 453us - TSynTable: 875 assertions passed 51.30ms - TSynCache: 404 assertions passed 782us - TSynFilter: 804 assertions passed 17.76ms - TSynValidate: 677 assertions passed 4.63ms - TSynLogFile: 36 assertions passed 3.31ms - TSynUniqueIdentifier: 1,300,002 assertions passed 5.91s - TSynDictionary: 119,930 assertions passed 524.28ms Total failed: 0 / 8,351,435 - Low level common PASSED 19.67s 1.2. Low level types: - RTTI: 410 assertions passed 2.37ms - Url encoding: 200 assertions passed 3.65ms - Encode decode JSON: 283,974 assertions passed 2.28s - Variants: 61 assertions passed 353us - Mustache renderer: 145 assertions passed 16.90ms - TDocVariant: 71,758 assertions passed 4.81s - BSON: no assertion 242us - TSynTableStatement: 221 assertions passed 1.04ms - TSynMonitorUsage: 1,202 assertions passed 1.23ms Total failed: 0 / 357,971 - Low level types PASSED 7.12s 1.3. Cryptographic routines: - Adler32: 1 assertion passed 262us - MD5: 167 assertions passed 996us - SHA1: 10 assertions passed 25.16ms - SHA256: 13 assertions passed 27.41ms - AES256: 12,478 assertions passed 1.65s - RC4: 1 assertion passed 289us - Base64: 11,994 assertions passed 459.92ms - CompressShaAes: 1,683 assertions passed 33.74ms - TAESPNRG: 13,302 assertions passed 224.77ms Total failed: 0 / 39,649 - Cryptographic routines PASSED 2.43s 1.4. ECC cryptography: - Reference vectors: 17 assertions passed 41.28ms - ecc_make_key: 50 assertions passed 328.11ms - ecdsa_sign: 50 assertions passed 339.89ms - ecdsa_verify: 50 assertions passed 406.01ms - ecdh_shared_secret: 147 assertions passed 679.19ms - Certificates and signatures: 89 assertions passed 249.62ms Total failed: 0 / 403 - ECC cryptography PASSED 2.04s 1.5. Compression: - In memory compression: 12 assertions passed 643.60ms - GZIP format: 19 assertions passed 1.41s - SynLZO: 3,006 assertions passed 328.45ms - SynLZ: 30,217 assertions passed 1.30s Total failed: 0 / 33,254 - Compression PASSED 3.69s 2. mORMot 2.1. File based: - Database direct access: 20,246 assertions passed 682.07ms - Virtual table direct access: 12 assertions passed 2.85ms - TSQLTableJSON: 144,070 assertions passed 612.14ms - TSQLRestClientDB: 310,071 assertions passed 5.98s - TRecordVersion: 20,060 assertions passed 637.65ms Total failed: 0 / 494,459 - File based PASSED 7.92s 2.2. File based memory map: - Database direct access: 20,246 assertions passed 834.70ms - Virtual table direct access: 12 assertions passed 2.78ms - TSQLTableJSON: 144,070 assertions passed 546.01ms - TSQLRestClientDB: 310,071 assertions passed 5.93s - TRecordVersion: 20,060 assertions passed 654.47ms Total failed: 0 / 494,459 - File based memory map PASSED 7.97s 2.3. File based WAL: - Database direct access: 20,246 assertions passed 790.67ms - Virtual table direct access: 12 assertions passed 2.62ms - TSQLTableJSON: 144,070 assertions passed 540.71ms - TSQLRestClientDB: 310,071 assertions passed 5.94s - TRecordVersion: 20,060 assertions passed 644.70ms Total failed: 0 / 494,459 - File based WAL PASSED 7.92s 2.4. Memory based: - Database direct access: 20,246 assertions passed 769.43ms - Virtual table direct access: 12 assertions passed 2.72ms - TSQLTableJSON: 144,070 assertions passed 548.63ms - TSQLRestClientDB: 402,407 assertions passed 11.50s - TRecordVersion: 20,060 assertions passed 767.40ms - RTree: 140,000 assertions passed 6.74s - Shard write: 10,602 assertions passed 1.69s - Shard read: 140,001 assertions passed 2.79s - Shard read after purge: 114,003 assertions passed 2.19s Total failed: 0 / 991,401 - Memory based PASSED 27.02s 2.5. Basic classes: ! - TSQLRecord: 1 / 85 FAILED 3.04ms - TSQLRecordSigned: 200 assertions passed 18.05ms - TSQLModel: 16 assertions passed 786us - TSQLRestServerFullMemory: 982,481 assertions passed 9.43s Total failed: 1 / 982,782 - Basic classes FAILED 9.46s 2.6. Client server access: - TSQLHttpServer: 2 assertions passed 4.74ms using Synopse CrossPlatform Socket Layer.514 - TSQLHttpClient: 3 assertions passed 84.13ms using TSQLHttpClientWinSock - HTTP client keep alive: 3,087 assertions passed 532.73ms 4818 B, first 16.47ms, done 468.37ms i.e. 2135/s, aver. 468us, 9.9 MB/s - HTTP client multi connect: 3,087 assertions passed 3.15s 4818 B, first 2.45ms, done 2.98s i.e. 334/s, aver. 2.98ms, 1.5 MB/s - HTTP client encrypted: 3,087 assertions passed 1.69s 4818 B, first 3.34ms, done 1.62s i.e. 613/s, aver. 1.62ms, 2.8 MB/s - Direct in process access: 3,056 assertions passed 154.69ms 4818 B, first 140us, done 128.65ms i.e. 7772/s, aver. 128us, 36.3 MB/s - HTTP several DB servers: 9,604 assertions passed 4.63s 4818 B, first 1.83ms, done 1.38s i.e. 724/s, aver. 1.38ms, 3.3 MB/s 4818 B, first 2.21ms, done 1.32s i.e. 755/s, aver. 1.32ms, 3.5 MB/s 4818 B, first 2.25ms, done 1.32s i.e. 755/s, aver. 1.32ms, 3.5 MB/s Total failed: 0 / 21,926 - Client server access PASSED 10.26s 2.7. Service oriented architecture: - Weak interfaces: 56 assertions passed 162us - Service initialization: 267 assertions passed 20.26ms - Direct call: 537,192 assertions passed 237.95ms - Server side: 537,212 assertions passed 245.36ms - Client side REST: 716,283 assertions passed 6.92s - Client side REST as JSON object: 716,277 assertions passed 7.24s - Client side REST sessions stats: 716,277 assertions passed 7.29s - Client side REST locked: 716,281 assertions passed 7.05s - Client side REST main thread: 716,281 assertions passed 9.53s - Client side REST background thread: 716,281 assertions passed 9.44s - Client side REST weak authentication: 716,277 assertions passed 6.39s - Client side REST basic authentication: 716,277 assertions passed 8.76s - Client side REST custom record layout: 716,277 assertions passed 7.41s - Client side REST service log to DB: 716,277 assertions passed 15.04s - Client side JSONRPC: 716,277 assertions passed 7.81s - Test over HTTP: 7,663 assertions passed 1.53s - Security: 139 assertions passed 18.29ms - Mocks and stubs: 30,030 assertions passed 683.81ms Total failed: 0 / 8,991,624 - Service oriented architecture PASSED 95.67s 2.8. Bidirectional remote connection: - Websockets JSON protocol: 60 assertions passed 562us - Websockets binary protocol: 240 assertions passed 1.32ms - Run http server: 2 assertions passed 7.04ms - SOA callback on server side: 4,578 assertions passed 31.13ms - SOA callback via JSON websockets: 4,581 assertions passed 517.79ms - SOA callback via binary websockets: 4,581 assertions passed 674.85ms - TRecordVersion: 20,068 assertions passed 748.68ms Total failed: 0 / 34,110 - Bidirectional remote connection PASSED 1.98s 2.9. External database: - TQuery: 2,003 assertions passed 21.74ms - SynDBRemote: 25,079 assertions passed 5.35s - DB properties persistence: 7 assertions passed 779us - External records: 2 assertions passed 1.68ms - Auto adapt SQL: 942 assertions passed 581.53ms - Crypted database: 176,192 assertions passed 1.04s - External via REST: 170,354 assertions passed 7.55s - External via virtual table: 170,354 assertions passed 10.53s - External via REST with change tracking: 180,454 assertions passed 13.84s Total failed: 0 / 725,387 - External database PASSED 38.93s 2.10. Multi thread process: - Create thread pool: 1 assertion passed 51.28ms - TSQLRestServerDB: 4,822 assertions passed 2.19s 1=1592/s 2=796/s 5=886/s 10=1215/s 30=1202/s 50=1287/s - TSQLRestClientDB: 4,822 assertions passed 3.35s 1=504/s 2=906/s 5=878/s 10=918/s 30=752/s 50=589/s - Socket API: 4,822 assertions passed 5.82s 1=397/s 2=356/s 5=412/s 10=519/s 30=558/s 50=486/s - Websockets: 4,822 assertions passed 9.26s 1=409/s 2=444/s 5=367/s 10=310/s 30=217/s 50=150/s - libcurl: no assertion 233us - Locked: 4,822 assertions passed 4.05s 1=494/s 2=712/s 5=496/s 10=653/s 30=706/s 50=587/s - Unlocked: 4,822 assertions passed 4.20s 1=488/s 2=641/s 5=410/s 10=576/s 30=744/s 50=745/s - Main thread: 4,822 assertions passed 1.79s 1=1330/s 2=1556/s 5=1066/s 10=1357/s 30=1641/s 50=1328/s - Background thread: 4,822 assertions passed 2.73s 1=1085/s 2=1022/s 5=784/s 10=873/s 30=1076/s 50=644/s Total failed: 0 / 38,577 - Multi thread process PASSED 33.48s 2.11. DDD shared units: - User model: 3,276 assertions passed 7.81ms ! DDD shared units - Authentication model ! Exception EAccessViolation raised with messsage: ! Access violation - Email validation process: 58 assertions passed 89.69ms ! DDD shared units - User CQRS repository ! Exception EAccessViolation raised with messsage: ! Access violation 2.12. DDD multi thread: - Delete old database: 1 assertion passed 329us - Start server: 1 assertion passed 16.97ms - Single client test: 1,002 assertions passed 601.33ms - Multi threaded clients test: 21 assertions passed 1.04s Total failed: 0 / 1,025 - DDD multi thread PASSED 1.66s Using mORMot 1.18.2934 FTS3 Running on Linux-3.13.0-44-generic #73-Ubuntu SMP Tue Dec 16 00:23:46 UTC 2014 TSQLite3LibraryDynamic 3.8.8.2 with internal MM Generated with: Free Pascal 3.1.1 compiler Time elapsed for all tests: 278.94s Tests performed at 13-09-2016 23:03:25 Total assertions failed for all test suits: 1 / 22,059,263 ! Some tests FAILED: please correct the code. Heap dump by heaptrc unit 52216096 memory blocks allocated : 1107298162/1270896272 52216065 memory blocks freed : 1107286947/1270884968 31 unfreed memory blocks : 11215 True heap size : 1343488 True free heap : 1329760 Should be : 1330200 Call trace for block $B7593BC0 size 4831 $08100A23 $0809C753 $080A9A41 $080A701C $081CA5F6 $081C973E $0817A8F7 $08179745 Call trace for block $B6F55260 size 35 $08062F65 $080A663F $080A9B9A $080A7003 $081CA5F6 $081C973E $0817A8F7 $08179745 Call trace for block $B70EA7E0 size 50 $08062F65 $080A663F $080A9B9A $080A7003 $081CA5F6 $081C973E $0817A8F7 $08179745 Call trace for block $B70EBDE0 size 44 $080A448F $080A9C63 $080A7003 $081CA5F6 $081C973E $0817A8F7 $08179745 $082361BB Call trace for block $B72C8A70 size 58 $08062F65 $080A663F $080A9B9A $080A7003 $081CA5F6 $081C973E $0817A8F7 $08179745 Call trace for block $B6F524E0 size 33 $08062F65 $080A663F $080A9B9A $080A7003 $081CA5F6 $081C973E $0817A8F7 $08179745 Call trace for block $B6F540E0 size 40 $08062F65 $080A663F $080A9B9A $080A7003 $081CA5F6 $081C973E $0817A8F7 $08179745 Call trace for block $B7105DE0 size 43 $08062F65 $080A663F $080A9B9A $080A7003 $081CA5F6 $081C973E $0817A8F7 $08179745 Call trace for block $B72C7C60 size 71 $08062F65 $080A663F $080A9B9A $080A7003 $081CA5F6 $081C973E $0817A8F7 $08179745 Call trace for block $B6F50F70 size 37 $08062F65 $080A663F $080A9B9A $080A7003 $081CA5F6 $081C973E $0817A8F7 $08179745 Call trace for block $B6F53660 size 28 $08062F65 $080A663F $080A6F17 $081CA5F6 $081C973E $0817A8F7 $08179745 $082361BB Call trace for block $B72FD200 size 40 $080A9DBE $080A7003 $081CA5F6 $081C973E $0817A8F7 $08179745 $08236138 $0823672B Call trace for block $B6C29530 size 2064 $080A6C82 $080A6E2B $081CA5F6 $081C973E $0817A8F7 $08179745 $08235226 $0823672B Call trace for block $B758EFB0 size 1876 $081CA5F6 $081C973E $0817A8F7 $08179745 $08235226 $0823672B $082539D5 $08234DA7 Call trace for block $B6F51A60 size 39 $080A4C03 $080AA1D3 $081CA3F0 $081C95BB $0817A8F7 $08179745 $08235226 $0823672B Call trace for block $B58B0AE0 size 20 $080A4BC2 $080AA1D3 $081CA3F0 $081C95BB $0817A8F7 $08179745 $08235226 $0823672B Call trace for block $B58B0DE0 size 22 $080BB82D $081CA366 $081C95BB $0817A8F7 $08179745 $08235226 $0823672B $082539D5 Call trace for block $B72FDC00 size 76 $080A4989 $080A6A21 $080A59E7 $081CA306 $081C95BB $0817A8F7 $08179745 $08235226 Call trace for block $B72AD710 size 136 $081CA306 $081C95BB $0817A8F7 $08179745 $08235226 $0823672B $082539D5 $08234DA7 Call trace for block $B726FFF0 size 200 $08177173 $0823549F $082366AB $082539D5 $081962D8 $0818C3EA $08173AF0 $08173BAD Call trace for block $B58B0B40 size 12 $0823549F $082366AB $082539D5 $082366AB $082539D5 $080A5C4B $080A59FE $081CA306 Call trace for block $B72B48A0 size 156 $08179B41 $081C98B7 $08234D02 $081150D4 $082539D5 $08197F0B $08229A77 $081150D4 Call trace for block $B72B6B50 size 160 $08179B26 $081C98B7 $08234D02 $081150D4 $082539D5 $08197F0B $08229A77 $081150D4 Call trace for block $B72B63D0 size 156 $08170B02 $08179B07 $081C98B7 $08234D02 $081150D4 $082539D5 $08229A77 $081150D4 Call trace for block $B72B35E0 size 156 $08170B02 $08179B07 $081C98B7 $08234D02 $081150D4 $082539D5 $08229A77 $081150D4 Call trace for block $B72B7780 size 156 $08170B02 $08179B07 $081C98B7 $08234D02 $081150D4 $082539D5 $08229A77 $081150D4 Call trace for block $B72B3D60 size 156 $08170B02 $08179B07 $081C98B7 $08234D02 $081150D4 $082539D5 $08229A77 $081150D4 Call trace for block $B72B8680 size 156 $08170B02 $08179B07 $081C98B7 $08234D02 $081150D4 $082539D5 $08229A77 $081150D4 Call trace for block $B58B07E0 size 16 $0825F46B $0827C1CC $08170AD3 $08179B07 $081C98B7 $08234D02 $081150D4 $082539D5 Call trace for block $B58B0900 size 20 $08170AD3 $08179B07 $081C98B7 $08234D02 $081150D4 $082539D5 $081150D4 $082539D5 Call trace for block $B6C48060 size 328 $08234D02 $081150D4 $082539D5