Browse Source

Add checkSignalsByMask and checkOnlySignalsByMask

Allows for signal count > 1
QGC4.4
Don Gagne 10 years ago
parent
commit
8fc0149b7f
  1. 33
      src/qgcunittest/MultiSignalSpy.cc
  2. 18
      src/qgcunittest/MultiSignalSpy.h

33
src/qgcunittest/MultiSignalSpy.cc

@ -85,17 +85,14 @@ bool MultiSignalSpy::init( @@ -85,17 +85,14 @@ bool MultiSignalSpy::init(
return true;
}
/// @param mask bit mask specifying which signals to check. The lowest order bit represents
/// index 0 into the rgSignals array and so on up the bit mask.
/// @return true if signal count = 1 for the specified signals
bool MultiSignalSpy::checkSignalByMask(quint16 mask)
bool MultiSignalSpy::_checkSignalByMaskWorker(quint16 mask, bool multipleSignalsAllowed)
{
for (size_t i=0; i<_cSignals; i++) {
if ((1 << i) & mask) {
QSignalSpy* spy = _rgSpys[i];
Q_ASSERT(spy != NULL);
if (spy->count() != 1) {
if ((multipleSignalsAllowed && spy->count() == 0) || spy->count() != 1) {
_printSignalState();
return false;
}
@ -105,16 +102,14 @@ bool MultiSignalSpy::checkSignalByMask(quint16 mask) @@ -105,16 +102,14 @@ bool MultiSignalSpy::checkSignalByMask(quint16 mask)
return true;
}
/// @return true if signal count = 1 for specified signals and signal count of 0
/// for all other signals
bool MultiSignalSpy::checkOnlySignalByMask(quint16 mask)
bool MultiSignalSpy::_checkOnlySignalByMaskWorker(quint16 mask, bool multipleSignalsAllowed)
{
for (size_t i=0; i<_cSignals; i++) {
QSignalSpy* spy = _rgSpys[i];
Q_ASSERT(spy != NULL);
if ((1 << i) & mask) {
if (spy->count() != 1) {
if ((multipleSignalsAllowed && spy->count() == 0) || (!multipleSignalsAllowed && spy->count() != 1)) {
_printSignalState();
return false;
}
@ -129,6 +124,26 @@ bool MultiSignalSpy::checkOnlySignalByMask(quint16 mask) @@ -129,6 +124,26 @@ bool MultiSignalSpy::checkOnlySignalByMask(quint16 mask)
return true;
}
bool MultiSignalSpy::checkSignalByMask(quint16 mask)
{
return _checkSignalByMaskWorker(mask, false /* multipleSignalsAllowed */);
}
bool MultiSignalSpy::checkOnlySignalByMask(quint16 mask)
{
return _checkOnlySignalByMaskWorker(mask, false /* multipleSignalsAllowed */);
}
bool MultiSignalSpy::checkSignalsByMask(quint16 mask)
{
return _checkSignalByMaskWorker(mask, true /* multipleSignalsAllowed */);
}
bool MultiSignalSpy::checkOnlySignalsByMask(quint16 mask)
{
return _checkOnlySignalByMaskWorker(mask, true /* multipleSignalsAllowed */);
}
/// @return true if signal count = 0 for specified signals
bool MultiSignalSpy::checkNoSignalByMask(quint16 mask)
{

18
src/qgcunittest/MultiSignalSpy.h

@ -43,8 +43,24 @@ public: @@ -43,8 +43,24 @@ public:
bool init(QObject* signalEmitter, const char** rgSignals, size_t cSignals);
/// @param mask bit mask specifying which signals to check. The lowest order bit represents
/// index 0 into the rgSignals array and so on up the bit mask.
/// @return true if signal count = 1 for the specified signals
bool checkSignalByMask(quint16 mask);
/// @return true if signal count = 1 for specified signals and signal count of 0
/// for all other signals
bool checkOnlySignalByMask(quint16 mask);
/// @param mask bit mask specifying which signals to check. The lowest order bit represents
/// index 0 into the rgSignals array and so on up the bit mask.
/// @return true if signal count >= 1 for the specified signals
bool checkSignalsByMask(quint16 mask);
/// @return true if signal count >= 1 for specified signals and signal count of 0
/// for all other signals
bool checkOnlySignalsByMask(quint16 mask);
bool checkNoSignalByMask(quint16 mask);
bool checkNoSignals(void);
@ -61,6 +77,8 @@ private: @@ -61,6 +77,8 @@ private:
void timerEvent(QTimerEvent * event);
void _printSignalState(void);
bool _checkSignalByMaskWorker(quint16 mask, bool multipleSignalsAllowed);
bool _checkOnlySignalByMaskWorker(quint16 mask, bool multipleSignalsAllowed);
QObject* _signalEmitter;
const char** _rgSignals;

Loading…
Cancel
Save