Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Geyer <debfx@fobos.de>2015-07-20 22:32:07 +0300
committerFelix Geyer <debfx@fobos.de>2015-07-20 22:35:48 +0300
commit2033174d9570c32efc9f1f934f4a0ee0f0bb4f58 (patch)
tree81be23595aca55ee1fa93616b760e74d017d220e /tests/FailDevice.h
parent606e36acf382be4a4b5fdef557fda324abf19fb2 (diff)
Test if we correctly detect errors when writing.
Diffstat (limited to 'tests/FailDevice.h')
-rw-r--r--tests/FailDevice.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/FailDevice.h b/tests/FailDevice.h
new file mode 100644
index 000000000..f81259321
--- /dev/null
+++ b/tests/FailDevice.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2015 Felix Geyer <debfx@fobos.de>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 or (at your option)
+ * version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef KEEPASSX_FAILDEVICE_H
+#define KEEPASSX_FAILDEVICE_H
+
+#include <QBuffer>
+
+#include "core/Global.h"
+
+class FailDevice : public QBuffer
+{
+ Q_OBJECT
+
+public:
+ explicit FailDevice(int failAfter, QObject* parent = Q_NULLPTR);
+ bool open(QIODevice::OpenMode openMode) Q_DECL_OVERRIDE;
+
+protected:
+ qint64 readData(char* data, qint64 len) Q_DECL_OVERRIDE;
+ qint64 writeData(const char* data, qint64 len) Q_DECL_OVERRIDE;
+
+private:
+ int m_failAfter;
+ int m_readCount;
+ int m_writeCount;
+};
+
+#endif // KEEPASSX_FAILDEVICE_H