Bug 158623
| Summary: | REGRESSION(r201928?) API test WTF.StringOperators failing | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Ryan Haddad <ryanhaddad> |
| Component: | New Bugs | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | beidson, ryanhaddad |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Ryan Haddad
API test WTF.StringOperators failing
<https://build.webkit.org/builders/Apple%20El%20Capitan%20Release%20WK2%20(Tests)/builds/6735/steps/run-api-tests/logs/stdio>
FAIL WTF.StringOperators
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:52
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
string + string
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:53
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
string + atomicString
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:54
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
atomicString + string
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:55
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
atomicString + atomicString
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:57
Value of: wtfStringCopyCount
Actual: 0
Expected: 1
"C string" + string
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:58
Value of: wtfStringCopyCount
Actual: 0
Expected: 1
string + "C string"
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:59
Value of: wtfStringCopyCount
Actual: 0
Expected: 1
"C string" + atomicString
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:60
Value of: wtfStringCopyCount
Actual: 0
Expected: 1
atomicString + "C string"
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:62
Value of: wtfStringCopyCount
Actual: 0
Expected: 1
literal + string
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:63
Value of: wtfStringCopyCount
Actual: 0
Expected: 1
string + literal
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:64
Value of: wtfStringCopyCount
Actual: 0
Expected: 1
literal + atomicString
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:65
Value of: wtfStringCopyCount
Actual: 0
Expected: 1
atomicString + literal
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:67
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + string + "C string" + string
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:68
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + (string + "C string" + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:69
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
("C string" + string) + ("C string" + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:70
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
string + "C string" + string + "C string"
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:71
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
string + ("C string" + string + "C string")
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:72
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(string + "C string") + (string + "C string")
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:74
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + string + literal + string
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:75
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + (string + literal + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:76
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(literal + string) + (literal + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:77
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
string + literal + string + literal
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:78
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
string + (literal + string + literal)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:79
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(string + literal) + (string + literal)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:81
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + string + "C string" + string
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:82
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + (string + "C string" + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:83
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(literal + string) + ("C string" + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:84
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + string + literal + string
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:85
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + (string + literal + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:86
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
("C string" + string) + (literal + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:88
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + atomicString + "C string" + atomicString
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:89
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + (atomicString + "C string" + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:90
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(literal + atomicString) + ("C string" + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:91
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + atomicString + literal + atomicString
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:92
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + (atomicString + literal + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:93
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
("C string" + atomicString) + (literal + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:95
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + atomicString + "C string" + string
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:96
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + (atomicString + "C string" + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:97
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(literal + atomicString) + ("C string" + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:98
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + atomicString + literal + string
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:99
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + (atomicString + literal + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:100
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
("C string" + atomicString) + (literal + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:102
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + string + "C string" + atomicString
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:103
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + (string + "C string" + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:104
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(literal + string) + ("C string" + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:105
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + string + literal + atomicString
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:106
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + (string + literal + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:107
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
("C string" + string) + (literal + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:109
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + atomicString + "C string" + atomicString
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:110
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + (atomicString + "C string" + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:111
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
("C string" + atomicString) + ("C string" + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:112
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
atomicString + "C string" + atomicString + "C string"
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:113
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
atomicString + ("C string" + atomicString + "C string")
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:114
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(atomicString + "C string") + (atomicString + "C string")
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:116
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + atomicString + literal + atomicString
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:117
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + (atomicString + literal + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:118
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(literal + atomicString) + (literal + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:119
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
atomicString + literal + atomicString + literal
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:120
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
atomicString + (literal + atomicString + literal)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:121
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(atomicString + literal) + (atomicString + literal)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:123
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + string + "C string" + atomicString
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:124
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + (string + "C string" + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:125
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
("C string" + string) + ("C string" + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:126
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
string + "C string" + atomicString + "C string"
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:127
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
string + ("C string" + atomicString + "C string")
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:128
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(string + "C string") + (atomicString + "C string")
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:130
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + string + literal + atomicString
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:131
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + (string + literal + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:132
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(literal + string) + (literal + atomicString)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:133
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
string + literal + atomicString + literal
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:134
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
string + (literal + atomicString + literal)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:135
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(string + literal) + (atomicString + literal)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:137
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + atomicString + "C string" + string
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:138
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
"C string" + (atomicString + "C string" + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:139
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
("C string" + atomicString) + ("C string" + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:140
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
atomicString + "C string" + string + "C string"
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:141
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
atomicString + ("C string" + string + "C string")
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:142
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(atomicString + "C string") + (string + "C string")
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:144
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + atomicString + literal + string
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:145
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
literal + (atomicString + literal + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:146
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(literal + atomicString) + (literal + string)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:147
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
atomicString + literal + string + literal
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:148
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
atomicString + (literal + string + literal)
/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:149
Value of: wtfStringCopyCount
Actual: 0
Expected: 2
(atomicString + literal) + (string + literal)
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Ryan Haddad
Seems to have started with <http://trac.webkit.org/changeset/201928>
Brady Eidson
... huh?
How did that change cause this one?
Ryan Haddad
(In reply to comment #2)
> ... huh?
>
> How did that change cause this one?
That isn't really clear to me either..
No failure on r201927
https://build.webkit.org/builders/Apple%20iOS%209%20Simulator%20Release%20WK2%20%28Tests%29/builds/6438
Failure on r201928
https://build.webkit.org/builders/Apple%20iOS%209%20Simulator%20Release%20WK2%20%28Tests%29/builds/6439
Brady Eidson
The weirdness that is "WTF_STRINGTYPEADAPTER_COPIED_WTF_STRING" is... weird.
This has something to do with the fact that it's not defined correctly when StringOperators.cpp is compiled.
It's bizarre that plenty of other tests include <wtf/text/WTFString.h> but only this new test triggered this issue...?
Brady Eidson
It has nothing to do with WTF_CrossThreadTask being *run...
It happens even if WTF_CrossThreadTask is *built* and includes WTFString.h
W.
T.
F.
Brady Eidson
WTF_STRINGTYPEADAPTER_COPIED_WTF_STRING is an abomination.
This was a bizarre linker error.
Apparently only *one file* in TestWebKitAPI is allowed to use string concatenation (which includes makeString, which my new test was using)
If any other file tries to use it, it will break WTF.StringOperators.
Brady Eidson
(Added in http://trac.webkit.org/changeset/90813)
Brady Eidson
Fixed in http://trac.webkit.org/changeset/201932