LeechCraft
0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
Toggle main menu visibility
Loading...
Searching...
No Matches
qtutiltest.cpp
Go to the documentation of this file.
1
/**********************************************************************
2
* LeechCraft - modular cross-platform feature rich internet client.
3
* Copyright (C) 2006-2014 Georg Rudoy
4
*
5
* Distributed under the Boost Software License, Version 1.0.
6
* (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7
**********************************************************************/
8
9
#include "
qtutiltest.h
"
10
#include <QtTest>
11
#include <
qtutil.h
>
12
13
QTEST_APPLESS_MAIN (
LC::Util::QtUtilTest
)
14
15
namespace
LC::Util
16
{
17
void
QtUtilTest::testStringUDL ()
18
{
19
const
auto
& foo1 =
"foo"
_qs;
20
const
auto
& bar =
"bar"
_qs;
21
QCOMPARE (foo1,
"foo"
);
22
QCOMPARE (bar,
"bar"
);
23
24
auto
foo2 =
"foo"
_qs;
25
QCOMPARE (foo2,
"foo"
);
26
27
foo2.chop (1);
28
QCOMPARE (foo2,
"fo"
);
29
QCOMPARE (foo1,
"foo"
);
30
}
31
32
void
QtUtilTest::testStringUDLBench ()
33
{
34
QFETCH (
int
, strInit);
35
36
switch
(strInit)
37
{
38
case
0:
39
QBENCHMARK
40
{
41
const
QString str {
"foo"
};
42
}
43
break
;
44
case
1:
45
QBENCHMARK
46
{
47
const
auto
str = QStringLiteral (
"foo"
);
48
}
49
break
;
50
case
2:
51
QBENCHMARK
52
{
53
const
auto
str =
"foo"
_qs;
54
}
55
break
;
56
}
57
}
58
59
void
QtUtilTest::testStringUDLBench_data ()
60
{
61
QTest::addColumn<int> (
"strInit"
);
62
QTest::newRow (
"ctor"
) << 0;
63
QTest::newRow (
"QStringLiteral"
) << 1;
64
QTest::newRow (
"UDL"
) << 2;
65
}
66
67
void
QtUtilTest::testHandleQVariant ()
68
{
69
{
70
const
auto
v =
HandleQVariant
(
"foo"
_qs,
71
[] (
int
) {
return
0; },
72
[] (
const
QString&) {
return
1; },
73
[] (
const
QByteArray&) {
return
2; },
74
[] {
return
42; });
75
QCOMPARE (v, 1);
76
}
77
78
{
79
const
auto
v =
HandleQVariant
(
"foo"
_qs,
80
[] (
int
n) {
return
QString::number (n); },
81
[] (
const
QString& s) {
return
s; },
82
[] (
const
QByteArray& ba) {
return
ba; },
83
[] {
return
"default"
_qs; });
84
QCOMPARE (v,
"foo"
_qs);
85
}
86
87
{
88
const
auto
v =
HandleQVariant
(42,
89
[] (
int
n) {
return
QString::number (n); },
90
[] (
const
QString& s) {
return
s; },
91
[] (
const
QByteArray& ba) {
return
ba; },
92
[] {
return
"default"
_qs; });
93
QCOMPARE (v,
"42"
_qs);
94
}
95
96
{
97
const
auto
v =
HandleQVariant
(42ULL,
98
[] (
int
n) {
return
QString::number (n); },
99
[] (
const
QString& s) {
return
s; },
100
[] (
const
QByteArray& ba) {
return
ba; },
101
[] {
return
"default"
_qs; });
102
QCOMPARE (v,
"default"
_qs);
103
}
104
}
105
}
LC::Util::QtUtilTest
Definition
qtutiltest.h:16
LC::Util
Definition
icoreproxy.h:34
LC::Util::HandleQVariant
auto HandleQVariant(const QVariant &variant, Fs &&... handlers)
Definition
qtutil.h:143
qtutil.h
qtutiltest.h
src
util
sll
tests
qtutiltest.cpp
Generated by
1.17.0