Skip to content
This repository was archived by the owner on Jun 30, 2023. It is now read-only.

Commit 48d70bf

Browse files
committed
jar: add benchmarks with 400mb_jar_in_jar.jar
Otherwise, the code path at the end of checkFile (for nested jars) is not excercised. In production, we see a decent number of these.
1 parent 9d3acee commit 48d70bf

File tree

1 file changed

+41
-29
lines changed

1 file changed

+41
-29
lines changed

jar/jar_test.go

+41-29
Original file line numberDiff line numberDiff line change
@@ -207,39 +207,51 @@ func TestInfiniteRecursion(t *testing.T) {
207207
}
208208

209209
func BenchmarkParse(b *testing.B) {
210-
filename := "safe1.jar"
211-
p := testdataPath(filename)
212-
zr, _, err := OpenReader(p)
213-
if err != nil {
214-
b.Fatalf("zip.OpenReader failed: %v", err)
215-
}
216-
defer zr.Close()
217-
b.ReportAllocs()
218-
for i := 0; i < b.N; i++ {
219-
_, err := Parse(&zr.Reader)
220-
if err != nil {
221-
b.Errorf("Scan() returned an unexpected error, got %v, want nil", err)
222-
}
210+
for _, filename := range [...]string{
211+
"400mb_jar_in_jar.jar",
212+
"safe1.jar",
213+
} {
214+
b.Run(filename, func(b *testing.B) {
215+
p := testdataPath(filename)
216+
zr, _, err := OpenReader(p)
217+
if err != nil {
218+
b.Fatalf("zip.OpenReader failed: %v", err)
219+
}
220+
defer zr.Close()
221+
b.ReportAllocs()
222+
for i := 0; i < b.N; i++ {
223+
_, err := Parse(&zr.Reader)
224+
if err != nil {
225+
b.Errorf("Scan() returned an unexpected error, got %v, want nil", err)
226+
}
227+
}
228+
})
223229
}
224230
}
225231

226232
func BenchmarkParseParallel(b *testing.B) {
227-
filename := "safe1.jar"
228-
p := testdataPath(filename)
229-
b.ReportAllocs()
230-
b.RunParallel(func(pb *testing.PB) {
231-
zr, _, err := OpenReader(p)
232-
if err != nil {
233-
b.Fatalf("zip.OpenReader failed: %v", err)
234-
}
235-
defer zr.Close()
236-
for pb.Next() {
237-
_, err := Parse(&zr.Reader)
238-
if err != nil {
239-
b.Errorf("Scan() returned an unexpected error, got %v, want nil", err)
240-
}
241-
}
242-
})
233+
for _, filename := range [...]string{
234+
"400mb_jar_in_jar.jar",
235+
"safe1.jar",
236+
} {
237+
b.Run(filename, func(b *testing.B) {
238+
p := testdataPath(filename)
239+
b.ReportAllocs()
240+
b.RunParallel(func(pb *testing.PB) {
241+
zr, _, err := OpenReader(p)
242+
if err != nil {
243+
b.Fatalf("zip.OpenReader failed: %v", err)
244+
}
245+
defer zr.Close()
246+
for pb.Next() {
247+
_, err := Parse(&zr.Reader)
248+
if err != nil {
249+
b.Errorf("Scan() returned an unexpected error, got %v, want nil", err)
250+
}
251+
}
252+
})
253+
})
254+
}
243255
}
244256

245257
func TestLog4jPattern(t *testing.T) {

0 commit comments

Comments
 (0)