Closed
Bug 237955
Opened 20 years ago
Closed 20 years ago
[FIXr]Filter out NS_BLOCK_HAS_LINE_CURSOR in regression tests
Categories
(Core :: Layout, defect, P1)
Tracking
()
RESOLVED
FIXED
mozilla1.8alpha1
People
(Reporter: bzbarsky, Assigned: bzbarsky)
Details
Attachments
(1 file)
8.86 KB,
patch
|
roc
:
review+
roc
:
superreview+
dbaron
:
approval1.7+
|
Details | Diff | Splinter Review |
I thought about this some more and I may just add a method on nsIFrameDebug that returns the flags and masks out the irrelevant ones. The current regression test logic could then move into that debug method on nsFrame, and nsBlockFrame can override. If you think it's better to keep all the logic in the regression test code, please let me know....
Assignee | ||
Comment 1•20 years ago
|
||
I had another thought here. Maybe a nsIFrameDebug method to get the flags? Then the frames could mask out flags as needed.... thoughts?
sounds reasonable.
Assignee | ||
Comment 3•20 years ago
|
||
Assignee | ||
Updated•20 years ago
|
Attachment #145305 -
Flags: superreview?(roc)
Attachment #145305 -
Flags: review?(roc)
Assignee | ||
Updated•20 years ago
|
Priority: -- → P1
Summary: Filter out NS_BLOCK_HAS_LINE_CURSOR in regression tests → [FIX]Filter out NS_BLOCK_HAS_LINE_CURSOR in regression tests
Target Milestone: --- → mozilla1.8alpha
Attachment #145305 -
Flags: superreview?(roc)
Attachment #145305 -
Flags: superreview+
Attachment #145305 -
Flags: review?(roc)
Attachment #145305 -
Flags: review+
Assignee | ||
Updated•20 years ago
|
Summary: [FIX]Filter out NS_BLOCK_HAS_LINE_CURSOR in regression tests → [FIXr]Filter out NS_BLOCK_HAS_LINE_CURSOR in regression tests
Isn't that a little bit of overkill? (See for http://www.infiltec.com/j-h-wrld.htm an example where we might end :-)) I did not see this NS_BLOCK_HAS_LINE_CURSOR over three years of running the tests. And wouldn't the compare trees a better place to do this instead of adding functions that only serve the regressions tests to some frames?
Assignee | ||
Comment 5•20 years ago
|
||
> I did not see this NS_BLOCK_HAS_LINE_CURSOR over three years of running the > tests That's because it got added a few weeks ago. I got nearly a thousand false positives on every single regression test I've run since then (that's nearly a thousand tests showing false positives; probably about 30% of the total tests we have. Different ones each time, of course). > And wouldn't the compare trees a better place to do this NS_BLOCK_HAS_LINE_CURSOR is in the "reserved for frames" bit-space. Which means that bit can be meaningful for frames that are not blockframes. There is no reliable way to detect blockframes and all subclasses of blockframes from the compare trees code. But if you think there's a better way to implement this, I'm all ears. I'm not tied to this particular implementation.
>That's because it got added a few weeks ago.
Ah, the hidden advantage of having a single directory where other people seldom
checkin. Sorry, I did not know thats so critical, 1000 false positives are far
beyond tolerable problems. With your explanation its OK with me and thanks for
the warning.
Comment 7•20 years ago
|
||
Index: layout/base/public/nsIFrameDebug.h + * Return the state bits that are relevant to regression tests (that is, those bits which indicate a real difference when they differ nit: missing closing ')'
Comment on attachment 145305 [details] [diff] [review] Thusly This is all DEBUG code only, and I'd like to run the regression tests on something that should probably go into 1.7, so approving.
Attachment #145305 -
Flags: approval1.7+
Assignee | ||
Comment 9•20 years ago
|
||
Fixed for 1.7
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Comment 10•20 years ago
|
||
Attempted debug build Tuesday evening: Creating library firefox.lib and object firefox.exp gklayout.lib(nsIsIndexFrame.obj) : error LNK2001: unresolved external symbol "pu blic: virtual unsigned int __stdcall nsBlockFrame::GetDebugStateBits(void)const " (?GetDebugStateBits@nsBlockFrame@@UBGIXZ) gklayout.lib(nsLegendFrame.obj) : error LNK2001: unresolved external symbol "pub lic: virtual unsigned int __stdcall nsBlockFrame::GetDebugStateBits(void)const " (?GetDebugStateBits@nsBlockFrame@@UBGIXZ) gklayout.lib(nsMathMLForeignFrameWrapper.obj) : error LNK2001: unresolved extern al symbol "public: virtual unsigned int __stdcall nsBlockFrame::GetDebugStateBit s(void)const " (?GetDebugStateBits@nsBlockFrame@@UBGIXZ) gklayout.lib(nsMathMLmtableFrame.obj) : error LNK2001: unresolved external symbo l "public: virtual unsigned int __stdcall nsBlockFrame::GetDebugStateBits(void)c onst " (?GetDebugStateBits@nsBlockFrame@@UBGIXZ) gklayout.lib(nsFileControlFrame.obj) : error LNK2001: unresolved external symbol "public: virtual unsigned int __stdcall nsBlockFrame::GetDebugStateBits(void)co nst " (?GetDebugStateBits@nsBlockFrame@@UBGIXZ) gklayout.lib(nsSelectsAreaFrame.obj) : error LNK2001: unresolved external symbol "public: virtual unsigned int __stdcall nsBlockFrame::GetDebugStateBits(void)co nst " (?GetDebugStateBits@nsBlockFrame@@UBGIXZ) gklayout.lib(nsComboboxControlFrame.obj) : error LNK2001: unresolved external sy mbol "public: virtual unsigned int __stdcall nsBlockFrame::GetDebugStateBits(voi d)const " (?GetDebugStateBits@nsBlockFrame@@UBGIXZ) gklayout.lib(nsBlockFrame.obj) : error LNK2001: unresolved external symbol "publ ic: virtual unsigned int __stdcall nsBlockFrame::GetDebugStateBits(void)const " (?GetDebugStateBits@nsBlockFrame@@UBGIXZ) gklayout.lib(nsAreaFrame.obj) : error LNK2001: unresolved external symbol "publi c: virtual unsigned int __stdcall nsBlockFrame::GetDebugStateBits(void)const " ( ?GetDebugStateBits@nsBlockFrame@@UBGIXZ) gklayout.lib(nsMathMLContainerFrame.obj) : error LNK2001: unresolved external sy mbol "public: virtual unsigned int __stdcall nsBlockFrame::GetDebugStateBits(voi d)const " (?GetDebugStateBits@nsBlockFrame@@UBGIXZ) gklayout.lib(nsTableOuterFrame.obj) : error LNK2001: unresolved external symbol "public: virtual unsigned int __stdcall nsBlockFrame::GetDebugStateBits(void)con st " (?GetDebugStateBits@nsBlockFrame@@UBGIXZ) firefox.exe : fatal error LNK1120: 1 unresolved externals make[4]: *** [firefox.exe] Error 96 make[4]: Leaving directory `/cygdrive/c/Mozilla/mozilla/browser/app' make[3]: *** [libs] Error 2 make[3]: Leaving directory `/cygdrive/c/Mozilla/mozilla/browser' make[2]: *** [tier_99] Error 2 make[2]: Leaving directory `/cygdrive/c/Mozilla/mozilla' make[1]: *** [default] Error 2 make[1]: Leaving directory `/cygdrive/c/Mozilla/mozilla' make: *** [build] Error 2
Assignee | ||
Comment 11•20 years ago
|
||
Sounds like you're linking together libs that were built with different build flags or something. Is this only an issue for the static build?
Comment 12•20 years ago
|
||
Yes, I generally only do static builds. Would changing the build to shared fix this problem? I'm just trying to get something to work at the moment.
Assignee | ||
Comment 13•20 years ago
|
||
No idea, but it's worth trying. Again, it's looking to me like some differing versions of libs are being statically linked there.
Comment 14•20 years ago
|
||
It looks like the function prototype was missing or not being seen as it appears to be defaulting to a type of int. Has anyone else had any problems with debug builds on FireFox? Or does anyone do them? At any rate, my build should be done in a few hours.
Assignee | ||
Comment 15•20 years ago
|
||
nsFrameState _is_ an int. "virtual unsigned int __stdcall" is the correct return type for that function on Windows.
Comment 16•20 years ago
|
||
Build succeeded but it crashes on startup in JSAPI.C on an assertion doing something with the maximum number of threads. I guess I'll have to file another bug on that one as it's a new one for me. How do you guys do debugging? Do you have a debug image that works somewhere?
http://www.mozilla.org/community/developer-forums.html#mozilla-builds is a much better forum than this bug for build questions
Assignee | ||
Comment 18•20 years ago
|
||
Michael, don't you think I maybe compiled and tested this patch to debug-only code in a debug build before checking it into the tree and all?
Comment 19•20 years ago
|
||
(In reply to comment #17) > http://www.mozilla.org/community/developer-forums.html#mozilla-builds is a much > better forum than this bug for build questions I hang out on the FireFox build board and generally post problems like this. When it comes to debug builds, there may be one or two others out there that have expressed interest in these for debugging problems but most folks say nothing in response to problems that you have for debug builds. There are lots of times when you won't get much response for regular builds. Some of the regular builders get tired and sometimes you have to spend a few days of hand-holding to get someone through their first build. (In reply to comment #18) > Michael, don't you think I maybe compiled and tested this patch to debug-only > code in a debug build before checking it into the tree and all? I've worked with hundreds of engineers over the last almost 20 years and I'd have to say that habits of developers vary widely. At any rate, debug builds (for the whole project anyways) are broken from my point of view. All I have available is to file bugs or report it in the build forums. Both of these approaches haven't yielded much in the way of returns. That leaves me with changing code or being good at reading assembler in trying to diagnose problems. Now it would seem to me that the organization would want as many as possible to have the capability to debug problems on their own. Especially for those websites that require a membership or subscription cost making it inconvenient for developers to try to debug these types of problems. This may be the wrong place to discuss these matters. Perhaps you'd prefer to discuss them on the FireFox build forum. I have a few topics posted on debug problems in addition to mentioning them in my builds post.
DEBUG builds work for everyone else.
Assignee | ||
Comment 21•20 years ago
|
||
Michael, I assume you've done a clobber build?
Comment 22•20 years ago
|
||
(In reply to comment #21) > Michael, I assume you've done a clobber build? I am unfamiliar with the term.
QA Contact: core.layout.misc-code → nobody
Updated•6 years ago
|
Product: Core → Core Graveyard
Updated•6 years ago
|
Component: Layout: Misc Code → Layout
Product: Core Graveyard → Core
You need to log in
before you can comment on or make changes to this bug.
Description
•