more qt testing work
This commit is contained in:
parent
370eb182d8
commit
4fb82c2e7c
@ -4,7 +4,11 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
guard 'shell' do
|
guard 'shell' do
|
||||||
watch(%r{ext/jasmine-webkit-specrunner/.*\.(cpp|h)}) { compile }
|
watch(%r{ext/jasmine-webkit-specrunner/.*\.(cpp|h|pro|pri)}) { |m|
|
||||||
|
if !m[0]['moc_']
|
||||||
|
compile
|
||||||
|
end
|
||||||
|
}
|
||||||
end
|
end
|
||||||
# A sample Guardfile
|
# A sample Guardfile
|
||||||
# More info at https://github.com/guard/guard#readme
|
# More info at https://github.com/guard/guard#readme
|
||||||
@ -22,7 +26,7 @@ guard 'jasmine-headless-webkit', :all_on_start => false do
|
|||||||
end
|
end
|
||||||
|
|
||||||
def compile
|
def compile
|
||||||
system %{cd ext/jasmine-webkit-specrunner && ruby extconf.rb}
|
system %{cd ext/jasmine-webkit-specrunner && ruby test.rb && ruby extconf.rb}
|
||||||
end
|
end
|
||||||
|
|
||||||
compile
|
compile
|
||||||
|
39
ext/jasmine-webkit-specrunner/ConsoleOutput.cpp
Normal file
39
ext/jasmine-webkit-specrunner/ConsoleOutput.cpp
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#include "ConsoleOutput.h"
|
||||||
|
|
||||||
|
namespace HeadlessSpecRunner {
|
||||||
|
ConsoleOutput::ConsoleOutput() : QObject(),
|
||||||
|
showColors(false) {
|
||||||
|
outputIO = &std::cout;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConsoleOutput::passed(const QString &specDetail) {
|
||||||
|
green();
|
||||||
|
*outputIO << '.';
|
||||||
|
clear();
|
||||||
|
fflush(stdout);
|
||||||
|
|
||||||
|
successes.push(specDetail);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConsoleOutput::failed(const QString &specDetail)
|
||||||
|
{
|
||||||
|
red();
|
||||||
|
*outputIO << 'F';
|
||||||
|
clear();
|
||||||
|
fflush(stdout);
|
||||||
|
|
||||||
|
failures.push(specDetail);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConsoleOutput::green() {
|
||||||
|
if (showColors) std::cout << "\033[0;32m";
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConsoleOutput::clear() {
|
||||||
|
if (showColors) std::cout << "\033[m";
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConsoleOutput::red() {
|
||||||
|
if (showColors) std::cout << "\033[0;31m";
|
||||||
|
}
|
||||||
|
}
|
26
ext/jasmine-webkit-specrunner/ConsoleOutput.h
Normal file
26
ext/jasmine-webkit-specrunner/ConsoleOutput.h
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#ifndef JHW_CONSOLE_OUTPUT
|
||||||
|
#define JHW_CONSOLE_OUTPUT
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <iostream>
|
||||||
|
#include <QStack>
|
||||||
|
|
||||||
|
namespace HeadlessSpecRunner {
|
||||||
|
class ConsoleOutput : public QObject {
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
ConsoleOutput();
|
||||||
|
void passed(const QString &specDetail);
|
||||||
|
void failed(const QString &specDetail);
|
||||||
|
std::ostream *outputIO;
|
||||||
|
QStack<QString> successes;
|
||||||
|
QStack<QString> failures;
|
||||||
|
private:
|
||||||
|
bool showColors;
|
||||||
|
void green();
|
||||||
|
void clear();
|
||||||
|
void red();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
36
ext/jasmine-webkit-specrunner/ConsoleOutput_test.cpp
Normal file
36
ext/jasmine-webkit-specrunner/ConsoleOutput_test.cpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#include <QtTest/QtTest>
|
||||||
|
|
||||||
|
#include "ConsoleOutput.h"
|
||||||
|
#include "ConsoleOutput_test.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
namespace HeadlessSpecRunner {
|
||||||
|
ConsoleOutputTest::ConsoleOutputTest() : QObject() {
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConsoleOutputTest::testPassed() {
|
||||||
|
stringstream buffer;
|
||||||
|
HeadlessSpecRunner::ConsoleOutput output;
|
||||||
|
|
||||||
|
output.outputIO = &buffer;
|
||||||
|
output.passed("test");
|
||||||
|
QVERIFY(buffer.str() == ".");
|
||||||
|
QVERIFY(output.successes.size() == 1);
|
||||||
|
QVERIFY(output.failures.size() == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConsoleOutputTest::testFailed() {
|
||||||
|
stringstream buffer;
|
||||||
|
HeadlessSpecRunner::ConsoleOutput output;
|
||||||
|
|
||||||
|
output.outputIO = &buffer;
|
||||||
|
output.failed("test");
|
||||||
|
QVERIFY(buffer.str() == "F");
|
||||||
|
QVERIFY(output.successes.size() == 0);
|
||||||
|
QVERIFY(output.failures.size() == 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QTEST_MAIN(HeadlessSpecRunner::ConsoleOutputTest);
|
||||||
|
|
25
ext/jasmine-webkit-specrunner/ConsoleOutput_test.h
Normal file
25
ext/jasmine-webkit-specrunner/ConsoleOutput_test.h
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#ifndef JHW_TEST_PAGE
|
||||||
|
#define JHW_TEST_PAGE
|
||||||
|
|
||||||
|
#include <QtTest/QtTest>
|
||||||
|
#include <iostream>
|
||||||
|
#include <sstream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include "ConsoleOutput.h"
|
||||||
|
|
||||||
|
namespace HeadlessSpecRunner {
|
||||||
|
class ConsoleOutputTest : public QObject {
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
ConsoleOutputTest();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void testPassed();
|
||||||
|
void testFailed();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
7
ext/jasmine-webkit-specrunner/ConsoleOutput_test.pro
Normal file
7
ext/jasmine-webkit-specrunner/ConsoleOutput_test.pro
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
include(common.pri)
|
||||||
|
include(test.pri)
|
||||||
|
|
||||||
|
SOURCES += ConsoleOutput_test.cpp
|
||||||
|
HEADERS += ConsoleOutput_test.h
|
||||||
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
|||||||
#ifndef JHW_CONSOLE_REPORTER
|
|
||||||
#define JHW_CONSOLE_REPORTER
|
|
||||||
|
|
||||||
namespace HeadlessSpecRunner {
|
|
||||||
class ConsoleReporter : public QObject {
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
ConsoleReporter();
|
|
||||||
void passed(const QString &specDetail);
|
|
||||||
void failed(const QString &specDetail);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,7 +1,7 @@
|
|||||||
#include <QtTest/QtTest>
|
#include <QtTest/QtTest>
|
||||||
|
|
||||||
#include "HeadlessSpecRunner/Page.h"
|
#include "Page.h"
|
||||||
#include "Test/Page_test.h"
|
#include "Page_test.h"
|
||||||
|
|
||||||
namespace HeadlessSpecRunner {
|
namespace HeadlessSpecRunner {
|
||||||
PageTest::PageTest() : QObject(), internalLogCalled(false) {
|
PageTest::PageTest() : QObject(), internalLogCalled(false) {
|
||||||
@ -41,3 +41,5 @@ namespace HeadlessSpecRunner {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QTEST_MAIN(HeadlessSpecRunner::PageTest);
|
||||||
|
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include <QtTest/QtTest>
|
#include <QtTest/QtTest>
|
||||||
|
|
||||||
#include "HeadlessSpecRunner/Page.h"
|
#include "Page.h"
|
||||||
|
|
||||||
namespace HeadlessSpecRunner {
|
namespace HeadlessSpecRunner {
|
||||||
class PageTest : public QObject {
|
class PageTest : public QObject {
|
@ -1,79 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
** Meta object code from reading C++ file 'Page_test.cpp'
|
|
||||||
**
|
|
||||||
** Created: Tue Aug 2 10:10:26 2011
|
|
||||||
** by: The Qt Meta Object Compiler version 62 (Qt 4.7.3)
|
|
||||||
**
|
|
||||||
** WARNING! All changes made in this file will be lost!
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(Q_MOC_OUTPUT_REVISION)
|
|
||||||
#error "The header file 'Page_test.cpp' doesn't include <QObject>."
|
|
||||||
#elif Q_MOC_OUTPUT_REVISION != 62
|
|
||||||
#error "This file was generated using the moc from 4.7.3. It"
|
|
||||||
#error "cannot be used with the include files from this version of Qt."
|
|
||||||
#error "(The moc has changed too much.)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
QT_BEGIN_MOC_NAMESPACE
|
|
||||||
static const uint qt_meta_data_HeadlessSpecRunner__PageTestHelper[] = {
|
|
||||||
|
|
||||||
// content:
|
|
||||||
5, // revision
|
|
||||||
0, // classname
|
|
||||||
0, 0, // classinfo
|
|
||||||
1, 14, // methods
|
|
||||||
0, 0, // properties
|
|
||||||
0, 0, // enums/sets
|
|
||||||
0, 0, // constructors
|
|
||||||
0, // flags
|
|
||||||
0, // signalCount
|
|
||||||
|
|
||||||
// slots: signature, parameters, type, tag, flags
|
|
||||||
45, 36, 35, 35, 0x0a,
|
|
||||||
|
|
||||||
0 // eod
|
|
||||||
};
|
|
||||||
|
|
||||||
static const char qt_meta_stringdata_HeadlessSpecRunner__PageTestHelper[] = {
|
|
||||||
"HeadlessSpecRunner::PageTestHelper\0\0"
|
|
||||||
"note,msg\0internalLog(QString,QString)\0"
|
|
||||||
};
|
|
||||||
|
|
||||||
const QMetaObject HeadlessSpecRunner::PageTestHelper::staticMetaObject = {
|
|
||||||
{ &QObject::staticMetaObject, qt_meta_stringdata_HeadlessSpecRunner__PageTestHelper,
|
|
||||||
qt_meta_data_HeadlessSpecRunner__PageTestHelper, 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef Q_NO_DATA_RELOCATION
|
|
||||||
const QMetaObject &HeadlessSpecRunner::PageTestHelper::getStaticMetaObject() { return staticMetaObject; }
|
|
||||||
#endif //Q_NO_DATA_RELOCATION
|
|
||||||
|
|
||||||
const QMetaObject *HeadlessSpecRunner::PageTestHelper::metaObject() const
|
|
||||||
{
|
|
||||||
return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
|
|
||||||
}
|
|
||||||
|
|
||||||
void *HeadlessSpecRunner::PageTestHelper::qt_metacast(const char *_clname)
|
|
||||||
{
|
|
||||||
if (!_clname) return 0;
|
|
||||||
if (!strcmp(_clname, qt_meta_stringdata_HeadlessSpecRunner__PageTestHelper))
|
|
||||||
return static_cast<void*>(const_cast< PageTestHelper*>(this));
|
|
||||||
return QObject::qt_metacast(_clname);
|
|
||||||
}
|
|
||||||
|
|
||||||
int HeadlessSpecRunner::PageTestHelper::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
|
||||||
{
|
|
||||||
_id = QObject::qt_metacall(_c, _id, _a);
|
|
||||||
if (_id < 0)
|
|
||||||
return _id;
|
|
||||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
|
||||||
switch (_id) {
|
|
||||||
case 0: internalLog((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
|
|
||||||
default: ;
|
|
||||||
}
|
|
||||||
_id -= 1;
|
|
||||||
}
|
|
||||||
return _id;
|
|
||||||
}
|
|
||||||
QT_END_MOC_NAMESPACE
|
|
6
ext/jasmine-webkit-specrunner/Page_test.pro
Normal file
6
ext/jasmine-webkit-specrunner/Page_test.pro
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
include(common.pri)
|
||||||
|
include(test.pri)
|
||||||
|
|
||||||
|
SOURCES += Page_test.cpp
|
||||||
|
HEADERS += Page_test.h
|
||||||
|
|
@ -96,21 +96,15 @@ namespace HeadlessSpecRunner {
|
|||||||
void Runner::specPassed()
|
void Runner::specPassed()
|
||||||
{
|
{
|
||||||
consoleNotUsedThisRun = true;
|
consoleNotUsedThisRun = true;
|
||||||
green();
|
consoleOutput.passed("");
|
||||||
std::cout << '.';
|
|
||||||
clear();
|
|
||||||
fflush(stdout);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Runner::specFailed(const QString &specDetail)
|
void Runner::specFailed(const QString &specDetail)
|
||||||
{
|
{
|
||||||
consoleNotUsedThisRun = true;
|
consoleNotUsedThisRun = true;
|
||||||
|
consoleOutput.failed("");
|
||||||
didFail = true;
|
didFail = true;
|
||||||
red();
|
|
||||||
std::cout << 'F';
|
|
||||||
failedSpecs.push(specDetail);
|
failedSpecs.push(specDetail);
|
||||||
clear();
|
|
||||||
fflush(stdout);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Runner::errorLog(const QString &msg, int lineNumber, const QString &sourceID)
|
void Runner::errorLog(const QString &msg, int lineNumber, const QString &sourceID)
|
@ -9,6 +9,7 @@
|
|||||||
#include <QQueue>
|
#include <QQueue>
|
||||||
|
|
||||||
#include "Page.h"
|
#include "Page.h"
|
||||||
|
#include "ConsoleOutput.h"
|
||||||
|
|
||||||
namespace HeadlessSpecRunner {
|
namespace HeadlessSpecRunner {
|
||||||
class Runner: public QObject {
|
class Runner: public QObject {
|
||||||
@ -49,6 +50,8 @@ namespace HeadlessSpecRunner {
|
|||||||
QString reportFilename;
|
QString reportFilename;
|
||||||
QStack<QString> failedSpecs;
|
QStack<QString> failedSpecs;
|
||||||
|
|
||||||
|
HeadlessSpecRunner::ConsoleOutput consoleOutput;
|
||||||
|
|
||||||
void red();
|
void red();
|
||||||
void green();
|
void green();
|
||||||
void yellow();
|
void yellow();
|
9
ext/jasmine-webkit-specrunner/common.pri
Normal file
9
ext/jasmine-webkit-specrunner/common.pri
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
TEMPLATE = app
|
||||||
|
CONFIG -= app_bundle
|
||||||
|
QMAKE_INFO_PLIST = Info.plist
|
||||||
|
QMAKESPEC = macx-g++
|
||||||
|
QT += network webkit
|
||||||
|
|
||||||
|
SOURCES = Page.cpp Runner.cpp ConsoleOutput.cpp
|
||||||
|
HEADERS = Page.h Runner.h ConsoleOutput.h
|
||||||
|
|
@ -4,7 +4,6 @@ $: << File.expand_path("../../../lib", __FILE__)
|
|||||||
|
|
||||||
require 'qt/qmake'
|
require 'qt/qmake'
|
||||||
|
|
||||||
Qt::Qmake.make!('jasmine-headless-webkit tests', 'specrunner_test.pro')
|
system %{make clean}
|
||||||
system %{jasmine-webkit-specrunner-test}
|
|
||||||
Qt::Qmake.make!('jasmine-headless-webkit', 'specrunner.pro')
|
Qt::Qmake.make!('jasmine-headless-webkit', 'specrunner.pro')
|
||||||
|
|
||||||
|
Binary file not shown.
BIN
ext/jasmine-webkit-specrunner/jhw-test
Executable file
BIN
ext/jasmine-webkit-specrunner/jhw-test
Executable file
Binary file not shown.
@ -21,8 +21,8 @@
|
|||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "HeadlessSpecRunner/Page.h"
|
#include "Page.h"
|
||||||
#include "HeadlessSpecRunner/Runner.h"
|
#include "Runner.h"
|
||||||
|
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(4, 7, 0)
|
#if QT_VERSION < QT_VERSION_CHECK(4, 7, 0)
|
||||||
#error Use Qt 4.7 or later version
|
#error Use Qt 4.7 or later version
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
TEMPLATE = app
|
include(common.pri)
|
||||||
CONFIG -= app_bundle
|
|
||||||
|
SOURCES += specrunner.cpp
|
||||||
TARGET = jasmine-webkit-specrunner
|
TARGET = jasmine-webkit-specrunner
|
||||||
SOURCES = HeadlessSpecRunner/Page.cpp HeadlessSpecRunner/Runner.cpp specrunner.cpp
|
|
||||||
HEADERS = HeadlessSpecRunner/Page.h HeadlessSpecRunner/Runner.h
|
|
||||||
QT += network webkit
|
|
||||||
QMAKE_INFO_PLIST = Info.plist
|
|
||||||
QMAKESPEC = macx-gcc
|
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
#include "Test/Page_test.h"
|
|
||||||
#include <QTest>
|
|
||||||
|
|
||||||
QTEST_MAIN
|
|
||||||
int main(int argc, char *argv[]) {
|
|
||||||
QCoreApplication app(argc, argv);
|
|
||||||
HeadlessSpecRunner::PageTest pageTest;
|
|
||||||
QTest::qExec(&pageTest);
|
|
||||||
}
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
|||||||
TEMPLATE = app
|
|
||||||
CONFIG -= app_bundle
|
|
||||||
TARGET = jasmine-webkit-specrunner-test
|
|
||||||
SOURCES = HeadlessSpecRunner/Page.cpp \
|
|
||||||
HeadlessSpecRunner/Runner.cpp \
|
|
||||||
Test/Page_test.cpp \
|
|
||||||
specrunner_test.cpp
|
|
||||||
|
|
||||||
HEADERS = HeadlessSpecRunner/Page.h \
|
|
||||||
HeadlessSpecRunner/Runner.h \
|
|
||||||
Test/Page_test.h
|
|
||||||
|
|
||||||
QT += network webkit testlib
|
|
||||||
QMAKE_INFO_PLIST = Info.plist
|
|
||||||
QMAKESPEC = macx-gcc
|
|
||||||
|
|
3
ext/jasmine-webkit-specrunner/test.pri
Normal file
3
ext/jasmine-webkit-specrunner/test.pri
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
TARGET = jhw-test
|
||||||
|
QT += testlib
|
||||||
|
|
9
ext/jasmine-webkit-specrunner/test.rb
Normal file
9
ext/jasmine-webkit-specrunner/test.rb
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
Dir['*_test.pro'].each do |test|
|
||||||
|
system %{make clean && qmake #{test} && make && ./jhw-test}
|
||||||
|
if $?.exitstatus != 0
|
||||||
|
exit 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user