Перейти к содержимому

Фотография

Новая статья: Организация автоматизированного тестирования Qt GUI


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 17 марта 2009 - 20:01

В библиотеку добавлена статья Евгения Россинского "Организация автоматизированного тестирования Qt GUI", посвященная инструменту, который интересует всех тестировщиков Qt-приложений, про который все слышали, но мало кто его видел -- froglogic Squish. Это наглядное и понятное введение в Squish Qt, с примерами кода, видеороликами, и -- обещанием продолжения.

Читать статью...
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#2 kydesnik

kydesnik

    Новый участник

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Иван Анисимов

Отправлено 21 сентября 2011 - 06:38

Добрый день, глубоко уважаемый администратор!

У меня небольшой вопрос к вам, когда-нибудь собирали сами Squish из исходников, а именно интересует опыт сборки под Solaris 10, Qt 4???

В библиотеку добавлена статья Евгения Россинского "Организация автоматизированного тестирования Qt GUI", посвященная инструменту, который интересует всех тестировщиков Qt-приложений, про который все слышали, но мало кто его видел -- froglogic Squish. Это наглядное и понятное введение в Squish Qt, с примерами кода, видеороликами, и -- обещанием продолжения.

Читать статью...


  • 0

#3 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 21 сентября 2011 - 09:52

Нет, лично мне не доводилось собирать squish из исходников :)

Но почему обращение именно к уважаемому администратору, давайте адресуем этот вопрос уважаемым участникам форума -- кто имеет опыт сборки squish?
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#4 Natalya Rukol

Natalya Rukol

    Профессионал

  • Admin
  • PipPipPipPipPipPip
  • 2 001 сообщений
  • Город:Moscow


Отправлено 22 сентября 2011 - 04:20

Но почему обращение именно к уважаемому администратору?

Чуть что, сразу косой :))
  • 0

#5 kydesnik

kydesnik

    Новый участник

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Иван Анисимов

Отправлено 14 октября 2011 - 10:10

Добрый день, глубоко уважаемый администратор!

У меня небольшой вопрос к вам, когда-нибудь собирали сами Squish из исходников, а именно интересует опыт сборки под Solaris 10, Qt 4???


В библиотеку добавлена статья Евгения Россинского "Организация автоматизированного тестирования Qt GUI", посвященная инструменту, который интересует всех тестировщиков Qt-приложений, про который все слышали, но мало кто его видел -- froglogic Squish. Это наглядное и понятное введение в Squish Qt, с примерами кода, видеороликами, и -- обещанием продолжения.

Читать статью...



Сам задал вопрос по сборке Squish'a и сам на него отвечаю. Пришлось практически месяц потратить, чтобы собраться под SunOs 5.10 (Generic_141445-09 i86pc i386 i86pc). Возможно кому-нибудь пригодиться.

p.s. почему я к уважаемому Администратору обратился, да потому что вы только и пишете про продукт (Squish) компании ForgLogic, другие про него как будто первый раз слышут.

1. конфигурился со следующими параметрами:
$ CXX=g++ ./configure --enable-all —with-qtdir=/usr/local/Trolltech/Qt-4.7.1-debug --disable-tcl
(т.е. поддержка JavaScript, Python, Perl)

2. при сборке написал, что не найдена библиотека (нет значит, сделаем линк и поехали далее)
$ cd /usr/local/lib
# ln -s libmpfr.so libmpfr.so.1

3. так же сборка не проходила из-за неправльного линка у перловой либы (удалили неправильный линк, был libperl.so -> ./libperl.so.1 заменили на см.ниже )
$ cd /usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE
# ln -sf libperl.so.1 libperl.so

4. далее при сборке (./build) была следующая ошибка

Building /sintez/sintez/squish-4.1.1-qt-src/lib/libsquishinterpreter.so
Text relocation remains referenced
against symbol offset in file
.rodata1 0x6 /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
my_cxt 0x13 /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
...
...
...
...
Perl_sv_newmortal 0x61d /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
atoi 0x31 /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
getenv 0x24 /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
strcmp 0x7ac /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o)
ld: fatal: relocations remain against allocatable but non-writable sections
collect2: ld returned 1 exit status
g++ -shared -o /sintez/sintez/squish-4.1.1-qt-src/lib/libsquishinterpreter.so interpreter.o debugger.o generic.o scripttestcase.o testsettings.o initscript.o eventloopblock.o pyinterpreter.o pyobject.o pytest.o pytestdata.o pyutils.o pydebugger.o pyeventrecorder.o jsinterpreter.o jsdebugger.o jsobject.o jsutils.o jslibrary.o jstest.o jseventrecorder.o tinyxml.o tinyxmlerror.o tinyxmlparser.o tinystr.o plinterpreter.o pldebugger.o plobject.o plutils.o pleventrecorder.o settings.o surrogate.o filemonitor.o util.o guiconstants.o qtutil.o /sintez/sintez/squish-4.1.1-qt-src/src/interpreter/moc_debugger.o /sintez/sintez/squish-4.1.1-qt-src/src/interpreter/moc_eventloopblock.o /sintez/sintez/squish-4.1.1-qt-src/src/interpreter/moc_filemonitor.o /sintez/sintez/squish-4.1.1-qt-src/src/interpreter/moc_jslibrary.o -L/sintez/sintez/squish-4.1.1-qt-src/lib/ -lsquishtest -L/sintez/sintez/Qt-4.7.1-debug/lib -lQtGui -lQtCore -lQt3Support -lQtSql -lQtXml -lQtNetwork -lsquishobjectmodel -lfkit -lsocket -lsquishsw /usr/lib/libpython2.4.so -lresolv -lnsl -lrt -ldl -R /usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a -L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE -lperl -lm -lc -lkjs
Aborting build. Last command exited with status 1.


пришлось поправить Buld.conf
старое значение:
config["PERLLIBS"] = ["-R", "/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE", "", "/usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a", "-L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE", "-lperl", "-lsocket", "-lnsl", "-ldl", "-lm", "-lc"];

новое значение:
config["PERLLIBS"] = [ "-L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE", "-lperl", "-lsocket", "-lnsl", "-ldl", "-lm", "-lc"];

После запустились билдиться

5. После шага 4 библиотека libsquishinterpreter.so собирается, но валится на сборке библиотеки _squishrunner. Ошибка следущего рода

Building /sintez/sintez/squish-4.1.1-qt-src/lib/_squishrunner
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtGui.so: section .SUNW_ldynsym has invalid type 0x6ffffff3
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtGui.so: section .SUNW_dynsymsort has invalid type 0x6ffffff1
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtCore.so: section .SUNW_ldynsym has invalid type 0x6ffffff3
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtCore.so: section .SUNW_dynsymsort has invalid type 0x6ffffff1
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQt3Support.so: section .SUNW_ldynsym has invalid type 0x6ffffff3
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQt3Support.so: section .SUNW_dynsymsort has invalid type 0x6ffffff1
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtSql.so: section .SUNW_ldynsym has invalid type 0x6ffffff3
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtSql.so: section .SUNW_dynsymsort has invalid type 0x6ffffff1
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtXml.so: section .SUNW_ldynsym has invalid type 0x6ffffff3
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtXml.so: section .SUNW_dynsymsort has invalid type 0x6ffffff1
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtNetwork.so: section .SUNW_ldynsym has invalid type 0x6ffffff3
ld: warning: file /sintez/sintez/Qt-4.7.1-debug/lib/libQtNetwork.so: section .SUNW_dynsymsort has invalid type 0x6ffffff1
Undefined first referenced
symbol in file
boot_DynaLoader /sintez/sintez/squish-4.1.1-qt-src/lib//libsquishinterpreter.so
ld: fatal: Symbol referencing errors. No output written to /sintez/sintez/squish-4.1.1-qt-src/lib/_squishrunner
collect2: ld returned 1 exit status
g++ -o /sintez/sintez/squish-4.1.1-qt-src/lib/_squishrunner main.o runner.o remoteinspector.o remoteobject.o appstarter.o appinspector.o recorder.o spy.o serverinformant.o ipcsocket.o getopt.o surrogate.o settings.o util.o confparser.o qtutil.o dumpfilesupport.o lk3.o scriptlanguage.o jsscriptlanguage.o plscriptlanguage.o pythonscriptlanguage.o tclscriptlanguage.o tslscriptlanguage.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_runner.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_spy.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_appstarter.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_appinspector.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_recorder.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_serverinformant.o /sintez/sintez/squish-4.1.1-qt-src/src/runner/moc_ipcsocket.o -L/sintez/sintez/squish-4.1.1-qt-src/lib/ -lsquishserverlib -L/sintez/sintez/Qt-4.7.1-debug/lib -lQtGui -lQtCore -lfkit -lsocket -lnsl -lsquishinterpreter -lsquishtest -lQt3Support -lQtSql -lQtXml -lQtNetwork -lsquishobjectmodel -lsquishsw /usr/lib/libpython2.4.so -lresolv -lrt -ldl -L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE -lperl -lm -lc -lkjs
Aborting build. Last command exited with status 1.


т.е. при сборке не хватает DynaLoader который мы убрали из файла Build.conf. Изменяем опять config["PERLLIBS"]
старое значение:
config["PERLLIBS"] = [ "-L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE", "-lperl", "-lsocket", "-lnsl", "-ldl", "-lm", "-lc"];

новое значение:
config["PERLLIBS"] = [ "-L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE","/usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a", "-lperl", "-lsocket", "-lnsl", "-ldl", "-lm", "-lc"];

После запустились билдиться

И в конце увидили Build successfull :victory:

Но на это проблемы не закончились. Собираем Qt приложение в Debug mode и запускаем Squish. Пытаемся записать тест и тут опять проблемы. Не перехватывался Context с тестируемого приложения :vampire:

долго и много диагностировали, запускали Squish в консольном режиме: отдельно в консольно режиме squishserver и squishrunner. После долгих мучений определили, что некорректно работает squishserver. В итоге причина оказалась бональной.
Удалили из переменной окружения LD_PRELOAD_32 и наступило счастье, НИРВАНА :drinks: (саму команду см.ниже)
$ unset LD_PRELOAD_32
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных