Seamly2D
Code documentation
abstracttest.h
Go to the documentation of this file.
1 /***************************************************************************
2  * *
3  * Copyright (C) 2017 Seamly, LLC *
4  * *
5  * https://github.com/fashionfreedom/seamly2d *
6  * *
7  ***************************************************************************
8  **
9  ** Seamly2D is free software: you can redistribute it and/or modify
10  ** it under the terms of the GNU General Public License as published by
11  ** the Free Software Foundation, either version 3 of the License, or
12  ** (at your option) any later version.
13  **
14  ** Seamly2D is distributed in the hope that it will be useful,
15  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
16  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  ** GNU General Public License for more details.
18  **
19  ** You should have received a copy of the GNU General Public License
20  ** along with Seamly2D. If not, see <http://www.gnu.org/licenses/>.
21  **
22  **************************************************************************
23 
24  ************************************************************************
25  **
26  ** @file abstracttest.h
27  ** @author Roman Telezhynskyi <dismine(at)gmail.com>
28  ** @date 7 5, 2015
29  **
30  ** @brief
31  ** @copyright
32  ** This source code is part of the Valentine project, a pattern making
33  ** program, whose allow create and modeling patterns of clothing.
34  ** Copyright (C) 2015 Seamly2D project
35  ** <https://github.com/fashionfreedom/seamly2d> All Rights Reserved.
36  **
37  ** Seamly2D is free software: you can redistribute it and/or modify
38  ** it under the terms of the GNU General Public License as published by
39  ** the Free Software Foundation, either version 3 of the License, or
40  ** (at your option) any later version.
41  **
42  ** Seamly2D is distributed in the hope that it will be useful,
43  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
44  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
45  ** GNU General Public License for more details.
46  **
47  ** You should have received a copy of the GNU General Public License
48  ** along with Seamly2D. If not, see <http://www.gnu.org/licenses/>.
49  **
50  *************************************************************************/
51 
52 #ifndef ABSTRACTTEST_H
53 #define ABSTRACTTEST_H
54 
55 #include <QMetaObject>
56 #include <QObject>
57 #include <QString>
58 
59 template <class T> class QVector;
60 
61 #ifdef Q_CC_MSVC
62 #include <ciso646>
63 #endif /* Q_CC_MSVC */
64 
65 #ifdef __GNUC__
66 #define V_UNUSED __attribute__ ((unused))
67 #else
68 #define V_UNUSED
69 #endif
70 
71 // Return codes for testing run application
72 static const auto V_UNUSED TST_EX_BIN = -1; // Can't find binary.
73 static const auto V_UNUSED TST_EX_FINISH_TIME_OUT = -2; // The operation timed out or an error occurred.
74 static const auto V_UNUSED TST_EX_START_TIME_OUT = -3; // The operation timed out or an error occurred.
75 static const auto V_UNUSED TST_EX_CRASH = -4; // Program crashed.
76 
77 #undef V_UNUSED
78 
80 
81 class AbstractTest : public QObject
82 {
83  Q_OBJECT
84 public:
85  explicit AbstractTest(QObject *parent = nullptr);
86 
87 protected:
88  void Comparison(const QVector<QPointF> &ekv, const QVector<QPointF> &ekvOrig) const;
89  void Comparison(const QPointF &result, const QPointF &expected, qreal testAccuracy) const;
90 
91  QString Seamly2DPath() const;
92  QString SeamlyMePath() const;
93  QString TranslationsPath() const;
94 
95  int Run(int exit, const QString &program, const QStringList &arguments, QString &error, int msecs = 120000);
96  bool CopyRecursively(const QString &srcFilePath, const QString &tgtFilePath) const;
97 };
98 
99 #endif // ABSTRACTTEST_H
static const auto TST_EX_CRASH
Definition: abstracttest.h:75
static const auto TST_EX_BIN
Definition: abstracttest.h:72
#define V_UNUSED
Definition: abstracttest.h:68
static const auto TST_EX_START_TIME_OUT
Definition: abstracttest.h:74
static const auto TST_EX_FINISH_TIME_OUT
Definition: abstracttest.h:73
ErrorState
Definition: abstracttest.h:79
@ ErrorInstall
Definition: abstracttest.h:79
@ ErrorSize
Definition: abstracttest.h:79
@ ErrorLoad
Definition: abstracttest.h:79
@ NoError
Definition: abstracttest.h:79
QString TranslationsPath() const
int Run(int exit, const QString &program, const QStringList &arguments, QString &error, int msecs=120000)
bool CopyRecursively(const QString &srcFilePath, const QString &tgtFilePath) const
AbstractTest(QObject *parent=nullptr)
QString SeamlyMePath() const
QString Seamly2DPath() const
void Comparison(const QVector< QPointF > &ekv, const QVector< QPointF > &ekvOrig) const