| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "platform/assert.h" | 5 #include "platform/assert.h" |
| 6 #include "vm/report.h" | 6 #include "vm/report.h" |
| 7 #include "vm/unit_test.h" | 7 #include "vm/unit_test.h" |
| 8 | 8 |
| 9 namespace dart { | 9 namespace dart { |
| 10 | 10 |
| 11 TEST_CASE(TraceJSWarning) { | 11 TEST_CASE(TraceJSWarning) { |
| 12 Isolate* isolate = Isolate::Current(); | 12 Isolate* isolate = Isolate::Current(); |
| 13 TraceBuffer::Init(isolate, 3); | 13 TraceBuffer::Init(isolate, 3); |
| 14 TraceBuffer* trace_buffer = isolate->trace_buffer(); | 14 TraceBuffer* trace_buffer = isolate->trace_buffer(); |
| 15 const String& url = String::Handle(isolate, String::New("Plug")); | 15 const String& url = String::Handle(isolate, String::New("Plug")); |
| 16 const String& source = String::Handle(isolate, String::New("240 100")); | 16 const String& source = String::Handle(isolate, String::New("240 100")); |
| 17 const Script& script = Script::Handle(isolate, | 17 const Script& script = Script::Handle(isolate, |
| 18 Script::New(url, source, RawScript::kScriptTag)); | 18 Script::New(url, source, RawScript::kEvaluateTag)); |
| 19 script.Tokenize(String::Handle(String::New(""))); | 19 script.Tokenize(String::Handle(String::New(""))); |
| 20 { | 20 { |
| 21 const intptr_t token_pos = 0; | 21 const intptr_t token_pos = 0; |
| 22 const char* message = "High Voltage"; | 22 const char* message = "High Voltage"; |
| 23 Report::MessageF(Report::kJSWarning, script, token_pos, "%s", message); | 23 Report::MessageF(Report::kJSWarning, script, token_pos, "%s", message); |
| 24 { | 24 { |
| 25 JSONStream js; | 25 JSONStream js; |
| 26 trace_buffer->PrintToJSONStream(&js); | 26 trace_buffer->PrintToJSONStream(&js); |
| 27 EXPECT_SUBSTRING("{\"type\":\"TraceBuffer\",\"members\":[" | 27 EXPECT_SUBSTRING("{\"type\":\"TraceBuffer\",\"members\":[" |
| 28 "{\"type\":\"TraceBufferEntry\",\"time\":", | 28 "{\"type\":\"TraceBufferEntry\",\"time\":", |
| 29 js.ToCString()); | 29 js.ToCString()); |
| 30 // Skip time. | 30 // Skip time. |
| 31 EXPECT_SUBSTRING("\"message\":{\"type\":\"JSCompatibilityWarning\"," | 31 EXPECT_SUBSTRING("\"message\":{\"type\":\"JSCompatibilityWarning\"," |
| 32 "\"script\":{\"type\":\"@Script\",\"fixedId\":true," | 32 "\"script\":{\"type\":\"@Script\"", |
| 33 "\"id\":\"libraries\\/-1\\/scripts\\/Plug\"," | 33 js.ToCString()); |
| 34 "\"uri\":\"Plug\"," | 34 // Skip object ring id. |
| 35 "\"_kind\":\"script\"},\"tokenPos\":0," | 35 EXPECT_SUBSTRING("\"uri\":\"Plug\"," |
| 36 "\"_kind\":\"evaluate\"},\"tokenPos\":0," |
| 36 "\"message\":{\"type\":\"@Instance\"", | 37 "\"message\":{\"type\":\"@Instance\"", |
| 37 js.ToCString()); | 38 js.ToCString()); |
| 38 // Skip private _OneByteString. | 39 // Skip private _OneByteString. |
| 39 EXPECT_SUBSTRING("\"valueAsString\":\"High Voltage\"", | 40 EXPECT_SUBSTRING("\"valueAsString\":\"High Voltage\"", |
| 40 js.ToCString()); | 41 js.ToCString()); |
| 41 } | 42 } |
| 42 } | 43 } |
| 43 { | 44 { |
| 44 const intptr_t token_pos = 1; | 45 const intptr_t token_pos = 1; |
| 45 const char* message = "Low Voltage"; | 46 const char* message = "Low Voltage"; |
| 46 Report::MessageF(Report::kJSWarning, script, token_pos, "%s", message); | 47 Report::MessageF(Report::kJSWarning, script, token_pos, "%s", message); |
| 47 } | 48 } |
| 48 EXPECT_EQ(2, trace_buffer->Length()); | 49 EXPECT_EQ(2, trace_buffer->Length()); |
| 49 EXPECT_SUBSTRING("{\"type\":\"JSCompatibilityWarning\",\"script\":{\"type\":" | 50 EXPECT_SUBSTRING("{\"type\":\"JSCompatibilityWarning\",\"script\":{\"type\":" |
| 50 "\"@Script\",\"fixedId\":true," | 51 "\"@Script\"", |
| 51 "\"id\":\"libraries\\/-1\\/scripts\\/Plug\"," | 52 trace_buffer->At(0)->message); |
| 52 "\"uri\":\"Plug\"," | 53 // Skip object ring id. |
| 53 "\"_kind\":\"script\"},\"tokenPos\":0," | 54 EXPECT_SUBSTRING("\"uri\":\"Plug\"," |
| 55 "\"_kind\":\"evaluate\"},\"tokenPos\":0," |
| 54 "\"message\":{\"type\":\"@Instance\"", | 56 "\"message\":{\"type\":\"@Instance\"", |
| 55 trace_buffer->At(0)->message); | 57 trace_buffer->At(0)->message); |
| 56 // Skip private _OneByteString. | 58 // Skip private _OneByteString. |
| 57 EXPECT_SUBSTRING("\"valueAsString\":\"High Voltage\"", | 59 EXPECT_SUBSTRING("\"valueAsString\":\"High Voltage\"", |
| 58 trace_buffer->At(0)->message); | 60 trace_buffer->At(0)->message); |
| 59 | 61 |
| 60 EXPECT_SUBSTRING("{\"type\":\"JSCompatibilityWarning\",\"script\":{\"type\":" | 62 EXPECT_SUBSTRING("{\"type\":\"JSCompatibilityWarning\",\"script\":{\"type\":" |
| 61 "\"@Script\",\"fixedId\":true," | 63 "\"@Script\"", |
| 62 "\"id\":\"libraries\\/-1\\/scripts\\/Plug\"," | 64 trace_buffer->At(1)->message); |
| 63 "\"uri\":\"Plug\"," | 65 // Skip object ring id. |
| 64 "\"_kind\":\"script\"},\"tokenPos\":1," | 66 EXPECT_SUBSTRING("\"uri\":\"Plug\"," |
| 67 "\"_kind\":\"evaluate\"},\"tokenPos\":1," |
| 65 "\"message\":{\"type\":\"@Instance\"", | 68 "\"message\":{\"type\":\"@Instance\"", |
| 66 trace_buffer->At(1)->message); | 69 trace_buffer->At(1)->message); |
| 67 // Skip private _OneByteString. | 70 // Skip private _OneByteString. |
| 68 EXPECT_SUBSTRING("\"valueAsString\":\"Low Voltage\"", | 71 EXPECT_SUBSTRING("\"valueAsString\":\"Low Voltage\"", |
| 69 trace_buffer->At(1)->message); | 72 trace_buffer->At(1)->message); |
| 70 | 73 |
| 71 delete trace_buffer; | 74 delete trace_buffer; |
| 72 } | 75 } |
| 73 | 76 |
| 74 } // namespace dart | 77 } // namespace dart |
| OLD | NEW |