Bug 158623 - REGRESSION(r201928?) API test WTF.StringOperators failing
Summary: REGRESSION(r201928?) API test WTF.StringOperators failing
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-06-10 10:46 PDT by Ryan Haddad
Modified: 2016-06-10 11:41 PDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Haddad 2016-06-10 10:46:08 PDT
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)
Comment 1 Ryan Haddad 2016-06-10 10:48:58 PDT
Seems to have started with <http://trac.webkit.org/changeset/201928>
Comment 2 Brady Eidson 2016-06-10 10:54:21 PDT
...  huh?

How did that change cause this one?
Comment 3 Ryan Haddad 2016-06-10 10:55:29 PDT
(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
Comment 4 Brady Eidson 2016-06-10 11:04:10 PDT
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...?
Comment 5 Brady Eidson 2016-06-10 11:06:54 PDT
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.
Comment 6 Brady Eidson 2016-06-10 11:38:03 PDT
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.
Comment 7 Brady Eidson 2016-06-10 11:38:58 PDT
(Added in http://trac.webkit.org/changeset/90813)
Comment 8 Brady Eidson 2016-06-10 11:41:59 PDT
Fixed in http://trac.webkit.org/changeset/201932