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

Side by Side Diff: fuzzer/go/frontend/data/stacktrace_test.go

Issue 1660593006: Delete old catchsegv parsing tests from fuzzer (Closed) Base URL: https://skia.googlesource.com/buildbot@master
Patch Set: Created 4 years, 10 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 | « no previous file | fuzzer/go/frontend/data/testdata/parse-catchsegv-debug.dump » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 package data 1 package data
2 2
3 import ( 3 import (
4 "path/filepath" 4 "path/filepath"
5 "reflect" 5 "reflect"
6 "testing" 6 "testing"
7 7
8 "go.skia.org/infra/go/testutils" 8 "go.skia.org/infra/go/testutils"
9 ) 9 )
10 10
11 func TestParseReleaseDump(t *testing.T) { 11 func TestParseReleaseDump(t *testing.T) {
12 » testInput := testutils.MustReadFile("parse-release.dump") 12 » testInput := testutils.MustReadFile("parse-catchsegv-release.dump")
13 trace := ParseStackTrace(testInput) 13 trace := ParseStackTrace(testInput)
14 expected := StackTrace{ 14 expected := StackTrace{
15 Frames: []StackTraceFrame{ 15 Frames: []StackTraceFrame{
16 FullStackFrame("src/core/", "SkReadBuffer.cpp", "readFla ttenable", 344), 16 FullStackFrame("src/core/", "SkReadBuffer.cpp", "readFla ttenable", 344),
17 FullStackFrame("src/core/", "SkReadBuffer.h", "readFlatt enable", 130), 17 FullStackFrame("src/core/", "SkReadBuffer.h", "readFlatt enable", 130),
18 FullStackFrame("src/core/", "SkPictureData.cpp", "parseB ufferTag", 498), 18 FullStackFrame("src/core/", "SkPictureData.cpp", "parseB ufferTag", 498),
19 FullStackFrame("src/core/", "SkPictureData.cpp", "parseS treamTag", 424), 19 FullStackFrame("src/core/", "SkPictureData.cpp", "parseS treamTag", 424),
20 FullStackFrame("src/core/", "SkPictureData.cpp", "parseS tream", 580), 20 FullStackFrame("src/core/", "SkPictureData.cpp", "parseS tream", 580),
21 FullStackFrame("src/core/", "SkPicture.cpp", "CreateFrom Stream", 153), 21 FullStackFrame("src/core/", "SkPicture.cpp", "CreateFrom Stream", 153),
22 FullStackFrame("src/core/", "SkPictureData.cpp", "parseS treamTag", 392), 22 FullStackFrame("src/core/", "SkPictureData.cpp", "parseS treamTag", 392),
23 FullStackFrame("src/core/", "SkPictureData.cpp", "parseS tream", 580), 23 FullStackFrame("src/core/", "SkPictureData.cpp", "parseS tream", 580),
24 FullStackFrame("src/core/", "SkPicture.cpp", "CreateFrom Stream", 153), 24 FullStackFrame("src/core/", "SkPicture.cpp", "CreateFrom Stream", 153),
25 FullStackFrame("fuzzer_cache/src/", "parseskp.cpp", "too l_main", 41), 25 FullStackFrame("fuzzer_cache/src/", "parseskp.cpp", "too l_main", 41),
26 }, 26 },
27 } 27 }
28 if !reflect.DeepEqual(expected, trace) { 28 if !reflect.DeepEqual(expected, trace) {
29 t.Errorf("Expected %#v\nbut was %#v", expected, trace) 29 t.Errorf("Expected %#v\nbut was %#v", expected, trace)
30 } 30 }
31 } 31 }
32 32
33 func TestParseDebugDump(t *testing.T) { 33 func TestParseDebugDump(t *testing.T) {
34 » testInput := testutils.MustReadFile("parse-debug.dump") 34 » testInput := testutils.MustReadFile("parse-catchsegv-debug.dump")
35 35
36 trace := ParseStackTrace(testInput) 36 trace := ParseStackTrace(testInput)
37 37
38 expected := StackTrace{ 38 expected := StackTrace{
39 Frames: []StackTraceFrame{ 39 Frames: []StackTraceFrame{
40 FullStackFrame("src/core/", "SkReadBuffer.cpp", "readFla ttenable", 343), 40 FullStackFrame("src/core/", "SkReadBuffer.cpp", "readFla ttenable", 343),
41 FullStackFrame("src/core/", "SkReadBuffer.h", "readFlatt enable", 130), 41 FullStackFrame("src/core/", "SkReadBuffer.h", "readFlatt enable", 130),
42 FullStackFrame("src/core/", "SkReadBuffer.h", "readPathE ffect", 136), 42 FullStackFrame("src/core/", "SkReadBuffer.h", "readPathE ffect", 136),
43 FullStackFrame("src/core/", "SkPaint.cpp", "unflatten", 1971), 43 FullStackFrame("src/core/", "SkPaint.cpp", "unflatten", 1971),
44 FullStackFrame("src/core/", "SkReadBuffer.h", "readPaint ", 126), 44 FullStackFrame("src/core/", "SkReadBuffer.h", "readPaint ", 126),
(...skipping 10 matching lines...) Expand all
55 FullStackFrame("fuzzer_cache/src/", "parseskp.cpp", "too l_main", 41), 55 FullStackFrame("fuzzer_cache/src/", "parseskp.cpp", "too l_main", 41),
56 }, 56 },
57 } 57 }
58 58
59 if !reflect.DeepEqual(expected, trace) { 59 if !reflect.DeepEqual(expected, trace) {
60 t.Errorf("Expected %#v\nbut was %#v", expected, trace) 60 t.Errorf("Expected %#v\nbut was %#v", expected, trace)
61 } 61 }
62 } 62 }
63 63
64 func TestParsingEdgeCases(t *testing.T) { 64 func TestParsingEdgeCases(t *testing.T) {
65 » // This is a made up dump that has the edge cases for parsing. 65 » // This is a made up dump that has the edge cases for parsing function n ames.
66 » testInput := testutils.MustReadFile("parse-edge.dump") 66 » testInput := testutils.MustReadFile("parse-catchsegv-edge.dump")
67 trace := ParseStackTrace(testInput) 67 trace := ParseStackTrace(testInput)
68 expected := StackTrace{ 68 expected := StackTrace{
69 Frames: []StackTraceFrame{ 69 Frames: []StackTraceFrame{
70 FullStackFrame("src/codec/", "SkMasks.cpp", "convert_to_ 8", 54), 70 FullStackFrame("src/codec/", "SkMasks.cpp", "convert_to_ 8", 54),
71 FullStackFrame("src/codec/", "SkBmpMaskCodec.cpp", "deco deRows", 93), 71 FullStackFrame("src/codec/", "SkBmpMaskCodec.cpp", "deco deRows", 93),
72 FullStackFrame("src/core/", "SkClipStack.cpp", "Element: :updateBoundAndGenID", 483), 72 FullStackFrame("src/core/", "SkClipStack.cpp", "Element: :updateBoundAndGenID", 483),
73 FullStackFrame("src/core/", "SkClipStack.cpp", "pushElem ent", 719), 73 FullStackFrame("src/core/", "SkClipStack.cpp", "pushElem ent", 719),
74 FullStackFrame("dm/", "DMSrcSink.cpp", "SKPSrc::draw", 7 51), 74 FullStackFrame("dm/", "DMSrcSink.cpp", "SKPSrc::draw", 7 51),
75 FullStackFrame("src/core/", "SkReader32.h", "eof", 38), 75 FullStackFrame("src/core/", "SkReader32.h", "eof", 38),
76 FullStackFrame("src/core/", "SkTaskGroup.cpp", "ThreadPo ol::Wait", 88), 76 FullStackFrame("src/core/", "SkTaskGroup.cpp", "ThreadPo ol::Wait", 88),
(...skipping 11 matching lines...) Expand all
88 trace := ParseStackTrace("") 88 trace := ParseStackTrace("")
89 89
90 if !trace.IsEmpty() { 90 if !trace.IsEmpty() {
91 t.Errorf("Expected stacktrace to be empty but was %#v", trace) 91 t.Errorf("Expected stacktrace to be empty but was %#v", trace)
92 } 92 }
93 } 93 }
94 94
95 func stacktrace(file string) string { 95 func stacktrace(file string) string {
96 return filepath.Join("stacktrace", file) 96 return filepath.Join("stacktrace", file)
97 } 97 }
98
99 func TestParseDumpFilesCase0(t *testing.T) {
100 // Case 0, both debug and release dumped, due to an assertion error
101 debugDump := testutils.MustReadFile(stacktrace("case0_debug.dump"))
102 debugErr := testutils.MustReadFile(stacktrace("case0_debug.err"))
103 releaseDump := testutils.MustReadFile(stacktrace("case0_release.dump"))
104 releaseErr := testutils.MustReadFile(stacktrace("case0_release.err"))
105
106 result := ParseFuzzResult(debugDump, debugErr, releaseDump, releaseErr)
107 expectedFlags := DebugCrashed | ReleaseCrashed | DebugAssertionViolated | ReleaseOther
108 if result.Flags != expectedFlags {
109 t.Errorf("parsed Flags were wrong. Expected %s, but was %s", ex pectedFlags.String(), result.Flags.String())
110 }
111 }
112
113 func TestParseDumpFilesCase1(t *testing.T) {
114 // Case 1, both debug and release exist with partial success
115 debugDump := ""
116 debugErr := testutils.MustReadFile(stacktrace("case1_debug.err"))
117 releaseDump := ""
118 releaseErr := testutils.MustReadFile(stacktrace("case1_release.err"))
119
120 result := ParseFuzzResult(debugDump, debugErr, releaseDump, releaseErr)
121 expectedFlags := DebugFailedGracefully | ReleaseFailedGracefully
122
123 if result.Flags != expectedFlags {
124 t.Errorf("parsed Flags were wrong. Expected %s, but was %s", ex pectedFlags.String(), result.Flags.String())
125 }
126 }
127
128 func TestParseDumpFilesCase2(t *testing.T) {
129 // Case 2, debug dumped and hit an assertion, release timed out
130 debugDump := testutils.MustReadFile(stacktrace("case2_debug.dump"))
131 debugErr := testutils.MustReadFile(stacktrace("case2_debug.err"))
132 releaseDump := ""
133 releaseErr := ""
134
135 result := ParseFuzzResult(debugDump, debugErr, releaseDump, releaseErr)
136 expectedFlags := DebugCrashed | DebugAssertionViolated | ReleaseTimedOut
137 if result.Flags != expectedFlags {
138 t.Errorf("parsed Flags were wrong. Expected %s, but was %s", ex pectedFlags.String(), result.Flags.String())
139 }
140 }
141
142 func TestParseDumpFilesCase3(t *testing.T) {
143 // Case 3, both debug and release ran a bad malloc
144 debugDump := testutils.MustReadFile(stacktrace("case3_debug.dump"))
145 debugErr := testutils.MustReadFile(stacktrace("case3_debug.err"))
146 releaseDump := testutils.MustReadFile(stacktrace("case3_release.dump"))
147 releaseErr := testutils.MustReadFile(stacktrace("case3_release.err"))
148
149 result := ParseFuzzResult(debugDump, debugErr, releaseDump, releaseErr)
150 expectedFlags := DebugCrashed | DebugBadAlloc | ReleaseCrashed | Release BadAlloc
151 if result.Flags != expectedFlags {
152 t.Errorf("parsed Flags were wrong. Expected %s, but was %s", ex pectedFlags.String(), result.Flags.String())
153 }
154 }
155
156 func TestParseDumpFilesCase4(t *testing.T) {
157 // Case 4, both debug and release failed gracefully
158 debugDump := testutils.MustReadFile(stacktrace("case4_debug.dump"))
159 debugErr := testutils.MustReadFile(stacktrace("case4_debug.err"))
160 releaseDump := testutils.MustReadFile(stacktrace("case4_release.dump"))
161 releaseErr := testutils.MustReadFile(stacktrace("case4_release.err"))
162
163 result := ParseFuzzResult(debugDump, debugErr, releaseDump, releaseErr)
164 expectedFlags := DebugFailedGracefully | ReleaseFailedGracefully
165 if result.Flags != expectedFlags {
166 t.Errorf("parsed Flags were wrong. Expected %s, but was %s", ex pectedFlags.String(), result.Flags.String())
167 }
168 }
169
170 func TestParseDumpFilesCase5(t *testing.T) {
171 // Case 5, both debug and release crashed, but no stacktrace
172 debugDump := testutils.MustReadFile(stacktrace("case5_debug.dump"))
173 debugErr := testutils.MustReadFile(stacktrace("case5_debug.err"))
174 releaseDump := testutils.MustReadFile(stacktrace("case5_release.dump"))
175 releaseErr := testutils.MustReadFile(stacktrace("case5_release.err"))
176
177 result := ParseFuzzResult(debugDump, debugErr, releaseDump, releaseErr)
178 expectedFlags := DebugCrashed | ReleaseCrashed | DebugNoStackTrace | Rel easeNoStackTrace
179 if result.Flags != expectedFlags {
180 t.Errorf("parsed Flags were wrong. Expected %s, but was %s", ex pectedFlags.String(), result.Flags.String())
181 }
182 }
183
184 func TestParseDumpFilesCase6(t *testing.T) {
185 // Case 6, both debug and release timed out
186 debugDump := ""
187 debugErr := ""
188 releaseDump := ""
189 releaseErr := ""
190
191 result := ParseFuzzResult(debugDump, debugErr, releaseDump, releaseErr)
192 expectedFlags := DebugTimedOut | ReleaseTimedOut
193 if result.Flags != expectedFlags {
194 t.Errorf("parsed Flags were wrong. Expected %s, but was %s", ex pectedFlags.String(), result.Flags.String())
195 }
196 }
OLDNEW
« no previous file with comments | « no previous file | fuzzer/go/frontend/data/testdata/parse-catchsegv-debug.dump » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698