hugo/tpl/internal/templatefuncRegistry_test.go
Ian Lance Taylor a8cb1b07b4 tpl: Fix test to pass with gccgo
When run under gccgo, the test looks for the name that gccgo gives to
a thunk method.  This name is not normally visible, but can be seen
when using reflect.FuncForPC as this code does.  That name changed in
https://golang.org/cl/89555.  Change the test to work with both the
old name "$thunk0" and the new name "thunk0".

Fixes golang/go#28669
2018-11-09 08:54:08 +01:00

39 lines
1,018 B
Go

// Copyright 2017 The Hugo Authors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package internal
import (
"runtime"
"testing"
"github.com/stretchr/testify/require"
)
type Test struct {
}
func (t *Test) MyTestMethod() string {
return "abcde"
}
func TestMethodToName(t *testing.T) {
test := &Test{}
if runtime.Compiler == "gccgo" {
require.Contains(t, methodToName(test.MyTestMethod), "thunk")
} else {
require.Equal(t, "MyTestMethod", methodToName(test.MyTestMethod))
}
}