| Line | Source Code | Coverage |
|---|
| 1 | | - |
| 2 | | - |
| 3 | | - |
| 4 | | - |
| 5 | | - |
| 6 | | - |
| 7 | | - |
| 8 | | - |
| 9 | static inline bool isValidCharacterNoDash(QChar c) | - |
| 10 | { | - |
| 11 | register ushort u = c.unicode(); | - |
| 12 | return (u >= 'a' && u <= 'z') | 73364 |
| 13 | || (u >= 'A' && u <= 'Z') | 73364 |
| 14 | || (u >= '0' && u <= '9') | 73364 |
| 15 | || (u == '_'); executed: return (u >= 'a' && u <= 'z') || (u >= 'A' && u <= 'Z') || (u >= '0' && u <= '9') || (u == '_');Execution Count:73364 | 73364 |
| 16 | } | - |
| 17 | | - |
| 18 | static inline bool isValidCharacter(QChar c) | - |
| 19 | { | - |
| 20 | register ushort u = c.unicode(); | - |
| 21 | return (u >= 'a' && u <= 'z') | 16055 |
| 22 | || (u >= 'A' && u <= 'Z') | 16055 |
| 23 | || (u >= '0' && u <= '9') | 16055 |
| 24 | || (u == '_') || (u == '-'); executed: return (u >= 'a' && u <= 'z') || (u >= 'A' && u <= 'Z') || (u >= '0' && u <= '9') || (u == '_') || (u == '-');Execution Count:16055 | 16055 |
| 25 | } | - |
| 26 | | - |
| 27 | static inline bool isValidNumber(QChar c) | - |
| 28 | { | - |
| 29 | register ushort u = c.unicode(); | - |
| 30 | return (u >= '0' && u <= '9'); executed: return (u >= '0' && u <= '9');Execution Count:10184 | 10184 |
| 31 | } | - |
| 32 | | - |
| 33 | | - |
| 34 | static bool argToString(const QDBusArgument &arg, QString &out); | - |
| 35 | | - |
| 36 | static bool variantToString(const QVariant &arg, QString &out) | - |
| 37 | { | - |
| 38 | int argType = arg.userType(); | - |
| 39 | | - |
| 40 | if (argType == QVariant::StringList) { never evaluated: argType == QVariant::StringList | 0 |
| 41 | out += QLatin1Char('{'); | - |
| 42 | QStringList list = arg.toStringList(); | - |
| 43 | for (QForeachContainer<__typeof__(list)> _container_(list); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (const QString &item = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 44 | out += QLatin1Char('\"') + item + QLatin1String("\", "); never executed: out += QLatin1Char('\"') + item + QLatin1String("\", "); | 0 |
| 45 | if (!list.isEmpty()) never evaluated: !list.isEmpty() | 0 |
| 46 | out.chop(2); never executed: out.chop(2); | 0 |
| 47 | out += QLatin1Char('}'); | - |
| 48 | } else if (argType == QVariant::ByteArray) { never evaluated: argType == QVariant::ByteArray | 0 |
| 49 | out += QLatin1Char('{'); | - |
| 50 | QByteArray list = arg.toByteArray(); | - |
| 51 | for (int i = 0; i < list.count(); ++i) { never evaluated: i < list.count() | 0 |
| 52 | out += QString::number(list.at(i)); | - |
| 53 | out += QLatin1String(", "); | - |
| 54 | } | 0 |
| 55 | if (!list.isEmpty()) never evaluated: !list.isEmpty() | 0 |
| 56 | out.chop(2); never executed: out.chop(2); | 0 |
| 57 | out += QLatin1Char('}'); | - |
| 58 | } else if (argType == QVariant::List) { never evaluated: argType == QVariant::List | 0 |
| 59 | out += QLatin1Char('{'); | - |
| 60 | QList<QVariant> list = arg.toList(); | - |
| 61 | for (QForeachContainer<__typeof__(list)> _container_(list); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (const QVariant &item = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 62 | if (!variantToString(item, out)) never evaluated: !variantToString(item, out) | 0 |
| 63 | return false; never executed: return false; | 0 |
| 64 | out += QLatin1String(", "); | - |
| 65 | } | 0 |
| 66 | if (!list.isEmpty()) never evaluated: !list.isEmpty() | 0 |
| 67 | out.chop(2); never executed: out.chop(2); | 0 |
| 68 | out += QLatin1Char('}'); | - |
| 69 | } else if (argType == QMetaType::Char || argType == QMetaType::Short || argType == QMetaType::Int never evaluated: argType == QMetaType::Char never evaluated: argType == QMetaType::Short never evaluated: argType == QMetaType::Int | 0 |
| 70 | || argType == QMetaType::Long || argType == QMetaType::LongLong) { never evaluated: argType == QMetaType::Long never evaluated: argType == QMetaType::LongLong | 0 |
| 71 | out += QString::number(arg.toLongLong()); | - |
| 72 | } else if (argType == QMetaType::UChar || argType == QMetaType::UShort || argType == QMetaType::UInt never evaluated: argType == QMetaType::UChar never evaluated: argType == QMetaType::UShort never evaluated: argType == QMetaType::UInt | 0 |
| 73 | || argType == QMetaType::ULong || argType == QMetaType::ULongLong) { never evaluated: argType == QMetaType::ULong never evaluated: argType == QMetaType::ULongLong | 0 |
| 74 | out += QString::number(arg.toULongLong()); | - |
| 75 | } else if (argType == QMetaType::Double) { never evaluated: argType == QMetaType::Double | 0 |
| 76 | out += QString::number(arg.toDouble()); | - |
| 77 | } else if (argType == QMetaType::Bool) { never evaluated: argType == QMetaType::Bool | 0 |
| 78 | out += QLatin1String(arg.toBool() ? "true" : "false"); | - |
| 79 | } else if (argType == qMetaTypeId<QDBusArgument>()) { never evaluated: argType == qMetaTypeId<QDBusArgument>() | 0 |
| 80 | argToString(qvariant_cast<QDBusArgument>(arg), out); | - |
| 81 | } else if (argType == qMetaTypeId<QDBusObjectPath>()) { never evaluated: argType == qMetaTypeId<QDBusObjectPath>() | 0 |
| 82 | const QString path = qvariant_cast<QDBusObjectPath>(arg).path(); | - |
| 83 | out += QLatin1String("[ObjectPath: "); | - |
| 84 | out += path; | - |
| 85 | out += QLatin1Char(']'); | - |
| 86 | } else if (argType == qMetaTypeId<QDBusSignature>()) { never evaluated: argType == qMetaTypeId<QDBusSignature>() | 0 |
| 87 | out += QLatin1String("[Signature: ") + qvariant_cast<QDBusSignature>(arg).signature(); | - |
| 88 | out += QLatin1Char(']'); | - |
| 89 | } else if (argType == qMetaTypeId<QDBusUnixFileDescriptor>()) { never evaluated: argType == qMetaTypeId<QDBusUnixFileDescriptor>() | 0 |
| 90 | out += QLatin1String("[Unix FD: "); | - |
| 91 | out += QLatin1String(qvariant_cast<QDBusUnixFileDescriptor>(arg).isValid() ? "valid" : "not valid"); | - |
| 92 | out += QLatin1Char(']'); | - |
| 93 | } else if (argType == qMetaTypeId<QDBusVariant>()) { never evaluated: argType == qMetaTypeId<QDBusVariant>() | 0 |
| 94 | const QVariant v = qvariant_cast<QDBusVariant>(arg).variant(); | - |
| 95 | out += QLatin1String("[Variant"); | - |
| 96 | int vUserType = v.userType(); | - |
| 97 | if (vUserType != qMetaTypeId<QDBusVariant>() never evaluated: vUserType != qMetaTypeId<QDBusVariant>() | 0 |
| 98 | && vUserType != qMetaTypeId<QDBusSignature>() never evaluated: vUserType != qMetaTypeId<QDBusSignature>() | 0 |
| 99 | && vUserType != qMetaTypeId<QDBusObjectPath>() never evaluated: vUserType != qMetaTypeId<QDBusObjectPath>() | 0 |
| 100 | && vUserType != qMetaTypeId<QDBusArgument>()) never evaluated: vUserType != qMetaTypeId<QDBusArgument>() | 0 |
| 101 | out += QLatin1Char('(') + QLatin1String(v.typeName()) + QLatin1Char(')'); never executed: out += QLatin1Char('(') + QLatin1String(v.typeName()) + QLatin1Char(')'); | 0 |
| 102 | out += QLatin1String(": "); | - |
| 103 | if (!variantToString(v, out)) never evaluated: !variantToString(v, out) | 0 |
| 104 | return false; never executed: return false; | 0 |
| 105 | out += QLatin1Char(']'); | - |
| 106 | } else if (arg.canConvert(QVariant::String)) { never evaluated: arg.canConvert(QVariant::String) | 0 |
| 107 | out += QLatin1Char('\"') + arg.toString() + QLatin1Char('\"'); | - |
| 108 | } else { | 0 |
| 109 | out += QLatin1Char('['); | - |
| 110 | out += QLatin1String(arg.typeName()); | - |
| 111 | out += QLatin1Char(']'); | - |
| 112 | } | 0 |
| 113 | | - |
| 114 | return true; never executed: return true; | 0 |
| 115 | } | - |
| 116 | | - |
| 117 | bool argToString(const QDBusArgument &busArg, QString &out) | - |
| 118 | { | - |
| 119 | QString busSig = busArg.currentSignature(); | - |
| 120 | bool doIterate = false; | - |
| 121 | QDBusArgument::ElementType elementType = busArg.currentType(); | - |
| 122 | | - |
| 123 | if (elementType != QDBusArgument::BasicType && elementType != QDBusArgument::VariantType never evaluated: elementType != QDBusArgument::BasicType never evaluated: elementType != QDBusArgument::VariantType | 0 |
| 124 | && elementType != QDBusArgument::MapEntryType) never evaluated: elementType != QDBusArgument::MapEntryType | 0 |
| 125 | out += QLatin1String("[Argument: ") + busSig + QLatin1Char(' '); never executed: out += QLatin1String("[Argument: ") + busSig + QLatin1Char(' '); | 0 |
| 126 | | - |
| 127 | switch (elementType) { | - |
| 128 | case QDBusArgument::BasicType: | - |
| 129 | case QDBusArgument::VariantType: | - |
| 130 | if (!variantToString(busArg.asVariant(), out)) never evaluated: !variantToString(busArg.asVariant(), out) | 0 |
| 131 | return false; never executed: return false; | 0 |
| 132 | break; | 0 |
| 133 | case QDBusArgument::StructureType: | - |
| 134 | busArg.beginStructure(); | - |
| 135 | doIterate = true; | - |
| 136 | break; | 0 |
| 137 | case QDBusArgument::ArrayType: | - |
| 138 | busArg.beginArray(); | - |
| 139 | out += QLatin1Char('{'); | - |
| 140 | doIterate = true; | - |
| 141 | break; | 0 |
| 142 | case QDBusArgument::MapType: | - |
| 143 | busArg.beginMap(); | - |
| 144 | out += QLatin1Char('{'); | - |
| 145 | doIterate = true; | - |
| 146 | break; | 0 |
| 147 | case QDBusArgument::MapEntryType: | - |
| 148 | busArg.beginMapEntry(); | - |
| 149 | if (!variantToString(busArg.asVariant(), out)) never evaluated: !variantToString(busArg.asVariant(), out) | 0 |
| 150 | return false; never executed: return false; | 0 |
| 151 | out += QLatin1String(" = "); | - |
| 152 | if (!argToString(busArg, out)) never evaluated: !argToString(busArg, out) | 0 |
| 153 | return false; never executed: return false; | 0 |
| 154 | busArg.endMapEntry(); | - |
| 155 | break; | 0 |
| 156 | case QDBusArgument::UnknownType: | - |
| 157 | default: | - |
| 158 | out += QLatin1String("<ERROR - Unknown Type>"); | - |
| 159 | return false; never executed: return false; | 0 |
| 160 | } | - |
| 161 | if (doIterate && !busArg.atEnd()) { never evaluated: doIterate never evaluated: !busArg.atEnd() | 0 |
| 162 | while (!busArg.atEnd()) { never evaluated: !busArg.atEnd() | 0 |
| 163 | if (!argToString(busArg, out)) never evaluated: !argToString(busArg, out) | 0 |
| 164 | return false; never executed: return false; | 0 |
| 165 | out += QLatin1String(", "); | - |
| 166 | } | 0 |
| 167 | out.chop(2); | - |
| 168 | } | 0 |
| 169 | switch (elementType) { | - |
| 170 | case QDBusArgument::BasicType: | - |
| 171 | case QDBusArgument::VariantType: | - |
| 172 | case QDBusArgument::UnknownType: | - |
| 173 | case QDBusArgument::MapEntryType: | - |
| 174 | | - |
| 175 | break; | 0 |
| 176 | case QDBusArgument::StructureType: | - |
| 177 | busArg.endStructure(); | - |
| 178 | break; | 0 |
| 179 | case QDBusArgument::ArrayType: | - |
| 180 | out += QLatin1Char('}'); | - |
| 181 | busArg.endArray(); | - |
| 182 | break; | 0 |
| 183 | case QDBusArgument::MapType: | - |
| 184 | out += QLatin1Char('}'); | - |
| 185 | busArg.endMap(); | - |
| 186 | break; | 0 |
| 187 | } | - |
| 188 | | - |
| 189 | if (elementType != QDBusArgument::BasicType && elementType != QDBusArgument::VariantType never evaluated: elementType != QDBusArgument::BasicType never evaluated: elementType != QDBusArgument::VariantType | 0 |
| 190 | && elementType != QDBusArgument::MapEntryType) never evaluated: elementType != QDBusArgument::MapEntryType | 0 |
| 191 | out += QLatin1Char(']'); never executed: out += QLatin1Char(']'); | 0 |
| 192 | | - |
| 193 | return true; never executed: return true; | 0 |
| 194 | } | - |
| 195 | | - |
| 196 | | - |
| 197 | | - |
| 198 | static const char oneLetterTypes[] = "vsogybnqiuxtdh"; | - |
| 199 | static const char basicTypes[] = "sogybnqiuxtdh"; | - |
| 200 | static const char fixedTypes[] = "ybnqiuxtdh"; | - |
| 201 | | - |
| 202 | static bool isBasicType(int c) | - |
| 203 | { | - |
| 204 | return c != ((int) '\0') && strchr(basicTypes, c) != __null; executed: return c != ((int) '\0') && strchr(basicTypes, c) != __null;Execution Count:336 | 336 |
| 205 | } | - |
| 206 | | - |
| 207 | static bool isFixedType(int c) | - |
| 208 | { | - |
| 209 | return c != ((int) '\0') && strchr(fixedTypes, c) != __null; executed: return c != ((int) '\0') && strchr(fixedTypes, c) != __null;Execution Count:31 | 31 |
| 210 | } | - |
| 211 | | - |
| 212 | | - |
| 213 | | - |
| 214 | static const char *validateSingleType(const char *signature) | - |
| 215 | { | - |
| 216 | register char c = *signature; | - |
| 217 | if (c == ((int) '\0')) evaluated: c == ((int) '\0')| yes Evaluation Count:29 | yes Evaluation Count:3830 |
| 29-3830 |
| 218 | return 0; executed: return 0;Execution Count:29 | 29 |
| 219 | | - |
| 220 | | - |
| 221 | if (strchr(oneLetterTypes, c) != __null) evaluated: strchr(oneLetterTypes, c) != __null| yes Evaluation Count:2781 | yes Evaluation Count:1049 |
| 1049-2781 |
| 222 | return signature + 1; executed: return signature + 1;Execution Count:2781 | 2781 |
| 223 | | - |
| 224 | | - |
| 225 | if (c == ((int) 'a')) { evaluated: c == ((int) 'a')| yes Evaluation Count:655 | yes Evaluation Count:394 |
| 394-655 |
| 226 | | - |
| 227 | | - |
| 228 | c = *++signature; | - |
| 229 | if (c == ((int) '{')) { evaluated: c == ((int) '{')| yes Evaluation Count:280 | yes Evaluation Count:375 |
| 280-375 |
| 230 | | - |
| 231 | | - |
| 232 | | - |
| 233 | c = *++signature; | - |
| 234 | if (!isBasicType(c)) evaluated: !isBasicType(c)| yes Evaluation Count:16 | yes Evaluation Count:264 |
| 16-264 |
| 235 | return 0; executed: return 0;Execution Count:16 | 16 |
| 236 | signature = validateSingleType(signature + 1); | - |
| 237 | return signature && *signature == ((int) '}') ? signature + 1 : 0; executed: return signature && *signature == ((int) '}') ? signature + 1 : 0;Execution Count:264 | 264 |
| 238 | } | - |
| 239 | | - |
| 240 | return validateSingleType(signature); executed: return validateSingleType(signature);Execution Count:375 | 375 |
| 241 | } | - |
| 242 | | - |
| 243 | if (c == ((int) '(')) { evaluated: c == ((int) '(')| yes Evaluation Count:354 | yes Evaluation Count:40 |
| 40-354 |
| 244 | | - |
| 245 | ++signature; | - |
| 246 | while (true) { partially evaluated: true| yes Evaluation Count:819 | no Evaluation Count:0 |
| 0-819 |
| 247 | signature = validateSingleType(signature); | - |
| 248 | if (!signature) evaluated: !signature| yes Evaluation Count:34 | yes Evaluation Count:785 |
| 34-785 |
| 249 | return 0; executed: return 0;Execution Count:34 | 34 |
| 250 | if (*signature == ((int) ')')) evaluated: *signature == ((int) ')')| yes Evaluation Count:320 | yes Evaluation Count:465 |
| 320-465 |
| 251 | return signature + 1; executed: return signature + 1;Execution Count:320 | 320 |
| 252 | } executed: }Execution Count:465 | 465 |
| 253 | } | 0 |
| 254 | | - |
| 255 | | - |
| 256 | return 0; executed: return 0;Execution Count:40 | 40 |
| 257 | } | - |
| 258 | namespace QDBusUtil | - |
| 259 | { | - |
| 260 | | - |
| 261 | | - |
| 262 | | - |
| 263 | | - |
| 264 | | - |
| 265 | QString argumentToString(const QVariant &arg) | - |
| 266 | { | - |
| 267 | QString out; | - |
| 268 | | - |
| 269 | | - |
| 270 | variantToString(arg, out); | - |
| 271 | | - |
| 272 | | - |
| 273 | | - |
| 274 | | - |
| 275 | return out; never executed: return out; | 0 |
| 276 | } | - |
| 277 | | - |
| 278 | | - |
| 279 | | - |
| 280 | | - |
| 281 | | - |
| 282 | | - |
| 283 | bool isValidPartOfObjectPath(const QString &part) | - |
| 284 | { | - |
| 285 | if (part.isEmpty()) partially evaluated: part.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:1895 |
| 0-1895 |
| 286 | return false; never executed: return false; | 0 |
| 287 | | - |
| 288 | const QChar *c = part.unicode(); | - |
| 289 | for (int i = 0; i < part.length(); ++i) evaluated: i < part.length()| yes Evaluation Count:10708 | yes Evaluation Count:1895 |
| 1895-10708 |
| 290 | if (!isValidCharacterNoDash(c[i])) partially evaluated: !isValidCharacterNoDash(c[i])| no Evaluation Count:0 | yes Evaluation Count:10708 |
| 0-10708 |
| 291 | return false; never executed: return false; | 0 |
| 292 | | - |
| 293 | return true; executed: return true;Execution Count:1895 | 1895 |
| 294 | } | - |
| 295 | bool isValidInterfaceName(const QString& ifaceName) | - |
| 296 | { | - |
| 297 | if (ifaceName.isEmpty() || ifaceName.length() > 255) partially evaluated: ifaceName.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:1628 |
partially evaluated: ifaceName.length() > 255| no Evaluation Count:0 | yes Evaluation Count:1628 |
| 0-1628 |
| 298 | return false; never executed: return false; | 0 |
| 299 | | - |
| 300 | QStringList parts = ifaceName.split(QLatin1Char('.')); | - |
| 301 | if (parts.count() < 2) partially evaluated: parts.count() < 2| no Evaluation Count:0 | yes Evaluation Count:1628 |
| 0-1628 |
| 302 | return false; never executed: return false; | 0 |
| 303 | | - |
| 304 | for (int i = 0; i < parts.count(); ++i) evaluated: i < parts.count()| yes Evaluation Count:5741 | yes Evaluation Count:1628 |
| 1628-5741 |
| 305 | if (!isValidMemberName(parts.at(i))) partially evaluated: !isValidMemberName(parts.at(i))| no Evaluation Count:0 | yes Evaluation Count:5741 |
| 0-5741 |
| 306 | return false; never executed: return false; | 0 |
| 307 | | - |
| 308 | return true; executed: return true;Execution Count:1628 | 1628 |
| 309 | } | - |
| 310 | bool isValidUniqueConnectionName(const QString &connName) | - |
| 311 | { | - |
| 312 | if (connName.isEmpty() || connName.length() > 255 || partially evaluated: connName.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:347 |
partially evaluated: connName.length() > 255| no Evaluation Count:0 | yes Evaluation Count:347 |
| 0-347 |
| 313 | !connName.startsWith(QLatin1Char(':'))) evaluated: !connName.startsWith(QLatin1Char(':'))| yes Evaluation Count:30 | yes Evaluation Count:317 |
| 30-317 |
| 314 | return false; executed: return false;Execution Count:30 | 30 |
| 315 | | - |
| 316 | QStringList parts = connName.mid(1).split(QLatin1Char('.')); | - |
| 317 | if (parts.count() < 1) partially evaluated: parts.count() < 1| no Evaluation Count:0 | yes Evaluation Count:317 |
| 0-317 |
| 318 | return false; never executed: return false; | 0 |
| 319 | | - |
| 320 | for (int i = 0; i < parts.count(); ++i) { evaluated: i < parts.count()| yes Evaluation Count:634 | yes Evaluation Count:317 |
| 317-634 |
| 321 | const QString &part = parts.at(i); | - |
| 322 | if (part.isEmpty()) partially evaluated: part.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:634 |
| 0-634 |
| 323 | return false; never executed: return false; | 0 |
| 324 | | - |
| 325 | const QChar* c = part.unicode(); | - |
| 326 | for (int j = 0; j < part.length(); ++j) evaluated: j < part.length()| yes Evaluation Count:1585 | yes Evaluation Count:634 |
| 634-1585 |
| 327 | if (!isValidCharacter(c[j])) partially evaluated: !isValidCharacter(c[j])| no Evaluation Count:0 | yes Evaluation Count:1585 |
| 0-1585 |
| 328 | return false; never executed: return false; | 0 |
| 329 | } executed: }Execution Count:634 | 634 |
| 330 | | - |
| 331 | return true; executed: return true;Execution Count:317 | 317 |
| 332 | } | - |
| 333 | bool isValidBusName(const QString &busName) | - |
| 334 | { | - |
| 335 | if (busName.isEmpty() || busName.length() > 255) partially evaluated: busName.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:746 |
partially evaluated: busName.length() > 255| no Evaluation Count:0 | yes Evaluation Count:746 |
| 0-746 |
| 336 | return false; never executed: return false; | 0 |
| 337 | | - |
| 338 | if (busName.startsWith(QLatin1Char(':'))) evaluated: busName.startsWith(QLatin1Char(':'))| yes Evaluation Count:208 | yes Evaluation Count:538 |
| 208-538 |
| 339 | return isValidUniqueConnectionName(busName); executed: return isValidUniqueConnectionName(busName);Execution Count:208 | 208 |
| 340 | | - |
| 341 | QStringList parts = busName.split(QLatin1Char('.')); | - |
| 342 | if (parts.count() < 1) partially evaluated: parts.count() < 1| no Evaluation Count:0 | yes Evaluation Count:538 |
| 0-538 |
| 343 | return false; never executed: return false; | 0 |
| 344 | | - |
| 345 | for (int i = 0; i < parts.count(); ++i) { evaluated: i < parts.count()| yes Evaluation Count:2043 | yes Evaluation Count:531 |
| 531-2043 |
| 346 | const QString &part = parts.at(i); | - |
| 347 | if (part.isEmpty()) partially evaluated: part.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:2043 |
| 0-2043 |
| 348 | return false; never executed: return false; | 0 |
| 349 | | - |
| 350 | const QChar *c = part.unicode(); | - |
| 351 | if (isValidNumber(c[0])) partially evaluated: isValidNumber(c[0])| no Evaluation Count:0 | yes Evaluation Count:2043 |
| 0-2043 |
| 352 | return false; never executed: return false; | 0 |
| 353 | for (int j = 0; j < part.length(); ++j) evaluated: j < part.length()| yes Evaluation Count:14470 | yes Evaluation Count:2036 |
| 2036-14470 |
| 354 | if (!isValidCharacter(c[j])) evaluated: !isValidCharacter(c[j])| yes Evaluation Count:7 | yes Evaluation Count:14463 |
| 7-14463 |
| 355 | return false; executed: return false;Execution Count:7 | 7 |
| 356 | } executed: }Execution Count:2036 | 2036 |
| 357 | | - |
| 358 | return true; executed: return true;Execution Count:531 | 531 |
| 359 | } | - |
| 360 | | - |
| 361 | | - |
| 362 | | - |
| 363 | | - |
| 364 | | - |
| 365 | | - |
| 366 | | - |
| 367 | bool isValidMemberName(const QString &memberName) | - |
| 368 | { | - |
| 369 | if (memberName.isEmpty() || memberName.length() > 255) partially evaluated: memberName.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:8141 |
partially evaluated: memberName.length() > 255| no Evaluation Count:0 | yes Evaluation Count:8141 |
| 0-8141 |
| 370 | return false; never executed: return false; | 0 |
| 371 | | - |
| 372 | const QChar* c = memberName.unicode(); | - |
| 373 | if (isValidNumber(c[0])) partially evaluated: isValidNumber(c[0])| no Evaluation Count:0 | yes Evaluation Count:8141 |
| 0-8141 |
| 374 | return false; never executed: return false; | 0 |
| 375 | for (int j = 0; j < memberName.length(); ++j) evaluated: j < memberName.length()| yes Evaluation Count:62656 | yes Evaluation Count:8141 |
| 8141-62656 |
| 376 | if (!isValidCharacterNoDash(c[j])) partially evaluated: !isValidCharacterNoDash(c[j])| no Evaluation Count:0 | yes Evaluation Count:62656 |
| 0-62656 |
| 377 | return false; never executed: return false; | 0 |
| 378 | return true; executed: return true;Execution Count:8141 | 8141 |
| 379 | } | - |
| 380 | | - |
| 381 | | - |
| 382 | | - |
| 383 | | - |
| 384 | | - |
| 385 | | - |
| 386 | bool isValidErrorName(const QString &errorName) | - |
| 387 | { | - |
| 388 | return isValidInterfaceName(errorName); never executed: return isValidInterfaceName(errorName); | 0 |
| 389 | } | - |
| 390 | bool isValidObjectPath(const QString &path) | - |
| 391 | { | - |
| 392 | if (path == QLatin1String("/")) evaluated: path == QLatin1String("/")| yes Evaluation Count:613 | yes Evaluation Count:782 |
| 613-782 |
| 393 | return true; executed: return true;Execution Count:613 | 613 |
| 394 | | - |
| 395 | if (!path.startsWith(QLatin1Char('/')) || path.indexOf(QLatin1String("//")) != -1 || evaluated: !path.startsWith(QLatin1Char('/'))| yes Evaluation Count:14 | yes Evaluation Count:768 |
partially evaluated: path.indexOf(QLatin1String("//")) != -1| no Evaluation Count:0 | yes Evaluation Count:768 |
| 0-768 |
| 396 | path.endsWith(QLatin1Char('/'))) partially evaluated: path.endsWith(QLatin1Char('/'))| no Evaluation Count:0 | yes Evaluation Count:768 |
| 0-768 |
| 397 | return false; executed: return false;Execution Count:14 | 14 |
| 398 | | - |
| 399 | QStringList parts = path.split(QLatin1Char('/')); | - |
| 400 | qt_noop(); | - |
| 401 | parts.removeFirst(); | - |
| 402 | | - |
| 403 | for (int i = 0; i < parts.count(); ++i) evaluated: i < parts.count()| yes Evaluation Count:1895 | yes Evaluation Count:768 |
| 768-1895 |
| 404 | if (!isValidPartOfObjectPath(parts.at(i))) partially evaluated: !isValidPartOfObjectPath(parts.at(i))| no Evaluation Count:0 | yes Evaluation Count:1895 |
| 0-1895 |
| 405 | return false; never executed: return false; | 0 |
| 406 | | - |
| 407 | return true; executed: return true;Execution Count:768 | 768 |
| 408 | } | - |
| 409 | | - |
| 410 | | - |
| 411 | | - |
| 412 | | - |
| 413 | | - |
| 414 | bool isValidBasicType(int c) | - |
| 415 | { | - |
| 416 | return isBasicType(c); executed: return isBasicType(c);Execution Count:56 | 56 |
| 417 | } | - |
| 418 | | - |
| 419 | | - |
| 420 | | - |
| 421 | | - |
| 422 | | - |
| 423 | bool isValidFixedType(int c) | - |
| 424 | { | - |
| 425 | return isFixedType(c); executed: return isFixedType(c);Execution Count:31 | 31 |
| 426 | } | - |
| 427 | bool isValidSignature(const QString &signature) | - |
| 428 | { | - |
| 429 | QByteArray ba = signature.toLatin1(); | - |
| 430 | const char *data = ba.constData(); | - |
| 431 | while (true) { partially evaluated: true| yes Evaluation Count:96 | no Evaluation Count:0 |
| 0-96 |
| 432 | data = validateSingleType(data); | - |
| 433 | if (!data) evaluated: !data| yes Evaluation Count:22 | yes Evaluation Count:74 |
| 22-74 |
| 434 | return false; executed: return false;Execution Count:22 | 22 |
| 435 | if (*data == '\0') evaluated: *data == '\0'| yes Evaluation Count:40 | yes Evaluation Count:34 |
| 34-40 |
| 436 | return true; executed: return true;Execution Count:40 | 40 |
| 437 | } executed: }Execution Count:34 | 34 |
| 438 | } | 0 |
| 439 | | - |
| 440 | | - |
| 441 | | - |
| 442 | | - |
| 443 | | - |
| 444 | | - |
| 445 | | - |
| 446 | bool isValidSingleSignature(const QString &signature) | - |
| 447 | { | - |
| 448 | QByteArray ba = signature.toLatin1(); | - |
| 449 | const char *data = validateSingleType(ba.constData()); | - |
| 450 | return data && *data == '\0'; executed: return data && *data == '\0';Execution Count:2305 | 2305 |
| 451 | } | - |
| 452 | | - |
| 453 | } | - |
| 454 | | - |
| 455 | | - |
| 456 | | - |
| | |