Make your own free website on Tripod.com

rgdAnalyze

rgdAnalyze is a Perl script that extracts style data mismatches from Mozilla layout regression test verification results. For example, it reads this:

file:///home/fantasai/moz/mozilla/layout/html/tests/table/bugs/bug2123.html: done loading (283 msec)
frame style data mismatch: |null attr|0 0 3 3 12632256 0 0  1  1.000000|left: 0[0x0]tw top: 0[0x0]tw right: 0[0x0]tw bottom: 0[0x0]tw  left: 0[0x0]tw top: 0[0x0]tw right: 0[0x0]tw bottom: 0[0x0]tw  left: 1[0x1]enum top: 1[0x1]enum right: 1[0x1]enum bottom: 1[0x1]enum  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Inherit top: Inherit right: Inherit bottom: Inherit  Auto  0[0x0]tw  Null  0[0x0]tw  0[0x0]tw  Null  0 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 8 0 0 0 0 1 0 1 0 0 0 0|0 0 4 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto   vs. |null attr|-16777216 0 3 3 12632256 0 0  1  1.000000|left: 0[0x0]tw top: 0[0x0]tw right: 0[0x0]tw bottom: 0[0x0]tw  left: 0[0x0]tw top: 0[0x0]tw right: 0[0x0]tw bottom: 0[0x0]tw  left: 1[0x1]enum top: 1[0x1]enum right: 1[0x1]enum bottom: 1[0x1]enum  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Inherit top: Inherit right: Inherit bottom: Inherit  Auto  0[0x0]tw  Null  0[0x0]tw  0[0x0]tw  Null  0 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 8 0 0 0 0 1 0 1 0 0 0 0|0 0 4 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto  
frame style data mismatch: |null attr|0 0 2 3 -16777216 0 0  1  1.000000|left: Null top: 0[0x0]tw right: Null bottom: 0[0x0]tw  left: Null top: Null right: Null bottom: Null  left: 0[0x0]tw top: 0[0x0]tw right: 0[0x0]tw bottom: 0[0x0]tw  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Auto top: Auto right: Auto bottom: Auto  7125[0x1bd5]tw  0[0x0]tw  Null  Auto  0[0x0]tw  Null  2 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 8 0 0 0 0 1 0 0 0 0 0 0|0 0 0 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto   vs. |null attr|-16777216 0 2 3 -16777216 0 0  1  1.000000|left: Null top: 0[0x0]tw right: Null bottom: 0[0x0]tw  left: Null top: Null right: Null bottom: Null  left: 0[0x0]tw top: 0[0x0]tw right: 0[0x0]tw bottom: 0[0x0]tw  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Auto top: Auto right: Auto bottom: Auto  7125[0x1bd5]tw  0[0x0]tw  Null  Auto  0[0x0]tw  Null  2 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 8 0 0 0 0 1 0 0 0 0 0 0|0 0 0 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto  
frame style data mismatch: |null attr|0 0 3 3 12632256 0 0  1  1.000000|left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  left: 1[0x1]enum top: 1[0x1]enum right: 1[0x1]enum bottom: 1[0x1]enum  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Auto top: Auto right: Auto bottom: Auto  Auto  0[0x0]tw  Null  Auto  0[0x0]tw  Null  0 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 12 0 0 0 0 1 0 0 0 0 0 0|0 0 4 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto   vs. |null attr|-16777216 0 3 3 12632256 0 0  1  1.000000|left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  left: 1[0x1]enum top: 1[0x1]enum right: 1[0x1]enum bottom: 1[0x1]enum  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Auto top: Auto right: Auto bottom: Auto  Auto  0[0x0]tw  Null  Auto  0[0x0]tw  Null  0 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 12 0 0 0 0 1 0 0 0 0 0 0|0 0 4 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto  
frame style data mismatch: |null attr|0 0 3 3 12632256 0 0  1  1.000000|left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  left: 1[0x1]enum top: 1[0x1]enum right: 1[0x1]enum bottom: 1[0x1]enum  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Auto top: Auto right: Auto bottom: Auto  Auto  0[0x0]tw  Null  Auto  0[0x0]tw  Null  0 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 11 0 0 0 0 1 0 0 0 0 0 0|0 0 4 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto   vs. |null attr|-16777216 0 3 3 12632256 0 0  1  1.000000|left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  left: 1[0x1]enum top: 1[0x1]enum right: 1[0x1]enum bottom: 1[0x1]enum  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Auto top: Auto right: Auto bottom: Auto  Auto  0[0x0]tw  Null  Auto  0[0x0]tw  Null  0 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 11 0 0 0 0 1 0 0 0 0 0 0|0 0 4 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto  
frame style data mismatch: |null attr|0 0 3 3 12632256 0 0  1  1.000000|left: 0[0x0]tw top: 0[0x0]tw right: 0[0x0]tw bottom: 0[0x0]tw  left: 0[0x0]tw top: 0[0x0]tw right: 0[0x0]tw bottom: 0[0x0]tw  left: 1[0x1]enum top: 1[0x1]enum right: 1[0x1]enum bottom: 1[0x1]enum  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Inherit top: Inherit right: Inherit bottom: Inherit  Auto  0[0x0]tw  Null  0[0x0]tw  0[0x0]tw  Null  0 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 8 0 0 0 0 1 0 1 0 0 0 0|0 0 4 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto   vs. |null attr|-16777216 0 3 3 12632256 0 0  1  1.000000|left: 0[0x0]tw top: 0[0x0]tw right: 0[0x0]tw bottom: 0[0x0]tw  left: 0[0x0]tw top: 0[0x0]tw right: 0[0x0]tw bottom: 0[0x0]tw  left: 1[0x1]enum top: 1[0x1]enum right: 1[0x1]enum bottom: 1[0x1]enum  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Inherit top: Inherit right: Inherit bottom: Inherit  Auto  0[0x0]tw  Null  0[0x0]tw  0[0x0]tw  Null  0 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 8 0 0 0 0 1 0 1 0 0 0 0|0 0 4 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto  
frame style data mismatch: |null attr|0 0 2 3 -6974059 0 0  1  1.000000|left: Null top: 0[0x0]tw right: Null bottom: 0[0x0]tw  left: Null top: Null right: Null bottom: Null  left: 0[0x0]tw top: 0[0x0]tw right: 0[0x0]tw bottom: 0[0x0]tw  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Auto top: Auto right: Auto bottom: Auto  7125[0x1bd5]tw  0[0x0]tw  Null  Auto  0[0x0]tw  Null  2 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 8 0 0 0 0 1 0 0 0 0 0 0|1 0 0 1 0[0x0]tw  0[0x0]tw  60[0x3c]tw  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto   vs. |null attr|-16777216 0 2 3 -6974059 0 0  1  1.000000|left: Null top: 0[0x0]tw right: Null bottom: 0[0x0]tw  left: Null top: Null right: Null bottom: Null  left: 0[0x0]tw top: 0[0x0]tw right: 0[0x0]tw bottom: 0[0x0]tw  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Auto top: Auto right: Auto bottom: Auto  7125[0x1bd5]tw  0[0x0]tw  Null  Auto  0[0x0]tw  Null  2 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 8 0 0 0 0 1 0 0 0 0 0 0|1 0 0 1 0[0x0]tw  0[0x0]tw  60[0x3c]tw  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto  
frame style data mismatch: |null attr|0 0 3 3 12632256 0 0  1  1.000000|left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  left: 1[0x1]enum top: 1[0x1]enum right: 1[0x1]enum bottom: 1[0x1]enum  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Auto top: Auto right: Auto bottom: Auto  Auto  0[0x0]tw  Null  Auto  0[0x0]tw  Null  0 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 12 0 0 0 0 1 0 0 0 0 0 0|0 0 4 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto   vs. |null attr|-16777216 0 3 3 12632256 0 0  1  1.000000|left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  left: 1[0x1]enum top: 1[0x1]enum right: 1[0x1]enum bottom: 1[0x1]enum  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Auto top: Auto right: Auto bottom: Auto  Auto  0[0x0]tw  Null  Auto  0[0x0]tw  Null  0 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 12 0 0 0 0 1 0 0 0 0 0 0|0 0 4 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto  
frame style data mismatch: |null attr|0 0 3 3 12632256 0 0  1  1.000000|left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  left: 1[0x1]enum top: 1[0x1]enum right: 1[0x1]enum bottom: 1[0x1]enum  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Auto top: Auto right: Auto bottom: Auto  Auto  0[0x0]tw  Null  Auto  0[0x0]tw  Null  0 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 11 0 0 0 0 1 0 0 0 0 0 0|0 0 4 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto   vs. |null attr|-16777216 0 3 3 12632256 0 0  1  1.000000|left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  left: 1[0x1]enum top: 1[0x1]enum right: 1[0x1]enum bottom: 1[0x1]enum  left: Null top: Null right: Null bottom: Null  left: Null top: Null right: Null bottom: Null  1[0x1]enum 0|100 100 |0 left: Auto top: Auto right: Auto bottom: Auto  Auto  0[0x0]tw  Null  Auto  0[0x0]tw  Null  0 Auto  |0 0 0 0 Normal  Normal  0[0x0]tw  Normal  10[0xa]enum  |0 11 0 0 0 0 1 0 0 0 0 0 0|0 0 4 1 0[0x0]tw  0[0x0]tw  Null  0 0 -1 1 Null  |0 0 0 0 Null  |3 0 7 0 0 4 |0 0 0  2 2 0 Auto  
regression test verify/bug2123.rgd passed

and prints this:

file:///home/fantasai/moz/mozilla/layout/html/tests/table/bugs/bug2123.html: done loading (283 msec)
[2,1] 0 ne -16777216
[2,1] 0 ne -16777216
[2,1] 0 ne -16777216
[2,1] 0 ne -16777216
[2,1] 0 ne -16777216
[2,1] 0 ne -16777216
[2,1] 0 ne -16777216
[2,1] 0 ne -16777216
regression test verify/bug2123.rgd passed

All other information is discarded in the output. (The original file remains intact.) After all the tests have been "analyzed", the script outputs the "net" style mismatches--a list of all style mismatches encountered in any test with duplicates removed. The above would be simply:

[2,1] 0 ne -16777216
Source of rgdAnalyze - download & change/remove the extension. If you're on a Unix system, check the first line to make sure it corresponds to the location of your Perl interpreter (which may not be the same as mine) and give the script executable permission.

To figure out which property corresponds to [2,1] (second group, first item), look in the DumpRegressionData function in nsStyleContext.cpp. For instance, [2,1] corresponds to Color.mColor.

Bug reports, suggestions, questions, comments, etc. to fantasai at escape.com
(fantasai@yahoo.com also works, but I rarely check that address)