diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-01-12 12:42:50 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-01-12 12:42:50 (GMT) |
commit | aed2adc93b6d35f419d5b3ea061193b5bf60cadc (patch) | |
tree | aef07a66044b845c484e6f0e5979553d0e2a6c85 /tests/auto/linguist | |
parent | bf71ab63e805e49e59fbe25265104a414ab7d039 (diff) | |
parent | 2b50979c0a957ed1712a3becdd394f83e9b7f153 (diff) | |
download | Qt-aed2adc93b6d35f419d5b3ea061193b5bf60cadc.zip Qt-aed2adc93b6d35f419d5b3ea061193b5bf60cadc.tar.gz Qt-aed2adc93b6d35f419d5b3ea061193b5bf60cadc.tar.bz2 |
Merge branch '4.6' of scm.dev.nokia.troll.no:qt/berlin-staging-1 into 4.6-integration
* '4.6' of scm.dev.nokia.troll.no:qt/berlin-staging-1: (21 commits)
QFile cannot deal with crlf-translated stdio, so use binary mode
remove trimming of (expected) output
really fix the autotest
support regexp-like quantifiers of expected output lines
remove superfluous \r filtering
print actual rather than expected output for matching text
Do not set the font size unnecessarily in the simulated s60 style.
Doc typos fixed
Translations: Update German for 4.6.1
fix test under windows
don't complain about unresolved base when the reference is absolute
make the lupdate tests more verbose in case of failure
don't use qmake for test setup
move equivalent of output_ts test to good/
look for the .result file in the dir where the output is expected to go
fix sametext and number heuristics
fix number heuristics, part 1
no point in specifying -ts when a .pro file is specified
clean up the lupdatecmd files
tidy up the test .pro files
...
Diffstat (limited to 'tests/auto/linguist')
59 files changed, 278 insertions, 687 deletions
diff --git a/tests/auto/linguist/lupdate/.gitignore b/tests/auto/linguist/lupdate/.gitignore index 4ba5b79..389f2dc 100644 --- a/tests/auto/linguist/lupdate/.gitignore +++ b/tests/auto/linguist/lupdate/.gitignore @@ -1,4 +1,4 @@ tst_lupdate testdata/good/*/project.ts -testdata/output_ts/toplevel/library/tools/translations/project.ts +testdata/good/*/*/project.ts testdata/recursivescan/*.ts diff --git a/tests/auto/linguist/lupdate/lupdate.pro b/tests/auto/linguist/lupdate/lupdate.pro index 19259dc..bcaaf66 100644 --- a/tests/auto/linguist/lupdate/lupdate.pro +++ b/tests/auto/linguist/lupdate/lupdate.pro @@ -2,6 +2,5 @@ CONFIG += qttest_p4 TARGET = tst_lupdate -HEADERS += testlupdate.h -SOURCES += tst_lupdate.cpp testlupdate.cpp +SOURCES += tst_lupdate.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/backslashes/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/backslashes/lupdatecmd index 9b83a04..f0e1ab2 100644 --- a/tests/auto/linguist/lupdate/testdata/good/backslashes/lupdatecmd +++ b/tests/auto/linguist/lupdate/testdata/good/backslashes/lupdatecmd @@ -1,3 +1 @@ -# Add the command that lupdate should run here. If it can't find anything it will default to TRANSLATION: ts\project.ts -lupdate -silent project.pro diff --git a/tests/auto/linguist/lupdate/testdata/good/backslashes/project.pro b/tests/auto/linguist/lupdate/testdata/good/backslashes/project.pro index 3584c89..4698b2b 100644 --- a/tests/auto/linguist/lupdate/testdata/good/backslashes/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/backslashes/project.pro @@ -1,19 +1,3 @@ -###################################################################### -# Automatically generated by qmake (2.01a) ma 22. jan 10:10:16 2007 -###################################################################### - -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -# Input SOURCES += src\main.cpp TRANSLATIONS = ts\project.ts - - -!exists(ts) { - win32: system(md ts) - else: system(mkdir ts) -} diff --git a/tests/auto/linguist/lupdate/testdata/good/backslashes/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/backslashes/ts/project.ts.result index d3a5fdf..d3a5fdf 100644 --- a/tests/auto/linguist/lupdate/testdata/good/backslashes/project.ts.result +++ b/tests/auto/linguist/lupdate/testdata/good/backslashes/ts/project.ts.result diff --git a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro index 848ebda..7225608 100644 --- a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro @@ -1,20 +1,7 @@ -TEMPLATE = app -TARGET += -DEPENDPATH += . -INCLUDEPATH += . - -# Input SOURCES += main.cpp +CONFIG+= console TRANSLATIONS = project.ts -CONFIG+= console CODECFORTR = utf-8 CODECFORSRC = utf-8 - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - - diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.pro index 81273ee..64f3c85 100644 --- a/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.pro @@ -1,19 +1,6 @@ -TEMPLATE = app -TARGET += -DEPENDPATH += . -INCLUDEPATH += . - -# Input SOURCES += main.cpp +CONFIG+= console TRANSLATIONS = project.ts -CONFIG+= console CODECFORTR = CP1251 - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - - diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.pro index 1d5b071..d5697eb 100644 --- a/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.pro @@ -1,15 +1,6 @@ -TEMPLATE = app - SOURCES += main.cpp +CONFIG += console TRANSLATIONS = project.ts -CONFIG += console CODECFORTR = CP1252 - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - - diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.pro index f4975f2..c95939c 100644 --- a/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.pro @@ -1,16 +1,7 @@ -TEMPLATE = app - SOURCES += main.cpp +CONFIG += console TRANSLATIONS = project.ts -CONFIG += console CODECFORSRC = CP1252 CODECFORTR = UTF-8 - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - - diff --git a/tests/auto/linguist/lupdate/testdata/good/heuristics/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/heuristics/expectedoutput.txt new file mode 100644 index 0000000..d5112cc --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/heuristics/expectedoutput.txt @@ -0,0 +1,6 @@ +*.*Function _eval_ is not implemented +Updating 'project\.ts'\.\.\. + Found 3 source text\(s\) \(3 new and 0 already existing\) + Removed 5 obsolete entries + Number heuristic provided 1 translation\(s\) + Same-text heuristic provided 1 translation\(s\) diff --git a/tests/auto/linguist/lupdate/testdata/good/heuristics/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/heuristics/lupdatecmd new file mode 100644 index 0000000..6bda261 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/heuristics/lupdatecmd @@ -0,0 +1,2 @@ +TRANSLATION: project.ts +lupdate -verbose -disable-heuristic similartext -no-obsolete project.pro diff --git a/tests/auto/linguist/lupdate/testlupdate.h b/tests/auto/linguist/lupdate/testdata/good/heuristics/main.cpp index 581e5e9..9f36b33 100644 --- a/tests/auto/linguist/lupdate/testlupdate.h +++ b/tests/auto/linguist/lupdate/testdata/good/heuristics/main.cpp @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the Qt Linguist of the Qt Toolkit. +** This file is part of the test suite of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage @@ -39,49 +39,24 @@ ** ****************************************************************************/ -#ifndef TESTLUPDATE_H -#define TESTLUPDATE_H +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! -#include <QObject> -#include <QProcess> -#include <QStringList> +#define QTCORE <QtCore> +#include QTCORE // Hidden from lupdate, but compiles -class TestLUpdate : public QObject -{ +class A: public QObject { Q_OBJECT + void foo() + { + // number Heuristics + tr("version 2.0 now"); -public: - TestLUpdate(); - virtual ~TestLUpdate(); + // same text match + tr("this is the matched same text"); - void setWorkingDirectory( const QString &workDir); - bool run( const QString &commandline); - bool updateProFile( const QString &arguments); - bool qmake(); - QStringList getErrorMessages() { - return make_result; + // failed same text + tr("this is the non-matched same text"); } - void clearResult() { - make_result.clear(); - } -private: - QString m_cmdLupdate; - QString m_cmdQMake; - QString m_workDir; - QProcess *childProc; - QStringList env_list; - QStringList make_result; - - bool child_show; - bool qws_mode; - bool exit_ok; - - bool runChild( bool showOutput, const QString &program, const QStringList &argList = QStringList()); - void addMakeResult( const QString &result ); - void childHasData(); - -private slots: - void childReady(int exitCode); }; -#endif // TESTLUPDATE_H diff --git a/tests/auto/linguist/lupdate/testdata/good/heuristics/project.pro b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.pro new file mode 100644 index 0000000..759bea0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.pro @@ -0,0 +1,3 @@ +SOURCES = main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.before new file mode 100644 index 0000000..ce82810 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.before @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>A</name> + <message> + <location filename="main.cpp" line="53"/> + <source>version 1.0 now</source> + <translation>teraz wersja 1.0</translation> + </message> +</context> +<context> + <name>B</name> + <message> + <location filename="main.cpp" line="56"/> + <source>this is the matched same text</source> + <translation>der same-text-treffer</translation> + </message> + <message> + <location filename="main.cpp" line="59"/> + <source>this is the non-matched same text</source> + <translation>same-text-reinfall variante eins</translation> + </message> +</context> +<context> + <name>C</name> + <message> + <location filename="main.cpp" line="56"/> + <source>this is the matched same text</source> + <translation>der same-text-treffer</translation> + </message> + <message> + <location filename="main.cpp" line="59"/> + <source>this is the non-matched same text</source> + <translation>völlig andere variante des reinfalls mit same-text</translation> + </message> +</context> +</TS> diff --git a/tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.result new file mode 100644 index 0000000..402ad9a --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.result @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>A</name> + <message> + <location filename="main.cpp" line="53"/> + <source>version 2.0 now</source> + <translation type="unfinished">teraz wersja 1.0 {2.0 ?}</translation> + </message> + <message> + <location filename="main.cpp" line="56"/> + <source>this is the matched same text</source> + <translation type="unfinished">der same-text-treffer</translation> + </message> + <message> + <location filename="main.cpp" line="59"/> + <source>this is the non-matched same text</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.pro b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.pro index 7547a8d..759bea0 100644 --- a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.pro @@ -1,12 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES = main.cpp -TRANSLATIONS += project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_ordering/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/lupdatecmd index 91a4800..82b4b0d 100644 --- a/tests/auto/linguist/lupdate/testdata/good/merge_ordering/lupdatecmd +++ b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/lupdatecmd @@ -1,5 +1 @@ -# Add the command that lupdate should run here. If it can't find anything it will default to -# 'lupdate project.pro -ts project.ts' - -# lupdate project.pro -lupdate -silent -locations relative project.pro +lupdate -locations relative project.pro diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.pro b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.pro index e79456f..6149858 100644 --- a/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.pro @@ -1,14 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES += foo.cpp -TRANSLATIONS = project.ts - -# Copy the ts to a temp file because: -# 1. The depot file is usually read-only -# 2. We don't want to modify the original file, since then it won't be possible to run the test twice -# without reverting the original file again. - -win32: system(copy /Y project.ts.before $$TRANSLATIONS) -unix: system(cp -f project.ts.before $$TRANSLATIONS && chmod a+w $$TRANSLATIONS) +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.pro b/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.pro index 6c704c2..fa56972 100644 --- a/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.pro @@ -1,14 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - FORMS += project.ui -TRANSLATIONS = project.ts - -# Copy the ts to a temp file because: -# 1. The depot file is usually read-only -# 2. We don't want to modify the original file, since then it won't be possible to run the test twice -# without reverting the original file again. - -win32: system(copy /Y project.ts.before $$TRANSLATIONS) -unix: system(cp -f project.ts.before $$TRANSLATIONS && chmod a+w $$TRANSLATIONS) +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.pro b/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.pro index f4faf2f..759bea0 100644 --- a/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.pro @@ -1,14 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES = main.cpp -TRANSLATIONS = project.ts - -# Copy the ts to a temp file because: -# 1. The depot file is usually read-only -# 2. We don't want to modify the original file, since then it won't be possible to run the test twice -# without reverting the original file again. - -win32: system(copy /Y project.ts.before $$TRANSLATIONS) -unix: system(cp -f project.ts.before $$TRANSLATIONS && chmod a+w $$TRANSLATIONS) +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.pro index e988c0a..63f5d66 100644 --- a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.pro @@ -1,14 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES += finddialog.cpp -TRANSLATIONS = project.ts - -# Copy the ts to a temp file because: -# 1. The depot file is usually read-only -# 2. We don't want to modify the original file, since then it won't be possible to run the test twice -# without reverting the original file again. - -win32: system(copy /Y project.ts.before $$TRANSLATIONS) -unix: system(cp -f project.ts.before $$TRANSLATIONS && chmod a+w $$TRANSLATIONS) +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/lupdatecmd index d200143..500a822 100644 --- a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/lupdatecmd +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/lupdatecmd @@ -1,5 +1 @@ -# Add the command that lupdate should run here. If it can't find anything it will default to -# 'lupdate project.pro -ts project.ts' - -# lupdate project.pro -lupdate -silent -noobsolete project.pro +lupdate -noobsolete project.pro diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.pro index e988c0a..63f5d66 100644 --- a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.pro @@ -1,14 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES += finddialog.cpp -TRANSLATIONS = project.ts - -# Copy the ts to a temp file because: -# 1. The depot file is usually read-only -# 2. We don't want to modify the original file, since then it won't be possible to run the test twice -# without reverting the original file again. - -win32: system(copy /Y project.ts.before $$TRANSLATIONS) -unix: system(cp -f project.ts.before $$TRANSLATIONS && chmod a+w $$TRANSLATIONS) +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.pro index e988c0a..63f5d66 100644 --- a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.pro @@ -1,14 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES += finddialog.cpp -TRANSLATIONS = project.ts - -# Copy the ts to a temp file because: -# 1. The depot file is usually read-only -# 2. We don't want to modify the original file, since then it won't be possible to run the test twice -# without reverting the original file again. - -win32: system(copy /Y project.ts.before $$TRANSLATIONS) -unix: system(cp -f project.ts.before $$TRANSLATIONS && chmod a+w $$TRANSLATIONS) +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.pro index 28ba291..fa56972 100644 --- a/tests/auto/linguist/lupdate/testdata/good/mergeui/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.pro @@ -1,14 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - FORMS += project.ui -TRANSLATIONS = project.ts - -# Copy the ts to a temp file because: -# 1. The depot file is usually read-only -# 2. We don't want to modify the original file, since then it won't be possible to run the test twice -# without reverting the original file again. - -win32: system(copy /Y project.ts.before $$TRANSLATIONS) -unix: system(cp -f project.ts.before $$TRANSLATIONS && chmod a+w $$TRANSLATIONS) +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.pro index 28ba291..fa56972 100644 --- a/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.pro @@ -1,14 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - FORMS += project.ui -TRANSLATIONS = project.ts - -# Copy the ts to a temp file because: -# 1. The depot file is usually read-only -# 2. We don't want to modify the original file, since then it won't be possible to run the test twice -# without reverting the original file again. - -win32: system(copy /Y project.ts.before $$TRANSLATIONS) -unix: system(cp -f project.ts.before $$TRANSLATIONS && chmod a+w $$TRANSLATIONS) +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.pro b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.pro index 4582705..bbabdfb 100644 --- a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.pro @@ -1,13 +1,4 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES += main.cpp SOURCES += finddialog.cpp -TRANSLATIONS += project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/namespaces/project.pro b/tests/auto/linguist/lupdate/testdata/good/namespaces/project.pro index 56d472c..c96859b 100644 --- a/tests/auto/linguist/lupdate/testdata/good/namespaces/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/namespaces/project.pro @@ -1,12 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES += main.cpp -TRANSLATIONS += project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.pro b/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.pro index cb18ea4..c96859b 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.pro @@ -1,12 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES += main.cpp -TRANSLATIONS += project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.pro index 7547a8d..759bea0 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.pro @@ -1,12 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES = main.cpp -TRANSLATIONS += project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.pro index 4582705..bbabdfb 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.pro @@ -1,13 +1,4 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES += main.cpp SOURCES += finddialog.cpp -TRANSLATIONS += project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt index 8d057d8..e3543c9 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt @@ -5,3 +5,4 @@ .*/lupdate/testdata/good/parsecpp2/main.cpp:61: Excess closing brace .* .*/lupdate/testdata/good/parsecpp2/main.cpp:65: Excess closing brace .* + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro index 7547a8d..759bea0 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro @@ -1,12 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES = main.cpp -TRANSLATIONS += project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejava/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejava/project.pro index 7e64c80..657b535 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parsejava/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/parsejava/project.pro @@ -1,12 +1,3 @@ -TEMPLATE = app -LANGUAGE = Java - SOURCES += main.java -TRANSLATIONS += project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parseui/project.pro b/tests/auto/linguist/lupdate/testdata/good/parseui/project.pro index bdc06e7..fa56972 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parseui/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/parseui/project.pro @@ -1,13 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - FORMS += project.ui -TRANSLATIONS = project.ts - -exists( $$TRANSLATIONS ) { - win32 : system(del $$TRANSLATIONS) - unix : system(rm $$TRANSLATIONS) -} - - +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/prefix/project.pro b/tests/auto/linguist/lupdate/testdata/good/prefix/project.pro index 7547a8d..759bea0 100644 --- a/tests/auto/linguist/lupdate/testdata/good/prefix/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/prefix/project.pro @@ -1,12 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES = main.cpp -TRANSLATIONS += project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/preprocess/project.pro b/tests/auto/linguist/lupdate/testdata/good/preprocess/project.pro index 012c7e0..c96859b 100644 --- a/tests/auto/linguist/lupdate/testdata/good/preprocess/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/preprocess/project.pro @@ -1,12 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES += main.cpp -TRANSLATIONS += project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm -f $$TRANSLATIONS) -} - +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsing/project.pro index 3078817..0e920f9 100644 --- a/tests/auto/linguist/lupdate/testdata/good/proparsing/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/project.pro @@ -1,6 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - # Try to reference a variable that does not exist: MYVAR=$$THIS_VARIABLE_IS_NOT_DEFINED @@ -31,10 +28,4 @@ if (exists($$member($$(PATH), 0))) { SOURCES += main_dependpath.cpp } -TRANSLATIONS += project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm -f $$TRANSLATIONS) -} - +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.pro index 1d6895a..3dc4208 100644 --- a/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.pro @@ -3,9 +3,6 @@ # It also tries to verify the behaviour of combining quoted and non-quoted elements with literals. # -TEMPLATE = app -LANGUAGE = C++ - QUOTED = $$quote(variable with spaces) VERSIONAB = "a.b" VAB = $$split(VERSIONAB, ".") @@ -33,10 +30,4 @@ SOURCES += $$Q3 win32: SOURCES += $$system(type files-cc.txt) unix: SOURCES += $$system(cat files-cc.txt) -TRANSLATIONS += project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} - +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.pro index 820b4fa..6bfe751 100644 --- a/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.pro @@ -3,8 +3,3 @@ SOURCES += file*.cpp filter.cpp non-existing.cpp include(sub/sub.pri) TRANSLATIONS = project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm -f $$TRANSLATIONS) -} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.pro index 3810a02..5e23538 100644 --- a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.pro @@ -1,6 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - include(win/win.pri) include(mac/mac.pri) include(unix/unix.pri) @@ -8,9 +5,5 @@ include (common/common.pri) # Important: keep the space before the ' include(relativity/relativity.pri) message($$SOURCES) -TRANSLATIONS = project.ts -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm $$TRANSLATIONS) -} +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/project.pro index 4de6622..88f2435 100644 --- a/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/project.pro @@ -1,3 +1,2 @@ -TEMPLATE =subdirs - -SUBDIRS = sub1 +TEMPLATE = subdirs +SUBDIRS = sub1 diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/sub1.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/sub1.pro index 1d50c2b..df18c5a 100644 --- a/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/sub1.pro +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/sub1.pro @@ -1,12 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - SOURCES += main.cpp -TRANSLATIONS += ../project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm -f $$TRANSLATIONS) -} - +TRANSLATIONS = ../project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/common.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/common.pro index a8b3106..3f6c643 100644 --- a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/common.pro +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/common.pro @@ -1,5 +1,2 @@ -TEMPLATE = app -LANGUAGE = C++ - -SOURCES += main.cpp +SOURCES += main.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/lupdatecmd new file mode 100644 index 0000000..b7e12cc --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/lupdatecmd @@ -0,0 +1 @@ +lupdate project.pro -ts project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/mac.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/mac.pro index 87478bf..a1863b6 100644 --- a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/mac.pro +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/mac.pro @@ -1,5 +1 @@ -TEMPLATE = app -LANGUAGE = C++ - -SOURCES += main_mac.cpp - +SOURCES += main_mac.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.pro index 668ecf4..f75a462 100644 --- a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.pro @@ -1,7 +1,2 @@ TEMPLATE = subdirs SUBDIRS = win mac unix common - -exists( project.ts ) { - win32: system(del project.ts) - unix: system(rm project.ts) -} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/unix.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/unix.pro index d0ebec7..71b1a22 100644 --- a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/unix.pro +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/unix.pro @@ -1,5 +1 @@ -TEMPLATE = app -LANGUAGE = C++ - -SOURCES += main_unix.cpp - +SOURCES += main_unix.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/win.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/win.pro index a9a9751..afd7197 100644 --- a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/win.pro +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/win.pro @@ -1,5 +1 @@ -TEMPLATE = app -LANGUAGE = C++ - -SOURCES += main_win.cpp - +SOURCES += main_win.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/reloutput/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/reloutput/lupdatecmd new file mode 100644 index 0000000..da6103f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/reloutput/lupdatecmd @@ -0,0 +1,2 @@ +TRANSLATION: translations/project.ts +lupdate project.pro -ts translations/project.ts diff --git a/tests/auto/linguist/lupdate/testdata/output_ts/toplevel/library/tools/main.cpp b/tests/auto/linguist/lupdate/testdata/good/reloutput/main.cpp index 5a681e2..5a681e2 100644 --- a/tests/auto/linguist/lupdate/testdata/output_ts/toplevel/library/tools/main.cpp +++ b/tests/auto/linguist/lupdate/testdata/good/reloutput/main.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/reloutput/project.pro b/tests/auto/linguist/lupdate/testdata/good/reloutput/project.pro new file mode 100644 index 0000000..4e2e6ad --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/reloutput/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.cpp + +TRANSLATIONS = translations/project.ts diff --git a/tests/auto/linguist/lupdate/testdata/output_ts/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/reloutput/translations/project.ts.result index e398701..e398701 100644 --- a/tests/auto/linguist/lupdate/testdata/output_ts/project.ts.result +++ b/tests/auto/linguist/lupdate/testdata/good/reloutput/translations/project.ts.result diff --git a/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.pro b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.pro index 28ba291..fa56972 100644 --- a/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.pro +++ b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.pro @@ -1,14 +1,3 @@ -TEMPLATE = app -LANGUAGE = C++ - FORMS += project.ui -TRANSLATIONS = project.ts - -# Copy the ts to a temp file because: -# 1. The depot file is usually read-only -# 2. We don't want to modify the original file, since then it won't be possible to run the test twice -# without reverting the original file again. - -win32: system(copy /Y project.ts.before $$TRANSLATIONS) -unix: system(cp -f project.ts.before $$TRANSLATIONS && chmod a+w $$TRANSLATIONS) +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/output_ts/lupdatecmd b/tests/auto/linguist/lupdate/testdata/output_ts/lupdatecmd deleted file mode 100644 index 80319de..0000000 --- a/tests/auto/linguist/lupdate/testdata/output_ts/lupdatecmd +++ /dev/null @@ -1,5 +0,0 @@ -# Add the command that lupdate should run here. If it can't find anything it will default to -# 'lupdate project.pro -ts project.ts' - -# lupdate project.pro -lupdate toplevel/library/tools/tools.pro diff --git a/tests/auto/linguist/lupdate/testdata/output_ts/toplevel/library/tools/tools.pro b/tests/auto/linguist/lupdate/testdata/output_ts/toplevel/library/tools/tools.pro deleted file mode 100644 index ec6c01d..0000000 --- a/tests/auto/linguist/lupdate/testdata/output_ts/toplevel/library/tools/tools.pro +++ /dev/null @@ -1,12 +0,0 @@ -TEMPLATE = app -LANGUAGE = C++ - -SOURCES += main.cpp - -TRANSLATIONS += translations/project.ts - -exists( $$TRANSLATIONS ) { - win32: system(del $$TRANSLATIONS) - unix: system(rm -f $$TRANSLATIONS) -} - diff --git a/tests/auto/linguist/lupdate/testdata/output_ts/toplevel/library/tools/translations/readme.txt b/tests/auto/linguist/lupdate/testdata/output_ts/toplevel/library/tools/translations/readme.txt deleted file mode 100644 index 83adcd2..0000000 --- a/tests/auto/linguist/lupdate/testdata/output_ts/toplevel/library/tools/translations/readme.txt +++ /dev/null @@ -1,2 +0,0 @@ -This is just a dummy file so that GIT creates this folder - diff --git a/tests/auto/linguist/lupdate/testlupdate.cpp b/tests/auto/linguist/lupdate/testlupdate.cpp deleted file mode 100644 index d43fbc4..0000000 --- a/tests/auto/linguist/lupdate/testlupdate.cpp +++ /dev/null @@ -1,158 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the Qt Linguist of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "testlupdate.h" -#include <stdlib.h> -#include <QtGui/QApplication> -#include <QtCore/QProcess> -#include <QtCore/QTimer> -#include <QtCore/QDir> - -#ifdef Q_OS_WIN32 -# include <windows.h> -#endif - -#include <QtTest/QtTest> - - -TestLUpdate::TestLUpdate() -{ - childProc = 0; - QString binPath = QLibraryInfo::location(QLibraryInfo::BinariesPath); - m_cmdLupdate = binPath + QLatin1String("/lupdate"); - m_cmdQMake = binPath + QLatin1String("/qmake"); -} - -TestLUpdate::~TestLUpdate() -{ - if (childProc) - delete childProc; -} - -void TestLUpdate::setWorkingDirectory(const QString &workDir) -{ - m_workDir = workDir; - QDir::setCurrent(m_workDir); -} - -void TestLUpdate::addMakeResult( const QString &result ) -{ - make_result.append( result ); -} - -bool TestLUpdate::runChild( bool showOutput, const QString &program, const QStringList &argList) -{ - make_result.clear(); - exit_ok = FALSE; - if (childProc) - delete childProc; - - child_show = showOutput; - if ( showOutput ) { - QString S = argList.join(" "); - addMakeResult( program + QLatin1String(" ") + S ); - } - - childProc = new QProcess(); - Q_ASSERT(childProc); - - childProc->setWorkingDirectory(m_workDir); - connect(childProc, SIGNAL(finished(int)), this, SLOT(childReady(int))); - childProc->setProcessChannelMode(QProcess::MergedChannels); - if (argList.isEmpty()) { - childProc->start( program, QIODevice::ReadWrite | QIODevice::Text ); - } else { - childProc->start( program, argList, QIODevice::ReadWrite | QIODevice::Text ); - } - bool ok; - - ok = childProc->waitForStarted(); - - if (ok) - ok = childProc->waitForFinished(); - - if (!ok) - addMakeResult( "Error executing '" + program + "'." ); - - childReady(ok ? 0 : -1); - - return ok; -} - -void TestLUpdate::childReady(int /*exitCode*/) -{ - if (childProc != 0) { - childHasData(); - exit_ok = childProc->state() == QProcess::NotRunning - && childProc->exitStatus() == 0; - childProc->deleteLater(); - } - childProc = 0; -} - -void TestLUpdate::childHasData() -{ - //QByteArray ba = childProc->readAllStandardError(); - //qDebug() << "ERROR:" << ba; - QString stdoutput = childProc->readAllStandardOutput(); - stdoutput = stdoutput.replace("\t", " "); - if (child_show) - addMakeResult(stdoutput); -} - -bool TestLUpdate::run(const QString &commandline) -{ - return runChild(true, m_cmdLupdate + QLatin1String(" ") + commandline); -} - - -bool TestLUpdate::updateProFile(const QString &arguments) -{ - QStringList args = arguments.split(QChar(' ')); - return runChild( true, m_cmdLupdate, args ); -} - -bool TestLUpdate::qmake() -{ - QStringList args; - args << "-r"; - return runChild(true, m_cmdQMake, args); -} diff --git a/tests/auto/linguist/lupdate/tst_lupdate.cpp b/tests/auto/linguist/lupdate/tst_lupdate.cpp index 7140ede..5c910da 100644 --- a/tests/auto/linguist/lupdate/tst_lupdate.cpp +++ b/tests/auto/linguist/lupdate/tst_lupdate.cpp @@ -39,7 +39,6 @@ ** ****************************************************************************/ -#include "testlupdate.h" #if CHECK_SIMTEXTH #include "../shared/simtexth.h" #endif @@ -55,12 +54,11 @@ class tst_lupdate : public QObject { Q_OBJECT public: - tst_lupdate() { m_basePath = QDir::currentPath() + QLatin1String("/testdata/"); } + tst_lupdate(); private slots: void good_data(); void good(); - void output_ts(); void commandline_data(); void commandline(); #if CHECK_SIMTEXTH @@ -69,7 +67,7 @@ private slots: #endif private: - TestLUpdate m_lupdate; + QString m_cmdLupdate; QString m_basePath; void doCompare(const QStringList &actual, const QString &expectedFn, bool err); @@ -77,72 +75,149 @@ private: }; +tst_lupdate::tst_lupdate() +{ + QString binPath = QLibraryInfo::location(QLibraryInfo::BinariesPath); + m_cmdLupdate = binPath + QLatin1String("/lupdate"); + m_basePath = QDir::currentPath() + QLatin1String("/testdata/"); +} + +static bool prepareMatch(const QString &expect, QString *tmpl, int *require, int *accept) +{ + if (expect.startsWith(QLatin1Char('\\'))) { + *tmpl = expect.mid(1); + *require = *accept = 1; + } else if (expect.startsWith(QLatin1Char('?'))) { + *tmpl = expect.mid(1); + *require = 0; + *accept = 1; + } else if (expect.startsWith(QLatin1Char('*'))) { + *tmpl = expect.mid(1); + *require = 0; + *accept = INT_MAX; + } else if (expect.startsWith(QLatin1Char('+'))) { + *tmpl = expect.mid(1); + *require = 1; + *accept = INT_MAX; + } else if (expect.startsWith(QLatin1Char('{'))) { + int brc = expect.indexOf(QLatin1Char('}'), 1); + if (brc < 0) + return false; + *tmpl = expect.mid(brc + 1); + QString sub = expect.mid(1, brc - 1); + int com = sub.indexOf(QLatin1Char(',')); + bool ok; + if (com < 0) { + *require = *accept = sub.toInt(&ok); + return ok; + } else { + *require = sub.left(com).toInt(); + *accept = sub.mid(com + 1).toInt(&ok); + if (!ok) + *accept = INT_MAX; + return *accept >= *require; + } + } else { + *tmpl = expect; + *require = *accept = 1; + } + return true; +} + void tst_lupdate::doCompare(const QStringList &actual, const QString &expectedFn, bool err) { QFile file(expectedFn); - QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); - QStringList expected = QString(file.readAll()).trimmed().split('\n'); - - int i = 0, ei = expected.size(), gi = actual.size(); - for (; ; i++) { - if (i == gi) { - if (i == ei) - return; - gi = 0; - break; - } else if (i == ei) { - ei = 0; + QVERIFY2(file.open(QIODevice::ReadOnly | QIODevice::Text), qPrintable(expectedFn)); + QStringList expected = QString(file.readAll()).split('\n'); + + int ei = 0, ai = 0, em = expected.size(), am = actual.size(); + int oei = 0, oai = 0, oem = em, oam = am; + int require = 0, accept = 0; + QString tmpl; + forever { + if (!accept) { + oei = ei, oai = ai; + if (ei == em) { + if (ai == am) + return; + break; + } + if (!prepareMatch(expected.at(ei++), &tmpl, &require, &accept)) + QFAIL(qPrintable(QString("Malformed expected %1 at %3:%2") + .arg(err ? "output" : "result").arg(ei).arg(expectedFn))); + } + if (ai == am) { + if (require <= 0) { + accept = 0; + continue; + } break; - } else { - QString act = actual.at(i); - act.remove('\r'); - if (err ? !QRegExp(expected.at(i)).exactMatch(act) : - (act != expected.at(i))) { - bool cond = true; - while (cond) { - act = actual.at(gi - 1); - act.remove('\r'); - cond = (ei - 1) >= i && (gi - 1) >= i && - (err ? QRegExp(expected.at(ei - 1)).exactMatch(act) : - (act == expected.at(ei - 1))); - if (cond) { - ei--, gi--; + } + if (err ? !QRegExp(tmpl).exactMatch(actual.at(ai)) : (actual.at(ai) != tmpl)) { + if (require <= 0) { + accept = 0; + continue; + } + ei--; + require = accept = 0; + forever { + if (!accept) { + oem = em, oam = am; + if (ei == em) + break; + if (!prepareMatch(expected.at(--em), &tmpl, &require, &accept)) + QFAIL(qPrintable(QString("Malformed expected %1 at %3:%2") + .arg(err ? "output" : "result") + .arg(em + 1).arg(expectedFn))); + } + if (ai == am || (err ? !QRegExp(tmpl).exactMatch(actual.at(am - 1)) : + (actual.at(am - 1) != tmpl))) { + if (require <= 0) { + accept = 0; + continue; } + break; } - break; + accept--; + require--; + am--; } + break; } + accept--; + require--; + ai++; } QByteArray diff; - for (int j = qMax(0, i - 3); j < i; j++) - diff += expected.at(j) + '\n'; + for (int j = qMax(0, oai - 3); j < oai; j++) + diff += actual.at(j) + '\n'; diff += "<<<<<<< got\n"; - for (int j = i; j < gi; j++) { + for (int j = oai; j < oam; j++) { diff += actual.at(j) + '\n'; - if (j >= i + 5) { + if (j >= oai + 5) { diff += "...\n"; break; } } diff += "=========\n"; - for (int j = i; j < ei; j++) { + for (int j = oei; j < oem; j++) { diff += expected.at(j) + '\n'; - if (j >= i + 5) { + if (j >= oei + 5) { diff += "...\n"; break; } } diff += ">>>>>>> expected\n"; - for (int j = ei; j < qMin(ei + 3, expected.size()); j++) - diff += expected.at(j) + '\n'; + for (int j = oam; j < qMin(oam + 3, actual.size()); j++) + diff += actual.at(j) + '\n'; QFAIL(qPrintable((err ? "Output for " : "Result for ") + expectedFn + " does not meet expectations:\n" + diff)); } void tst_lupdate::doCompare(const QString &actualFn, const QString &expectedFn, bool err) { QFile afile(actualFn); - QVERIFY(afile.open(QIODevice::ReadOnly | QIODevice::Text)); - QStringList actual = QString(afile.readAll()).trimmed().split('\n'); + QVERIFY2(afile.open(QIODevice::ReadOnly | QIODevice::Text), qPrintable(actualFn)); + QStringList actual = QString(afile.readAll()).split('\n'); doCompare(actual, expectedFn, err); } @@ -167,20 +242,16 @@ void tst_lupdate::good() QFETCH(QString, directory); QString dir = m_basePath + "good/" + directory; - QString expectedFile = dir + QLatin1String("/project.ts.result"); qDebug() << "Checking..."; - // qmake will delete the previous one, to ensure that we don't do any merging.... - QString generatedtsfile(QLatin1String("project.ts")); + QString generatedtsfile(dir + QLatin1String("/project.ts")); - m_lupdate.setWorkingDirectory(dir); - m_lupdate.qmake(); // look for a command QString lupdatecmd; QFile file(dir + "/lupdatecmd"); if (file.exists()) { - QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); + QVERIFY2(file.open(QIODevice::ReadOnly | QIODevice::Text), qPrintable(file.fileName())); while (!file.atEnd()) { QByteArray cmdstring = file.readLine().simplified(); if (cmdstring.startsWith('#')) @@ -197,72 +268,39 @@ void tst_lupdate::good() file.close(); } - if (lupdatecmd.isEmpty()) { - lupdatecmd = QLatin1String("project.pro -ts project.ts"); - } - lupdatecmd.prepend("-silent "); - m_lupdate.updateProFile(lupdatecmd); - - // If the file expectedoutput.txt exists, compare the - // console output with the content of that file - QFile outfile(dir + "/expectedoutput.txt"); - if (outfile.exists()) { - QString errs = m_lupdate.getErrorMessages().at(1).trimmed(); - QStringList errslist = errs.split(QLatin1Char('\n')); - doCompare(errslist, outfile.fileName(), true); - if (QTest::currentTestFailed()) - return; - } - - doCompare(generatedtsfile, expectedFile, false); -} - -void tst_lupdate::output_ts() -{ - QString dir = m_basePath + "output_ts"; - m_lupdate.setWorkingDirectory(dir); - - // look for a command - QString lupdatecmd; - QFile file(dir + "/lupdatecmd"); - if (file.exists()) { - QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); - while (!file.atEnd()) { - QByteArray cmdstring = file.readLine().simplified(); - if (cmdstring.startsWith('#')) - continue; - if (cmdstring.startsWith("lupdate")) { - cmdstring.remove(0, 8); - lupdatecmd.append(cmdstring); - break; - } - } - file.close(); - } - - QDir parsingDir(m_basePath + "output_ts"); - - QString generatedtsfile = - dir + QLatin1String("/toplevel/library/tools/translations/project.ts"); - QFile::remove(generatedtsfile); + QString beforetsfile = generatedtsfile + QLatin1String(".before"); + if (QFile::exists(beforetsfile)) + QVERIFY2(QFile::copy(beforetsfile, generatedtsfile), qPrintable(beforetsfile)); + if (lupdatecmd.isEmpty()) + lupdatecmd = QLatin1String("project.pro"); lupdatecmd.prepend("-silent "); - m_lupdate.qmake(); - m_lupdate.updateProFile(lupdatecmd); + + QProcess proc; + proc.setWorkingDirectory(dir); + proc.setProcessChannelMode(QProcess::MergedChannels); + proc.start(m_cmdLupdate + ' ' + lupdatecmd, QIODevice::ReadWrite | QIODevice::Text); + QVERIFY2(proc.waitForFinished(5000), qPrintable(lupdatecmd)); + QByteArray output = proc.readAll(); + QVERIFY2(proc.exitStatus() == QProcess::NormalExit, + "\"lupdate " + lupdatecmd.toLatin1() + "\" crashed\n" + output); + QVERIFY2(!proc.exitCode(), + "\"lupdate " + lupdatecmd.toLatin1() + "\" exited with code " + + QByteArray::number(proc.exitCode()) + "\n" + proc.readAll()); // If the file expectedoutput.txt exists, compare the // console output with the content of that file QFile outfile(dir + "/expectedoutput.txt"); if (outfile.exists()) { - QString errs = m_lupdate.getErrorMessages().at(1).trimmed(); - QStringList errslist = errs.split(QLatin1Char('\n')); + QStringList errslist = QString::fromLatin1(output).split(QLatin1Char('\n')); doCompare(errslist, outfile.fileName(), true); if (QTest::currentTestFailed()) return; } - doCompare(generatedtsfile, dir + QLatin1String("/project.ts.result"), false); + QString expectedFile = generatedtsfile + QLatin1String(".result"); + doCompare(generatedtsfile, expectedFile, false); } void tst_lupdate::commandline_data() @@ -285,14 +323,21 @@ void tst_lupdate::commandline() QFETCH(QString, generatedtsfile); QFETCH(QString, expectedtsfile); - m_lupdate.setWorkingDirectory(m_basePath + currentPath); QString generated = m_basePath + currentPath + QLatin1Char('/') + generatedtsfile; QFile gen(generated); if (gen.exists()) QVERIFY(gen.remove()); - if (!m_lupdate.run("-silent " + commandline)) - qDebug() << m_lupdate.getErrorMessages().last(); + QProcess proc; + proc.setWorkingDirectory(m_basePath + currentPath); + proc.setProcessChannelMode(QProcess::MergedChannels); + proc.start(m_cmdLupdate + " -silent " + commandline, QIODevice::ReadWrite | QIODevice::Text); + QVERIFY2(proc.waitForFinished(5000), qPrintable(commandline)); + QVERIFY2(proc.exitStatus() == QProcess::NormalExit, + "\"lupdate -silent " + commandline.toLatin1() + "\" crashed\n" + proc.readAll()); + QVERIFY2(!proc.exitCode(), + "\"lupdate -silent " + commandline.toLatin1() + "\" exited with code " + + QByteArray::number(proc.exitCode()) + "\n" + proc.readAll()); doCompare(generated, m_basePath + currentPath + QLatin1Char('/') + expectedtsfile, false); } |