Bug 84141

Summary: [Qt] Instrument the WebKit source
Product: WebKit Reporter: Langó László <lango.laszlo>
Component: Tools / TestsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED INVALID    
Severity: Normal CC: loki, ossy, zarvai
Priority: P2 Keywords: Qt, QtTriaged
Version: 420+   
Hardware: PC   
OS: Linux   
Bug Depends on:    
Bug Blocks: 78701    
Attachments:
Description Flags
first draft patch
none
first draft patch (updated to ToT)
none
first draft patch (updated to ToT)
none
first draft patch (updated to ToT)
none
rebased patch to ToT
none
rebased patch to ToT
none
rebased patch to ToT
none
rebased patch to ToT
none
rebased patch to ToT
none
rebased patch to ToT
none
rebased patch to ToT
none
rebased patch to ToT none

Langó László
Reported 2012-04-17 03:27:55 PDT
Created attachment 137507 [details] first draft patch Add Instrument build to the build system to make method coverage data for further process.
Attachments
first draft patch (8.55 KB, patch)
2012-04-17 03:27 PDT, Langó László
no flags
first draft patch (updated to ToT) (4.56 KB, patch)
2012-05-23 07:21 PDT, Csaba Osztrogonác
no flags
first draft patch (updated to ToT) (8.52 KB, patch)
2012-05-24 05:33 PDT, Csaba Osztrogonác
no flags
first draft patch (updated to ToT) (8.57 KB, patch)
2012-05-30 00:53 PDT, Langó László
no flags
rebased patch to ToT (4.59 KB, patch)
2012-10-16 05:27 PDT, Csaba Osztrogonác
no flags
rebased patch to ToT (8.61 KB, patch)
2012-10-16 09:27 PDT, Zoltan Arvai
no flags
rebased patch to ToT (8.69 KB, patch)
2012-10-17 05:14 PDT, Csaba Osztrogonác
no flags
rebased patch to ToT (4.43 KB, patch)
2012-10-17 06:47 PDT, Csaba Osztrogonác
no flags
rebased patch to ToT (8.41 KB, patch)
2012-10-17 06:50 PDT, Csaba Osztrogonác
no flags
rebased patch to ToT (8.51 KB, patch)
2012-10-18 08:10 PDT, Zoltan Arvai
no flags
rebased patch to ToT (8.55 KB, patch)
2012-10-24 01:00 PDT, Zoltan Arvai
no flags
rebased patch to ToT (8.54 KB, patch)
2012-11-21 02:43 PST, Zoltan Arvai
no flags
Csaba Osztrogonác
Comment 1 2012-05-23 07:21:51 PDT
Created attachment 143566 [details] first draft patch (updated to ToT)
Csaba Osztrogonác
Comment 2 2012-05-24 05:33:01 PDT
Created attachment 143795 [details] first draft patch (updated to ToT)
Csaba Osztrogonác
Comment 3 2012-05-24 05:36:25 PDT
Comment on attachment 143795 [details] first draft patch (updated to ToT) View in context: https://bugs.webkit.org/attachment.cgi?id=143795&action=review > Source/WebKit/qt/WebCoreSupport/Instrumenter.cpp:49 > + testcaseFileStream = fopen((QCoreApplication::applicationDirPath().toStdString() + "/../methodcoverage/" + testcaseName).c_str(), "wb"); The dir should be as the other script expects in https://bugs.webkit.org/show_bug.cgi?id=84330 methodcoverage --> methodcoverage/results Additionally we should create this directory if it doesn't exist.
Langó László
Comment 4 2012-05-30 00:53:59 PDT
Created attachment 144738 [details] first draft patch (updated to ToT) results patch is corrected too, and the warning is solved
Csaba Osztrogonác
Comment 5 2012-10-16 05:27:26 PDT
Created attachment 168929 [details] rebased patch to ToT
Zoltan Arvai
Comment 6 2012-10-16 09:27:01 PDT
Created attachment 168960 [details] rebased patch to ToT Instrumenter.cpp and Instrumenter.h was missing from the previous patch.
Csaba Osztrogonác
Comment 7 2012-10-17 05:14:56 PDT
Created attachment 169163 [details] rebased patch to ToT But I still get the following linking error: --------------------------------------------- .obj/release-shared/DumpRenderTreeQt.o: In function `WebCore::DumpRenderTree::DumpRenderTree()': DumpRenderTreeQt.cpp:(.text._ZN7WebCore14DumpRenderTreeC2Ev+0x101): undefined reference to `Instrumenter::init()' .obj/release-shared/DumpRenderTreeQt.o: In function `WebCore::DumpRenderTree::~DumpRenderTree()': DumpRenderTreeQt.cpp:(.text._ZN7WebCore14DumpRenderTreeD2Ev+0x37): undefined reference to `Instrumenter::destroy()' .obj/release-shared/DumpRenderTreeQt.o: In function `WebCore::DumpRenderTree::processLine(QString const&)': DumpRenderTreeQt.cpp:(.text._ZN7WebCore14DumpRenderTree11processLineERK7QString+0x1bb): undefined reference to `Instrumenter::start(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)' .obj/release-shared/DumpRenderTreeQt.o: In function `WebCore::DumpRenderTree::dump()': DumpRenderTreeQt.cpp:(.text._ZN7WebCore14DumpRenderTree4dumpEv+0x3e1): undefined reference to `Instrumenter::end()' collect2: ld returned 1 exit status make[3]: *** [../../../bin/DumpRenderTree] Error 1 Instrumenter::init() and Instrumenter::destroy() are in the libwebkit1.a, but they aren't in the libQtWebKitWidgets.so for some reason ...
Csaba Osztrogonác
Comment 8 2012-10-17 05:19:56 PDT
Here is the linking command of libQtWebKitWidgets.so: ------------------------------------------------------ g++ -Wl,--gc-sections -Wl,--no-undefined -Wl,--no-undefined -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/Qt5/Qt-5.0.0-r38/lib -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQtWebKitWidgets.so.5 -o libQtWebKitWidgets.so.5.0.0 -ldl -L/usr/local/Trolltech/Qt5/Qt-5.0.0-r38/lib -lQtWidgets -lQtNetwork -lQtGui -lQtCore -lpthread -Wl,-whole-archive -lWebKit1 -Wl,-no-whole-archive -L/storage/WebKit/WebKitBuild/Release/Source/WebKit/release -Wl,-whole-archive -lWebKit2 -Wl,-no-whole-archive -L/storage/WebKit/WebKitBuild/Release/Source/WebKit2/release -Wl,-whole-archive -lWebCore -Wl,-no-whole-archive -L/storage/WebKit/WebKitBuild/Release/Source/WebCore/release -lz -lXrender -ljpeg -lpng -Wl,-whole-archive -lANGLE -Wl,-no-whole-archive -L/storage/WebKit/WebKitBuild/Release/Source/ThirdParty/ANGLE/release -Wl,-whole-archive -lJavaScriptCore -Wl,-no-whole-archive -L/storage/WebKit/WebKitBuild/Release/Source/JavaScriptCore/release -Wl,-whole-archive -lWTF -Wl,-no-whole-archive -L/storage/WebKit/WebKitBuild/Release/Source/WTF/release -licui18n -licuuc -licudata -lQtQuick -L/storage/qt5/qtdeclarative/lib -L/usr/local/Trolltech/Qt5/Qt-5.0.0-r38/lib -lQtOpenGL -lQtPrintSupport -lQtQml -lQtWidgets -lQtLocation -lQtSql -lQtNetwork -lQtGui -lQtSensors -lQtCore -lpthread -lGL -lXext -lm -lX11 -lxslt -lgio-2.0 -lgstapp-0.10 -lgstinterfaces-0.10 -lgstpbutils-0.10 -pthread -lgstvideo-0.10 -lgstbase-0.10 -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lxml2 -lgthread-2.0 -lrt -lglib-2.0 It contains ... -Wl,-whole-archive -lWebKit1 -Wl,-no-whole-archive ... How is it possible if the ld doesn't add everything to the so?
Csaba Osztrogonác
Comment 9 2012-10-17 06:47:43 PDT
Created attachment 169173 [details] rebased patch to ToT I moved the instrumenter from WebKit1 to DRT and it works now.
Csaba Osztrogonác
Comment 10 2012-10-17 06:50:25 PDT
Created attachment 169174 [details] rebased patch to ToT
Zoltan Arvai
Comment 11 2012-10-18 08:10:18 PDT
Created attachment 169413 [details] rebased patch to ToT
Zoltan Arvai
Comment 12 2012-10-24 01:00:17 PDT
Created attachment 170339 [details] rebased patch to ToT
Zoltan Arvai
Comment 13 2012-11-21 02:43:43 PST
Created attachment 175391 [details] rebased patch to ToT No more hard coded qt path
Jocelyn Turcotte
Comment 14 2014-02-03 03:20:36 PST
=== Bulk closing of Qt bugs === If you believe that this bug report is still relevant for a non-Qt port of webkit.org, please re-open it and remove [Qt] from the summary. If you believe that this is still an important QtWebKit bug, please fill a new report at https://bugreports.qt-project.org and add a link to this issue. See http://qt-project.org/wiki/ReportingBugsInQt for additional guidelines.
Note You need to log in before you can comment on or make changes to this bug.