summaryrefslogtreecommitdiffstats
path: root/QtTest/TestCaseBase.qml
diff options
context:
space:
mode:
Diffstat (limited to 'QtTest/TestCaseBase.qml')
-rw-r--r--QtTest/TestCaseBase.qml87
1 files changed, 87 insertions, 0 deletions
diff --git a/QtTest/TestCaseBase.qml b/QtTest/TestCaseBase.qml
new file mode 100644
index 0000000..122c6ae
--- /dev/null
+++ b/QtTest/TestCaseBase.qml
@@ -0,0 +1,87 @@
+import Qt 4.7
+
+Item {
+ id: testCase
+ visible: false
+ property string name
+ property variant tests: []
+
+ property string currentTestCase
+ property int numPassed
+ property int numFailed
+ property int numSkipped
+ property bool expectingFail
+ property string expectFailMsg
+
+ function fail(msg) {
+ if (expectingFail) {
+ if (expectFailMsg)
+ print("EXPECT : " + currentTestCase + " " + expectFailMsg + " " + msg)
+ else
+ print("EXPECT : " + currentTestCase + " " + msg)
+ throw new Error("QtTest::expect_fail")
+ } else {
+ print("FAIL : " + currentTestCase + " " + msg)
+ throw new Error("QtTest::fail")
+ }
+ }
+
+ function fail2(msg, msg2) {
+ if (msg)
+ fail(msg + ": " + msg2)
+ else
+ fail(msg2)
+ }
+
+ function verify(cond, msg) {
+ if (!cond)
+ fail(msg)
+ }
+
+ function compare(actual, expected, msg) {
+ if (actual != expected)
+ fail2(msg, "actual: " + actual + ", expected: " + expected)
+ }
+
+ function skip(msg) {
+ print("SKIP : " + currentTestCase + " " + msg)
+ throw new Error("QtTest::skip")
+ }
+
+ function expectFail(msg) {
+ expectingFail = true
+ expectFailMsg = msg
+ }
+
+ function run() {
+ var prefix;
+ if (name)
+ prefix = name + "::"
+ var success = true
+ numPassed = 0
+ numFailed = 0
+ numSkipped = 0
+ for (var prop in testCase) {
+ if (prop.indexOf("test_") != 0)
+ continue
+ currentTestCase = prefix + prop + "()"
+ expectingFail = false
+ try {
+ testCase[prop]()
+ ++numPassed
+ print("PASS : " + currentTestCase)
+ } catch (e) {
+ if (e.message == "QtTest::fail") {
+ ++numFailed
+ success = false
+ } else if (e.message == "QtTest::skip") {
+ ++numSkipped
+ } else if (e.message == "QtTest::expect_fail") {
+ ++numFailed
+ }
+ }
+ }
+ currentTestCase = ""
+ return success;
+ }
+}