OSDN Git Service
Ivailo Monev [Wed, 23 Mar 2022 05:37:48 +0000 (07:37 +0200)]
update URL TLDs table data
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Wed, 23 Mar 2022 05:36:05 +0000 (07:36 +0200)]
translations update
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Tue, 22 Mar 2022 16:48:43 +0000 (18:48 +0200)]
fix hash collision when input data has odd length for Katie's hash algorithm
benchmark result:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS : tst_qcryptographichash::initTestCase()
RESULT : tst_qcryptographichash::append():"10 (Md5)":
2,836.51288 CPU ticks per iteration (total: 567,302,577, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha1)":
3,380.76135 CPU ticks per iteration (total: 676,152,271, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha256)":
4,717.55225 CPU ticks per iteration (total: 943,510,450, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha512)":
3,633.18907 CPU ticks per iteration (total: 726,637,814, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (KAT)":
1,379.36299 CPU ticks per iteration (total: 275,872,598, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Md5)":
659.939485 CPU ticks per iteration (total: 131,987,897, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha1)":
1,114.46593 CPU ticks per iteration (total: 222,893,186, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha256)":
951.730590 CPU ticks per iteration (total: 190,346,118, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha512)":
1,075.35127 CPU ticks per iteration (total: 215,070,254, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (KAT)":
737.365180 CPU ticks per iteration (total: 147,473,036, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Md5)":
602.405905 CPU ticks per iteration (total: 120,481,181, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha1)":
1,365.34060 CPU ticks per iteration (total: 273,068,121, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha256)":
902.280725 CPU ticks per iteration (total: 180,456,145, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha512)":
1,023.72560 CPU ticks per iteration (total: 204,745,120, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (KAT)":
630.126650 CPU ticks per iteration (total: 126,025,330, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Md5)":
583.649140 CPU ticks per iteration (total: 116,729,828, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha1)":
1,401.99279 CPU ticks per iteration (total: 280,398,558, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha256)":
884.796720 CPU ticks per iteration (total: 176,959,344, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha512)":
1,006.34675 CPU ticks per iteration (total: 201,269,350, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (KAT)":
614.444045 CPU ticks per iteration (total: 122,888,809, iterations: 200000)
PASS : tst_qcryptographichash::append()
RESULT : tst_qcryptographichash::append_once():"Md5":
1,573.19717 CPU ticks per iteration (total: 314,639,435, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha1":
2,170.39628 CPU ticks per iteration (total: 434,079,257, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha256":
4,227.21736 CPU ticks per iteration (total: 845,443,473, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha512":
3,182.38488 CPU ticks per iteration (total: 636,476,976, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"KAT":
785.406275 CPU ticks per iteration (total: 157,081,255, iterations: 200000)
PASS : tst_qcryptographichash::append_once()
RESULT : tst_qcryptographichash::statichash():"Md5":
1,492.78744 CPU ticks per iteration (total: 298,557,489, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha1":
2,078.32221 CPU ticks per iteration (total: 415,664,442, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha256":
4,147.89762 CPU ticks per iteration (total: 829,579,525, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha512":
3,076.56835 CPU ticks per iteration (total: 615,313,671, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"KAT":
746.683995 CPU ticks per iteration (total: 149,336,799, iterations: 200000)
PASS : tst_qcryptographichash::statichash()
PASS : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Tue, 22 Mar 2022 16:30:06 +0000 (18:30 +0200)]
test QCryptographicHash collisions with short data
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Tue, 22 Mar 2022 13:30:06 +0000 (15:30 +0200)]
drop QUuid class [ci reset]
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Tue, 22 Mar 2022 09:39:22 +0000 (11:39 +0200)]
new qRandomUuid() function
benchmark result:
********* Start testing of tst_bench_QUuid *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS : tst_bench_QUuid::initTestCase()
RESULT : tst_bench_QUuid::qRandomUuid_vs_createUuid():"qRandomUuid()":
97.821250 CPU ticks per iteration (total: 19,564,250, iterations: 200000)
RESULT : tst_bench_QUuid::qRandomUuid_vs_createUuid():"QUuid::createUuid":
108.41198 CPU ticks per iteration (total: 21,682,396, iterations: 200000)
PASS : tst_bench_QUuid::qRandomUuid_vs_createUuid()
RESULT : tst_bench_QUuid::createUuid():
57.377920 CPU ticks per iteration (total: 11,475,584, iterations: 200000)
PASS : tst_bench_QUuid::createUuid()
RESULT : tst_bench_QUuid::fromChar():
81.606610 CPU ticks per iteration (total: 16,321,322, iterations: 200000)
PASS : tst_bench_QUuid::fromChar()
RESULT : tst_bench_QUuid::toString():
79.527925 CPU ticks per iteration (total: 15,905,585, iterations: 200000)
PASS : tst_bench_QUuid::toString()
RESULT : tst_bench_QUuid::fromString():
78.037890 CPU ticks per iteration (total: 15,607,578, iterations: 200000)
PASS : tst_bench_QUuid::fromString()
RESULT : tst_bench_QUuid::toByteArray():
78.505810 CPU ticks per iteration (total: 15,701,162, iterations: 200000)
PASS : tst_bench_QUuid::toByteArray()
RESULT : tst_bench_QUuid::fromByteArray():
79.680680 CPU ticks per iteration (total: 15,936,136, iterations: 200000)
PASS : tst_bench_QUuid::fromByteArray()
RESULT : tst_bench_QUuid::toRfc4122():
62.749495 CPU ticks per iteration (total: 12,549,899, iterations: 200000)
PASS : tst_bench_QUuid::toRfc4122()
RESULT : tst_bench_QUuid::fromRfc4122():
7.604070 CPU ticks per iteration (total: 1,520,814, iterations: 200000)
PASS : tst_bench_QUuid::fromRfc4122()
RESULT : tst_bench_QUuid::toDataStream():
100.19905 CPU ticks per iteration (total: 20,039,811, iterations: 200000)
PASS : tst_bench_QUuid::toDataStream()
RESULT : tst_bench_QUuid::fromDataStream():
68.303560 CPU ticks per iteration (total: 13,660,712, iterations: 200000)
PASS : tst_bench_QUuid::fromDataStream()
RESULT : tst_bench_QUuid::isNull():
6.075315 CPU ticks per iteration (total: 1,215,063, iterations: 200000)
PASS : tst_bench_QUuid::isNull()
RESULT : tst_bench_QUuid::operatorLess():
18.49353 CPU ticks per iteration (total: 3,698,706, iterations: 200000)
PASS : tst_bench_QUuid::operatorLess()
RESULT : tst_bench_QUuid::operatorMore():
18.51902 CPU ticks per iteration (total: 3,703,804, iterations: 200000)
PASS : tst_bench_QUuid::operatorMore()
PASS : tst_bench_QUuid::cleanupTestCase()
Totals: 16 passed, 0 failed, 0 skipped
********* Finished testing of tst_bench_QUuid *********
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 21 Mar 2022 10:47:53 +0000 (12:47 +0200)]
optimize QByteArray streaming
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 21 Mar 2022 10:08:50 +0000 (12:08 +0200)]
update link in QUuid documentation
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 21 Mar 2022 10:01:36 +0000 (12:01 +0200)]
reset Katie's hashing algorithm state before updating it with data in QCryptographicHash::hash()
fixes crash, benchmark result:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS : tst_qcryptographichash::initTestCase()
RESULT : tst_qcryptographichash::append():"10 (Md5)":
1,962.61910 CPU ticks per iteration (total: 392,523,820, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha1)":
2,168.30099 CPU ticks per iteration (total: 433,660,199, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha256)":
4,188.51114 CPU ticks per iteration (total: 837,702,228, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha512)":
3,362.39169 CPU ticks per iteration (total: 672,478,339, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (KAT)":
1,001.09731 CPU ticks per iteration (total: 200,219,462, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Md5)":
570.155600 CPU ticks per iteration (total: 114,031,120, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha1)":
685.569960 CPU ticks per iteration (total: 137,113,992, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha256)":
868.278515 CPU ticks per iteration (total: 173,655,703, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha512)":
1,017.23586 CPU ticks per iteration (total: 203,447,172, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (KAT)":
612.449645 CPU ticks per iteration (total: 122,489,929, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Md5)":
547.928530 CPU ticks per iteration (total: 109,585,706, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha1)":
712.295705 CPU ticks per iteration (total: 142,459,141, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha256)":
835.510590 CPU ticks per iteration (total: 167,102,118, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha512)":
981.335505 CPU ticks per iteration (total: 196,267,101, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (KAT)":
563.873905 CPU ticks per iteration (total: 112,774,781, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Md5)":
537.705295 CPU ticks per iteration (total: 107,541,059, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha1)":
707.017965 CPU ticks per iteration (total: 141,403,593, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha256)":
825.497090 CPU ticks per iteration (total: 165,099,418, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha512)":
977.373200 CPU ticks per iteration (total: 195,474,640, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (KAT)":
544.470865 CPU ticks per iteration (total: 108,894,173, iterations: 200000)
PASS : tst_qcryptographichash::append()
RESULT : tst_qcryptographichash::append_once():"Md5":
1,446.76005 CPU ticks per iteration (total: 289,352,011, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha1":
1,688.58841 CPU ticks per iteration (total: 337,717,683, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha256":
3,855.98617 CPU ticks per iteration (total: 771,197,235, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha512":
2,929.18580 CPU ticks per iteration (total: 585,837,160, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"KAT":
648.980665 CPU ticks per iteration (total: 129,796,133, iterations: 200000)
PASS : tst_qcryptographichash::append_once()
RESULT : tst_qcryptographichash::statichash():"Md5":
1,382.87591 CPU ticks per iteration (total: 276,575,182, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha1":
1,614.76916 CPU ticks per iteration (total: 322,953,833, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha256":
3,773.65425 CPU ticks per iteration (total: 754,730,850, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha512":
2,861.40618 CPU ticks per iteration (total: 572,281,237, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"KAT":
597.525450 CPU ticks per iteration (total: 119,505,090, iterations: 200000)
PASS : tst_qcryptographichash::statichash()
PASS : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 21 Mar 2022 06:36:13 +0000 (08:36 +0200)]
disable copying of QKatHash class
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 21 Mar 2022 06:35:58 +0000 (08:35 +0200)]
QPluginLoader documentation update
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 20 Mar 2022 11:46:12 +0000 (13:46 +0200)]
QLibrary documentaiton update
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 20 Mar 2022 11:24:23 +0000 (13:24 +0200)]
de-duplicate QLibrary code
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 20 Mar 2022 11:00:21 +0000 (13:00 +0200)]
optimize QIcon::fromTheme()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 20 Mar 2022 10:04:58 +0000 (12:04 +0200)]
do not create private QLibrary data pointer just to return 0 in QPluginLoader::loadHints()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 14 Mar 2022 02:25:42 +0000 (04:25 +0200)]
refer to QT_BUFFSIZE in QCryptographicHash documentation
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 14 Mar 2022 01:40:45 +0000 (03:40 +0200)]
typo
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 14 Mar 2022 01:25:01 +0000 (03:25 +0200)]
implement Katie's hash algorithm as class and split input data in two chunks
benchmark result:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS : tst_qcryptographichash::initTestCase()
RESULT : tst_qcryptographichash::append():"10 (Md5)":
2,847.12983 CPU ticks per iteration (total: 569,425,966, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha1)":
3,370.50678 CPU ticks per iteration (total: 674,101,357, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha256)":
4,718.83796 CPU ticks per iteration (total: 943,767,592, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha512)":
3,636.39393 CPU ticks per iteration (total: 727,278,787, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (KAT)":
1,424.54430 CPU ticks per iteration (total: 284,908,860, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Md5)":
674.086020 CPU ticks per iteration (total: 134,817,204, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha1)":
1,133.63370 CPU ticks per iteration (total: 226,726,740, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha256)":
940.656270 CPU ticks per iteration (total: 188,131,254, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha512)":
1,092.76190 CPU ticks per iteration (total: 218,552,381, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (KAT)":
752.884775 CPU ticks per iteration (total: 150,576,955, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Md5)":
635.722665 CPU ticks per iteration (total: 127,144,533, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha1)":
1,365.40317 CPU ticks per iteration (total: 273,080,634, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha256)":
893.019390 CPU ticks per iteration (total: 178,603,878, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha512)":
1,042.41434 CPU ticks per iteration (total: 208,482,868, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (KAT)":
647.685440 CPU ticks per iteration (total: 129,537,088, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Md5)":
613.694575 CPU ticks per iteration (total: 122,738,915, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha1)":
1,385.37680 CPU ticks per iteration (total: 277,075,361, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha256)":
875.499705 CPU ticks per iteration (total: 175,099,941, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha512)":
1,026.35629 CPU ticks per iteration (total: 205,271,259, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (KAT)":
613.024700 CPU ticks per iteration (total: 122,604,940, iterations: 200000)
PASS : tst_qcryptographichash::append()
RESULT : tst_qcryptographichash::append_once():"Md5":
1,575.48784 CPU ticks per iteration (total: 315,097,569, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha1":
2,189.54088 CPU ticks per iteration (total: 437,908,176, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha256":
4,181.71968 CPU ticks per iteration (total: 836,343,936, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha512":
3,171.89449 CPU ticks per iteration (total: 634,378,899, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"KAT":
783.837000 CPU ticks per iteration (total: 156,767,400, iterations: 200000)
PASS : tst_qcryptographichash::append_once()
RESULT : tst_qcryptographichash::statichash():"Md5":
1,491.84898 CPU ticks per iteration (total: 298,369,796, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha1":
2,074.73995 CPU ticks per iteration (total: 414,947,990, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha256":
4,098.37431 CPU ticks per iteration (total: 819,674,863, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha512":
3,075.87383 CPU ticks per iteration (total: 615,174,767, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"KAT":
745.386400 CPU ticks per iteration (total: 149,077,280, iterations: 200000)
PASS : tst_qcryptographichash::statichash()
PASS : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 13 Mar 2022 22:04:32 +0000 (00:04 +0200)]
add warning about the custom hash algorithm
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 13 Mar 2022 21:58:48 +0000 (23:58 +0200)]
QCryptographicHash test to verify incremental and static hashing produce the same result
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 13 Mar 2022 20:59:25 +0000 (22:59 +0200)]
drop BLAKE3 in favour of custom hash algorithm
faster than BLAKE3 and the other algorithms with collisions risk
reduced based on the length of the input data, benchmark result:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS : tst_qcryptographichash::initTestCase()
RESULT : tst_qcryptographichash::append():"10 (Md5)":
0.00280 msecs per iteration (total: 561, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha1)":
0.00333 msecs per iteration (total: 667, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha256)":
0.00467 msecs per iteration (total: 934, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha512)":
0.00361 msecs per iteration (total: 723, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (KAT)":
0.00219 msecs per iteration (total: 439, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Md5)":
0.000620 msecs per iteration (total: 124, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha1)":
0.00109 msecs per iteration (total: 219, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha256)":
0.000900 msecs per iteration (total: 180, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha512)":
0.00106 msecs per iteration (total: 212, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (KAT)":
0.000740 msecs per iteration (total: 148, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Md5)":
0.000580 msecs per iteration (total: 116, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha1)":
0.00134 msecs per iteration (total: 268, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha256)":
0.000845 msecs per iteration (total: 169, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha512)":
0.00100 msecs per iteration (total: 200, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (KAT)":
0.000625 msecs per iteration (total: 125, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Md5)":
0.000550 msecs per iteration (total: 110, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha1)":
0.00137 msecs per iteration (total: 274, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha256)":
0.000830 msecs per iteration (total: 166, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha512)":
0.000985 msecs per iteration (total: 197, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (KAT)":
0.000575 msecs per iteration (total: 115, iterations: 200000)
PASS : tst_qcryptographichash::append()
RESULT : tst_qcryptographichash::append_once():"Md5":
0.00155 msecs per iteration (total: 310, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha1":
0.00212 msecs per iteration (total: 424, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha256":
0.00414 msecs per iteration (total: 828, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha512":
0.00314 msecs per iteration (total: 629, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"KAT":
0.000805 msecs per iteration (total: 161, iterations: 200000)
PASS : tst_qcryptographichash::append_once()
RESULT : tst_qcryptographichash::statichash():"Md5":
0.00149 msecs per iteration (total: 298, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha1":
0.00206 msecs per iteration (total: 413, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha256":
0.00408 msecs per iteration (total: 817, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha512":
0.00309 msecs per iteration (total: 618, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"KAT":
0.000610 msecs per iteration (total: 122, iterations: 200000)
PASS : tst_qcryptographichash::statichash()
PASS : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 11 Mar 2022 22:34:27 +0000 (00:34 +0200)]
fix possible crash in case null pointer is passed to QCryptographicHash::addData()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 11 Mar 2022 22:16:43 +0000 (00:16 +0200)]
read the file in chunks from filehash utility
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 11 Mar 2022 20:05:44 +0000 (22:05 +0200)]
utility to compute hash sums for files
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 11 Mar 2022 19:11:12 +0000 (21:11 +0200)]
drop BLAKE2b and BLAKE2s in favour of BLAKE3
unfortunetly the reference C implementation
(https://github.com/oconnor663/blake3_reference_impl_c) was slower on
static hash benchmark, faster on incremental hashing tho. while BLAKE2b
and BLAKE2s were faster than SHA-2 on incremental hashing BLAKE3 is
faster on both static and incremental hashing (compared to SHA-256),
benchmark results:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS : tst_qcryptographichash::initTestCase()
RESULT : tst_qcryptographichash::append():"10 (Md5)":
0.00281 msecs per iteration (total: 563, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha1)":
0.00334 msecs per iteration (total: 669, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha256)":
0.00468 msecs per iteration (total: 936, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha512)":
0.00366 msecs per iteration (total: 732, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (BLAKE3)":
0.00219 msecs per iteration (total: 438, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Md5)":
0.000660 msecs per iteration (total: 132, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha1)":
0.00112 msecs per iteration (total: 224, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha256)":
0.000935 msecs per iteration (total: 187, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha512)":
0.00108 msecs per iteration (total: 216, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (BLAKE3)":
0.000775 msecs per iteration (total: 155, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Md5)":
0.000590 msecs per iteration (total: 118, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha1)":
0.00135 msecs per iteration (total: 271, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha256)":
0.000870 msecs per iteration (total: 174, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha512)":
0.00101 msecs per iteration (total: 203, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (BLAKE3)":
0.000655 msecs per iteration (total: 131, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Md5)":
0.000575 msecs per iteration (total: 115, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha1)":
0.00138 msecs per iteration (total: 276, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha256)":
0.000855 msecs per iteration (total: 171, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha512)":
0.00100 msecs per iteration (total: 200, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (BLAKE3)":
0.000610 msecs per iteration (total: 122, iterations: 200000)
PASS : tst_qcryptographichash::append()
RESULT : tst_qcryptographichash::append_once():"Md5":
0.00157 msecs per iteration (total: 315, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha1":
0.00217 msecs per iteration (total: 434, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha256":
0.00428 msecs per iteration (total: 857, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha512":
0.00319 msecs per iteration (total: 638, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"BLAKE3":
0.00164 msecs per iteration (total: 329, iterations: 200000)
PASS : tst_qcryptographichash::append_once()
RESULT : tst_qcryptographichash::statichash():"Md5":
0.00149 msecs per iteration (total: 299, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha1":
0.00206 msecs per iteration (total: 413, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha256":
0.00408 msecs per iteration (total: 816, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha512":
0.00308 msecs per iteration (total: 616, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"BLAKE3":
0.00137 msecs per iteration (total: 274, iterations: 200000)
PASS : tst_qcryptographichash::statichash()
PASS : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 11 Mar 2022 18:13:10 +0000 (20:13 +0200)]
QCryptographicHash benchmark review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 11 Mar 2022 05:07:06 +0000 (07:07 +0200)]
replace blake2b_explicit_memset() and blake2s_explicit_memset_impl with memset() for minor performance gain
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 11 Mar 2022 05:02:39 +0000 (07:02 +0200)]
keyless BLAKE2b and BLAKE2s hash sums optimization
minor performance gain, benchmark results:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS : tst_qcryptographichash::initTestCase()
RESULT : tst_qcryptographichash::append():"10 (Md5)":
0.00278 msecs per iteration (total: 556, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Md5)":
0.000640 msecs per iteration (total: 128, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Md5)":
0.000605 msecs per iteration (total: 121, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Md5)":
0.000560 msecs per iteration (total: 112, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha1)":
0.00332 msecs per iteration (total: 664, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha1)":
0.00109 msecs per iteration (total: 218, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha1)":
0.00133 msecs per iteration (total: 267, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha1)":
0.00136 msecs per iteration (total: 272, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha256)":
0.00473 msecs per iteration (total: 946, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha256)":
0.000945 msecs per iteration (total: 189, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha256)":
0.000895 msecs per iteration (total: 179, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha256)":
0.000860 msecs per iteration (total: 172, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha512)":
0.00361 msecs per iteration (total: 723, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha512)":
0.00106 msecs per iteration (total: 213, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha512)":
0.00100 msecs per iteration (total: 201, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha512)":
0.000995 msecs per iteration (total: 199, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (BLAKE2b)":
0.00279 msecs per iteration (total: 558, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (BLAKE2b)":
0.000735 msecs per iteration (total: 147, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (BLAKE2b)":
0.000690 msecs per iteration (total: 138, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (BLAKE2b)":
0.000675 msecs per iteration (total: 135, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (BLAKE2s)":
0.00335 msecs per iteration (total: 671, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (BLAKE2s)":
0.000665 msecs per iteration (total: 133, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (BLAKE2s)":
0.000620 msecs per iteration (total: 124, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (BLAKE2s)":
0.000600 msecs per iteration (total: 120, iterations: 200000)
PASS : tst_qcryptographichash::append()
RESULT : tst_qcryptographichash::append_once():"Md5":
0.00154 msecs per iteration (total: 309, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha1":
0.00212 msecs per iteration (total: 424, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha256":
0.00420 msecs per iteration (total: 841, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha512":
0.00313 msecs per iteration (total: 627, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"BLAKE2b":
0.00164 msecs per iteration (total: 328, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"BLAKE2s":
0.00218 msecs per iteration (total: 437, iterations: 200000)
PASS : tst_qcryptographichash::append_once()
RESULT : tst_qcryptographichash::statichash():"Md5":
0.00149 msecs per iteration (total: 299, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha1":
0.00207 msecs per iteration (total: 415, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha256":
0.00411 msecs per iteration (total: 822, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha512":
0.00307 msecs per iteration (total: 615, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"BLAKE2b":
0.00157 msecs per iteration (total: 314, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"BLAKE2s":
0.00209 msecs per iteration (total: 419, iterations: 200000)
PASS : tst_qcryptographichash::statichash()
RESULT : tst_qcryptographichash::algorithms():"Md5":
0.00148 msecs per iteration (total: 297, iterations: 200000)
RESULT : tst_qcryptographichash::algorithms():"Sha1":
0.00207 msecs per iteration (total: 415, iterations: 200000)
RESULT : tst_qcryptographichash::algorithms():"Sha256":
0.00413 msecs per iteration (total: 827, iterations: 200000)
RESULT : tst_qcryptographichash::algorithms():"Sha512":
0.00306 msecs per iteration (total: 613, iterations: 200000)
RESULT : tst_qcryptographichash::algorithms():"BLAKE2b":
0.00157 msecs per iteration (total: 315, iterations: 200000)
RESULT : tst_qcryptographichash::algorithms():"BLAKE2s":
0.00209 msecs per iteration (total: 419, iterations: 200000)
PASS : tst_qcryptographichash::algorithms()
PASS : tst_qcryptographichash::cleanupTestCase()
Totals: 6 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 11 Mar 2022 04:22:41 +0000 (06:22 +0200)]
add support for BLAKE2b and BLAKE2s hash sums
benchmark results:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS : tst_qcryptographichash::initTestCase()
RESULT : tst_qcryptographichash::append():"10 (Md5)":
0.00275 msecs per iteration (total: 551, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Md5)":
0.000625 msecs per iteration (total: 125, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Md5)":
0.000570 msecs per iteration (total: 114, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Md5)":
0.000550 msecs per iteration (total: 110, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha1)":
0.00327 msecs per iteration (total: 655, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha1)":
0.00106 msecs per iteration (total: 212, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha1)":
0.00131 msecs per iteration (total: 262, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha1)":
0.00133 msecs per iteration (total: 267, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha256)":
0.00467 msecs per iteration (total: 934, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha256)":
0.000895 msecs per iteration (total: 179, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha256)":
0.000850 msecs per iteration (total: 170, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha256)":
0.000825 msecs per iteration (total: 165, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha512)":
0.00361 msecs per iteration (total: 723, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha512)":
0.00105 msecs per iteration (total: 211, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha512)":
0.000995 msecs per iteration (total: 199, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha512)":
0.000980 msecs per iteration (total: 196, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (BLAKE2b)":
0.00278 msecs per iteration (total: 557, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (BLAKE2b)":
0.000740 msecs per iteration (total: 148, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (BLAKE2b)":
0.000690 msecs per iteration (total: 138, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (BLAKE2b)":
0.000650 msecs per iteration (total: 130, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (BLAKE2s)":
0.00335 msecs per iteration (total: 670, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (BLAKE2s)":
0.000645 msecs per iteration (total: 129, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (BLAKE2s)":
0.000600 msecs per iteration (total: 120, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (BLAKE2s)":
0.000580 msecs per iteration (total: 116, iterations: 200000)
PASS : tst_qcryptographichash::append()
RESULT : tst_qcryptographichash::append_once():"Md5":
0.00154 msecs per iteration (total: 308, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha1":
0.00211 msecs per iteration (total: 422, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha256":
0.00415 msecs per iteration (total: 831, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha512":
0.00314 msecs per iteration (total: 629, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"BLAKE2b":
0.00164 msecs per iteration (total: 328, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"BLAKE2s":
0.00217 msecs per iteration (total: 435, iterations: 200000)
PASS : tst_qcryptographichash::append_once()
RESULT : tst_qcryptographichash::statichash():"Md5":
0.00148 msecs per iteration (total: 297, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha1":
0.00206 msecs per iteration (total: 412, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha256":
0.00409 msecs per iteration (total: 818, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha512":
0.00307 msecs per iteration (total: 614, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"BLAKE2b":
0.00157 msecs per iteration (total: 314, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"BLAKE2s":
0.00211 msecs per iteration (total: 422, iterations: 200000)
PASS : tst_qcryptographichash::statichash()
RESULT : tst_qcryptographichash::algorithms():"Md5":
0.00148 msecs per iteration (total: 297, iterations: 200000)
RESULT : tst_qcryptographichash::algorithms():"Sha1":
0.00206 msecs per iteration (total: 412, iterations: 200000)
RESULT : tst_qcryptographichash::algorithms():"Sha256":
0.00409 msecs per iteration (total: 819, iterations: 200000)
RESULT : tst_qcryptographichash::algorithms():"Sha512":
0.00307 msecs per iteration (total: 614, iterations: 200000)
RESULT : tst_qcryptographichash::algorithms():"BLAKE2b":
0.00157 msecs per iteration (total: 314, iterations: 200000)
RESULT : tst_qcryptographichash::algorithms():"BLAKE2s":
0.00212 msecs per iteration (total: 424, iterations: 200000)
PASS : tst_qcryptographichash::algorithms()
PASS : tst_qcryptographichash::cleanupTestCase()
Totals: 6 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 11 Mar 2022 02:48:25 +0000 (04:48 +0200)]
benchmark all QCryptographicHash algorithms
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 11 Mar 2022 02:28:43 +0000 (04:28 +0200)]
do not mark the end of QCryptographicHash as unreachable in case invalid method was passed
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 7 Mar 2022 17:31:48 +0000 (19:31 +0200)]
lock before accessing global QML plugins map
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 7 Mar 2022 17:21:16 +0000 (19:21 +0200)]
use typedef instead of struct for global declarative components map
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 7 Mar 2022 17:04:53 +0000 (19:04 +0200)]
use QStdVector<T> for user events list and de-couple its mutex
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 7 Mar 2022 16:56:19 +0000 (18:56 +0200)]
replace hardcoded Qt::MouseButton values with enums
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 7 Mar 2022 16:46:47 +0000 (18:46 +0200)]
deal with TODO related to QGraphicsItem data store
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 7 Mar 2022 16:18:02 +0000 (18:18 +0200)]
remove redundant global static used by QNetworkInterface
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 7 Mar 2022 14:14:00 +0000 (16:14 +0200)]
implement QNetworkInterface via getifaddrs() and one ioctl() for the MAC only
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 7 Mar 2022 02:05:40 +0000 (04:05 +0200)]
remove redundant QNetworkInterface::humanReadableName() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 7 Mar 2022 00:53:26 +0000 (02:53 +0200)]
build fix for hosts without SIOCGIFHWADDR ioctl()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 6 Mar 2022 19:18:31 +0000 (21:18 +0200)]
add QClipboard test
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 6 Mar 2022 19:07:13 +0000 (21:07 +0200)]
add QAnimationGroup test
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sat, 5 Mar 2022 13:59:20 +0000 (15:59 +0200)]
do not copy socket address structure in qt_socket_getPortAndAddress() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sat, 5 Mar 2022 04:36:06 +0000 (06:36 +0200)]
add QNetworkInterface test
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sat, 5 Mar 2022 04:29:54 +0000 (06:29 +0200)]
fill hardware address of QNetworkInterface when QT_HAVE_GETIFADDRS is defined
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sat, 5 Mar 2022 04:15:30 +0000 (06:15 +0200)]
QNetworkInterfacePrivate::makeHwAddress() optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 4 Mar 2022 21:32:40 +0000 (23:32 +0200)]
build fix for the case when compiler mode is C++17 or newer
documented at https://en.cppreference.com/w/cpp/regex/basic_regex, good
thing JSC regex are not used for anything relevant, Kate uses some in its
indendation scripts and that's about it
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 4 Mar 2022 17:36:29 +0000 (19:36 +0200)]
QWorkspace class dismissed
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 4 Mar 2022 16:33:20 +0000 (18:33 +0200)]
large and transparent image samples for QImageReader benchmark
Katie image format is 6x faster than png on transparent images, note
the size of the images. benchmark result:
********* Start testing of tst_QImageReader *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS : tst_QImageReader::initTestCase()
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.kat":
0.450 msecs per iteration (total: 225, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.kat":
5.148 msecs per iteration (total: 2,574, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.kat":
2.176 msecs per iteration (total: 1,088, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.png":
1.82 msecs per iteration (total: 911, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.png":
19.46 msecs per iteration (total: 9,733, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.png":
12.34 msecs per iteration (total: 6,171, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.ppm":
0.586 msecs per iteration (total: 293, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.ppm":
2.728 msecs per iteration (total: 1,364, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.ppm":
2.418 msecs per iteration (total: 1,209, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.svg":
10.79 msecs per iteration (total: 5,399, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.xpm":
8.084 msecs per iteration (total: 4,042, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.xpm":
75.654 msecs per iteration (total: 37,827, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.xpm":
63.850 msecs per iteration (total: 31,925, iterations: 500)
PASS : tst_QImageReader::readImage()
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.kat":
1.94 msecs per iteration (total: 974, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.kat":
6.598 msecs per iteration (total: 3,299, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.kat":
3.594 msecs per iteration (total: 1,797, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.png":
3.332 msecs per iteration (total: 1,666, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.png":
20.360 msecs per iteration (total: 10,180, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.png":
13.29 msecs per iteration (total: 6,645, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.ppm":
1.44 msecs per iteration (total: 720, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.ppm":
3.668 msecs per iteration (total: 1,834, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.ppm":
3.364 msecs per iteration (total: 1,682, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.svg":
9.324 msecs per iteration (total: 4,662, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.xpm":
9.622 msecs per iteration (total: 4,811, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.xpm":
77.180 msecs per iteration (total: 38,590, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.xpm":
65.346 msecs per iteration (total: 32,673, iterations: 500)
PASS : tst_QImageReader::setScaledSize()
PASS : tst_QImageReader::cleanupTestCase()
Totals: 4 passed, 0 failed, 0 skipped
********* Finished testing of tst_QImageReader *********
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Fri, 4 Mar 2022 14:59:08 +0000 (16:59 +0200)]
implement quality option for Katie image format and document how it works
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Thu, 3 Mar 2022 18:47:02 +0000 (20:47 +0200)]
correct definition for conditional QTabWidget feature
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Thu, 3 Mar 2022 18:02:57 +0000 (20:02 +0200)]
fix possible crash when session manager property is empty list
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Thu, 3 Mar 2022 17:20:59 +0000 (19:20 +0200)]
do not detach ID variable in QSessionManager constructor
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Thu, 3 Mar 2022 14:54:49 +0000 (16:54 +0200)]
translations update [ci skip]
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Thu, 3 Mar 2022 14:24:46 +0000 (16:24 +0200)]
reduce the size of private QImageReader and QImageWriter data pointers by not storing the error string
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Thu, 3 Mar 2022 12:35:27 +0000 (14:35 +0200)]
filter duplicate MIME types from plugins with multiple keys in QImageReader::supportedMimeTypes() and QImageWriter::supportedMimeTypes()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Thu, 3 Mar 2022 02:48:53 +0000 (04:48 +0200)]
do not compute hash after QCryptographicHash::reset() unless data is added
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Thu, 3 Mar 2022 02:18:14 +0000 (04:18 +0200)]
new QImageReader::formatForMimeType() and QImageWriter::formatForMimeType() methods
fixes pasting of images from clipboard for some image formats
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Thu, 3 Mar 2022 01:12:26 +0000 (03:12 +0200)]
add note in which version QImageReader::supportedMimeTypes(), QImageWriter::defaultImageFormat() and QImageWriter::supportedMimeTypes() appeared
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Thu, 3 Mar 2022 00:47:28 +0000 (02:47 +0200)]
new required virtual method to get MIME types for image plugins
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Wed, 2 Mar 2022 16:34:04 +0000 (18:34 +0200)]
incremental hashing optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Wed, 2 Mar 2022 14:00:26 +0000 (16:00 +0200)]
brief Katie image format documentation
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Tue, 1 Mar 2022 21:51:23 +0000 (23:51 +0200)]
oops, copy-pasta
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Tue, 1 Mar 2022 21:13:35 +0000 (23:13 +0200)]
move variable closer to the scope it is used in QPdfBaseEnginePrivate::openPrintDevice()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Tue, 1 Mar 2022 21:13:16 +0000 (23:13 +0200)]
QT_NO_CUPS option does not require QT_NO_PRINTER
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Tue, 1 Mar 2022 20:56:54 +0000 (22:56 +0200)]
enable QPrintDialog print button only if printer is available
fixes crash in case no printer is available and print button is clicked
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Tue, 1 Mar 2022 16:27:45 +0000 (18:27 +0200)]
drop support for printing to file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Tue, 1 Mar 2022 11:53:09 +0000 (13:53 +0200)]
do not return current PPD from QCUPSSupport::setCurrentPrinter()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Tue, 1 Mar 2022 11:02:03 +0000 (13:02 +0200)]
use QImage::Format_ARGB32_Premultiplied image format for raster pixmaps unless pixel type is bitmap
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Tue, 1 Mar 2022 00:40:55 +0000 (02:40 +0200)]
do not build the Katie image format handler if QT_NO_IMAGEFORMAT_KAT is defined
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 23:12:26 +0000 (01:12 +0200)]
typo
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 22:40:50 +0000 (00:40 +0200)]
Katie image format optimization
from 2x faster to 3x compared to png, benchmark results bellow:
********* Start testing of tst_QImageReader *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS : tst_QImageReader::initTestCase()
RESULT : tst_QImageReader::readImage():"bench.kat":
0.452 msecs per iteration (total: 226, iterations: 500)
RESULT : tst_QImageReader::readImage():"bench.pbm":
0.026 msecs per iteration (total: 13, iterations: 500)
RESULT : tst_QImageReader::readImage():"bench.png":
1.82 msecs per iteration (total: 912, iterations: 500)
RESULT : tst_QImageReader::readImage():"bench.ppm":
0.588 msecs per iteration (total: 294, iterations: 500)
RESULT : tst_QImageReader::readImage():"bench.svg":
10.80 msecs per iteration (total: 5,400, iterations: 500)
RESULT : tst_QImageReader::readImage():"bench.xpm":
8.172 msecs per iteration (total: 4,086, iterations: 500)
PASS : tst_QImageReader::readImage()
RESULT : tst_QImageReader::setScaledSize():"bench.kat":
1.95 msecs per iteration (total: 977, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"bench.pbm":
1.34 msecs per iteration (total: 671, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"bench.png":
3.328 msecs per iteration (total: 1,664, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"bench.ppm":
1.44 msecs per iteration (total: 720, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"bench.svg":
9.304 msecs per iteration (total: 4,652, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"bench.xpm":
9.730 msecs per iteration (total: 4,865, iterations: 500)
PASS : tst_QImageReader::setScaledSize()
PASS : tst_QImageReader::cleanupTestCase()
Totals: 4 passed, 0 failed, 0 skipped
********* Finished testing of tst_QImageReader *********
********* Start testing of tst_QImageWriter *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS : tst_QImageWriter::initTestCase()
RESULT : tst_QImageWriter::writeImage():"kat":
2.428 msecs per iteration (total: 1,214, iterations: 500)
RESULT : tst_QImageWriter::writeImage():"png":
7.798 msecs per iteration (total: 3,899, iterations: 500)
RESULT : tst_QImageWriter::writeImage():"ppm":
6.954 msecs per iteration (total: 3,477, iterations: 500)
PASS : tst_QImageWriter::writeImage()
PASS : tst_QImageWriter::cleanupTestCase()
Totals: 3 passed, 0 failed, 0 skipped
********* Finished testing of tst_QImageWriter *********
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 19:43:02 +0000 (21:43 +0200)]
simplify raster pixmap creation from image
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 19:41:30 +0000 (21:41 +0200)]
unroll qt_memfill<T,T>() to 8 operations per-loop when possible
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 18:28:38 +0000 (20:28 +0200)]
png header peeking optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 17:26:57 +0000 (19:26 +0200)]
use proper QString constructor in QCUPSSupport::unicodeString()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 17:26:23 +0000 (19:26 +0200)]
replace resolveCups() function with its body
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 17:10:18 +0000 (19:10 +0200)]
pre-compute QWIDGETSIZE_MAX definition value
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 17:06:01 +0000 (19:06 +0200)]
remove mac and win leftovers
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 17:02:26 +0000 (19:02 +0200)]
remove unused QSystemTrayIconSys::background member
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 17:00:01 +0000 (19:00 +0200)]
indent qx11info_x11 source file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 16:56:16 +0000 (18:56 +0200)]
check if compositor is active on the application display, not the default
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 16:36:12 +0000 (18:36 +0200)]
add QSystemTrayIcon test
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 16:35:48 +0000 (18:35 +0200)]
indent QBalloonTip constructor
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 16:22:26 +0000 (18:22 +0200)]
optimize QSystemTrayIconSys::locateSystemTray() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 15:55:24 +0000 (17:55 +0200)]
remove unused QAbstractSocketPrivate methods and members
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 15:44:01 +0000 (17:44 +0200)]
explicit socketError() return value check in addressFromSockaddr() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 15:13:39 +0000 (17:13 +0200)]
QVariant test build fix
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 15:06:54 +0000 (17:06 +0200)]
drop unused QSharedMemory and QSystemSemaphore classes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 14:46:19 +0000 (16:46 +0200)]
remove unused QStyle::StandardPixmap::SP_VistaShield enum
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 14:19:45 +0000 (16:19 +0200)]
drop unused QQuaternion class [ci reset]
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 14:00:58 +0000 (16:00 +0200)]
use uninitialized buffers instead of resizing in QPdfEnginePrivate::addImage()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 12:33:54 +0000 (14:33 +0200)]
remove redundant cups header inclusions
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Mon, 28 Feb 2022 03:08:23 +0000 (05:08 +0200)]
reimplement javascriptcore regexp via std::regex
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 27 Feb 2022 23:44:47 +0000 (01:44 +0200)]
new QImageWriter::defaultImageFormat() method to get the prefered/best image format
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 27 Feb 2022 23:40:32 +0000 (01:40 +0200)]
determine the format from the file suffix if not provided in QImageWriter constructor
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 27 Feb 2022 23:14:12 +0000 (01:14 +0200)]
color drag-n-drop optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 27 Feb 2022 22:52:12 +0000 (00:52 +0200)]
include netinet/in header where required
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 27 Feb 2022 20:31:24 +0000 (22:31 +0200)]
optional custom image format, for the details see the webp branch
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Ivailo Monev [Sun, 27 Feb 2022 19:51:49 +0000 (21:51 +0200)]
implement QImageIOHandler::CompressionLevel for png handler
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>