blob: 58d7570985be9776d5c79f7ea6017323155bb128 [file] [log] [blame]
Fumitoshi Ukaicc8d0cd2015-06-19 10:17:48 +09001// Copyright 2015 Google Inc. All rights reserved
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Fumitoshi Ukai744bb2b2015-06-25 00:10:52 +090015package kati
Fumitoshi Ukaicc8d0cd2015-06-19 10:17:48 +090016
17import (
18 "bytes"
19 "testing"
20)
21
22func BenchmarkFuncStrip(b *testing.B) {
23 strip := &funcStrip{
24 fclosure: fclosure{
25 args: []Value{
26 literal("(strip"),
27 literal("a b c "),
28 },
29 },
30 }
Fumitoshi Ukai744bb2b2015-06-25 00:10:52 +090031 ev := NewEvaluator(make(map[string]Var))
Fumitoshi Ukaicc8d0cd2015-06-19 10:17:48 +090032 var buf bytes.Buffer
Fumitoshi Ukaia44b7662015-06-19 11:07:07 +090033 b.ReportAllocs()
34 b.ResetTimer()
Fumitoshi Ukaicc8d0cd2015-06-19 10:17:48 +090035 for i := 0; i < b.N; i++ {
36 buf.Reset()
37 strip.Eval(&buf, ev)
38 }
39}
Fumitoshi Ukaice14acb2015-06-19 13:54:53 +090040
41func BenchmarkFuncSort(b *testing.B) {
42 sort := &funcSort{
43 fclosure: fclosure{
44 args: []Value{
45 literal("(sort"),
46 literal("foo bar lose"),
47 },
48 },
49 }
Fumitoshi Ukai744bb2b2015-06-25 00:10:52 +090050 ev := NewEvaluator(make(map[string]Var))
Fumitoshi Ukaice14acb2015-06-19 13:54:53 +090051 var buf bytes.Buffer
52 b.ReportAllocs()
53 b.ResetTimer()
54 for i := 0; i < b.N; i++ {
55 buf.Reset()
56 sort.Eval(&buf, ev)
57 }
58}
Fumitoshi Ukai77411fb2015-06-19 15:46:21 +090059
60func BenchmarkFuncPatsubst(b *testing.B) {
61 patsubst := &funcPatsubst{
62 fclosure: fclosure{
63 args: []Value{
64 literal("(patsubst"),
65 literal("%.java"),
66 literal("%.class"),
67 literal("foo.jar bar.java baz.h"),
68 },
69 },
70 }
Fumitoshi Ukai744bb2b2015-06-25 00:10:52 +090071 ev := NewEvaluator(make(map[string]Var))
Fumitoshi Ukai77411fb2015-06-19 15:46:21 +090072 var buf bytes.Buffer
73 b.ReportAllocs()
74 b.ResetTimer()
75 for i := 0; i < b.N; i++ {
76 buf.Reset()
77 patsubst.Eval(&buf, ev)
78 }
79}