Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: test/cctest/test-traced-value.cc

Issue 2628463002: [tracing] Use locale independent writer for FP values. (Closed)
Patch Set: update test Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/tracing/traced-value.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/tracing/traced-value.h" 5 #include "src/tracing/traced-value.h"
6 #include "test/cctest/cctest.h" 6 #include "test/cctest/cctest.h"
7 7
8 using v8::tracing::TracedValue; 8 using v8::tracing::TracedValue;
9 9
10 TEST(FlatDictionary) { 10 TEST(FlatDictionary) {
11 auto value = TracedValue::Create(); 11 auto value = TracedValue::Create();
12 value->SetInteger("int", 2014); 12 value->SetInteger("int", 2014);
13 value->SetDouble("double", 0.0); 13 value->SetDouble("double", 0.0);
14 value->SetBoolean("bool", true); 14 value->SetBoolean("bool", true);
15 value->SetString("string", "string"); 15 value->SetString("string", "string");
16 std::string json = "PREFIX"; 16 std::string json = "PREFIX";
17 value->AppendAsTraceFormat(&json); 17 value->AppendAsTraceFormat(&json);
18 CHECK_EQ( 18 CHECK_EQ(
19 "PREFIX{\"int\":2014,\"double\":0.000000,\"bool\":true,\"string\":" 19 "PREFIX{\"int\":2014,\"double\":0,\"bool\":true,\"string\":"
20 "\"string\"}", 20 "\"string\"}",
21 json); 21 json);
22 } 22 }
23 23
24 TEST(NoDotPathExpansion) { 24 TEST(NoDotPathExpansion) {
25 auto value = TracedValue::Create(); 25 auto value = TracedValue::Create();
26 value->SetInteger("in.t", 2014); 26 value->SetInteger("in.t", 2014);
27 value->SetDouble("doub.le", 0.0); 27 value->SetDouble("doub.le", -20.25);
28 value->SetBoolean("bo.ol", true); 28 value->SetBoolean("bo.ol", true);
29 value->SetString("str.ing", "str.ing"); 29 value->SetString("str.ing", "str.ing");
30 std::string json; 30 std::string json;
31 value->AppendAsTraceFormat(&json); 31 value->AppendAsTraceFormat(&json);
32 CHECK_EQ( 32 CHECK_EQ(
33 "{\"in.t\":2014,\"doub.le\":0.000000,\"bo.ol\":true,\"str.ing\":\"str." 33 "{\"in.t\":2014,\"doub.le\":-20.25,\"bo.ol\":true,\"str.ing\":\"str."
34 "ing\"}", 34 "ing\"}",
35 json); 35 json);
36 } 36 }
37 37
38 TEST(Hierarchy) { 38 TEST(Hierarchy) {
39 auto value = TracedValue::Create(); 39 auto value = TracedValue::Create();
40 value->SetInteger("i0", 2014); 40 value->SetInteger("i0", 2014);
41 value->BeginDictionary("dict1"); 41 value->BeginDictionary("dict1");
42 value->SetInteger("i1", 2014); 42 value->SetInteger("i1", 2014);
43 value->BeginDictionary("dict2"); 43 value->BeginDictionary("dict2");
44 value->SetBoolean("b2", false); 44 value->SetBoolean("b2", false);
45 value->EndDictionary(); 45 value->EndDictionary();
46 value->SetString("s1", "foo"); 46 value->SetString("s1", "foo");
47 value->EndDictionary(); 47 value->EndDictionary();
48 value->SetDouble("d0", 0.0); 48 value->SetDouble("d0", 0.0);
49 value->SetDouble("d1", 10.5);
49 value->SetBoolean("b0", true); 50 value->SetBoolean("b0", true);
50 value->BeginArray("a1"); 51 value->BeginArray("a1");
51 value->AppendInteger(1); 52 value->AppendInteger(1);
52 value->AppendBoolean(true); 53 value->AppendBoolean(true);
53 value->BeginDictionary(); 54 value->BeginDictionary();
54 value->SetInteger("i2", 3); 55 value->SetInteger("i2", 3);
55 value->EndDictionary(); 56 value->EndDictionary();
56 value->EndArray(); 57 value->EndArray();
57 value->SetString("s0", "foo"); 58 value->SetString("s0", "foo");
58 59
59 value->BeginArray("arr1"); 60 value->BeginArray("arr1");
60 value->BeginDictionary(); 61 value->BeginDictionary();
61 value->EndDictionary(); 62 value->EndDictionary();
62 value->BeginArray(); 63 value->BeginArray();
63 value->EndArray(); 64 value->EndArray();
64 value->BeginDictionary(); 65 value->BeginDictionary();
65 value->EndDictionary(); 66 value->EndDictionary();
66 value->EndArray(); 67 value->EndArray();
67 68
68 std::string json; 69 std::string json;
69 value->AppendAsTraceFormat(&json); 70 value->AppendAsTraceFormat(&json);
70 CHECK_EQ( 71 CHECK_EQ(
71 "{\"i0\":2014,\"dict1\":{\"i1\":2014,\"dict2\":{\"b2\":false}," 72 "{\"i0\":2014,\"dict1\":{\"i1\":2014,\"dict2\":{\"b2\":false},"
72 "\"s1\":\"foo\"},\"d0\":0.000000,\"b0\":true,\"a1\":[1,true,{\"i2\":3}]," 73 "\"s1\":\"foo\"},\"d0\":0,\"d1\":10.5,\"b0\":true,\"a1\":[1,true,{\"i2\":"
73 "\"s0\":\"foo\",\"arr1\":[{},[],{}]}", 74 "3}],\"s0\":\"foo\",\"arr1\":[{},[],{}]}",
74 json); 75 json);
75 } 76 }
76 77
77 TEST(LongStrings) { 78 TEST(LongStrings) {
78 std::string long_string = "supercalifragilisticexpialidocious"; 79 std::string long_string = "supercalifragilisticexpialidocious";
79 std::string long_string2 = "0123456789012345678901234567890123456789"; 80 std::string long_string2 = "0123456789012345678901234567890123456789";
80 char long_string3[4096]; 81 char long_string3[4096];
81 for (size_t i = 0; i < sizeof(long_string3); ++i) 82 for (size_t i = 0; i < sizeof(long_string3); ++i)
82 long_string3[i] = static_cast<char>('a' + (i % 26)); 83 long_string3[i] = static_cast<char>('a' + (i % 26));
83 long_string3[sizeof(long_string3) - 1] = '\0'; 84 long_string3[sizeof(long_string3) - 1] = '\0';
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 // as it fails to process # character on Windows. 117 // as it fails to process # character on Windows.
117 const char* expected = 118 const char* expected =
118 "{\"a\":\"abc\\\"\'\\\\\\\\x\\\"y\'z\\n\\t\\u0017\",\"b\":" 119 "{\"a\":\"abc\\\"\'\\\\\\\\x\\\"y\'z\\n\\t\\u0017\",\"b\":"
119 "\"\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\u0008\\t\\n\\u000B" 120 "\"\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\u0008\\t\\n\\u000B"
120 "\\u000C\\u000D\\u000E\\u000F\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\" 121 "\\u000C\\u000D\\u000E\\u000F\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\"
121 "u0016\\u0017\\u0018\\u0019\\u001A\\u001B\\u001C\\u001D\\u001E\\u001F " 122 "u0016\\u0017\\u0018\\u0019\\u001A\\u001B\\u001C\\u001D\\u001E\\u001F "
122 "!\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`" 123 "!\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`"
123 "abcdefghijklmnopqrstuvwxyz{|}~\177\"}"; 124 "abcdefghijklmnopqrstuvwxyz{|}~\177\"}";
124 CHECK_EQ(expected, json); 125 CHECK_EQ(expected, json);
125 } 126 }
OLDNEW
« no previous file with comments | « src/tracing/traced-value.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698