code: func (m *Mock) Called(arguments ...interface{}) Arguments {
  	// get the calling function's name
  	pc, _, _, ok := runtime.Caller(1)
  	if !ok {
  		panic("Couldn't get the caller information")
  	}
  	functionPath := runtime.FuncForPC(pc).Name()
  	//Next four lines are required to use GCCGO function naming conventions.
  	//For Ex:  github_com_docker_libkv_store_mock.WatchTree.pN39_github_com_docker_libkv_store_mock.Mock
  	//uses interface information unlike golang github.com/docker/libkv/store/mock.(*Mock).WatchTree
  	//With GCCGO we need to remove interface information starting from pN<dd>.
  	re := regexp.MustCompile("\\.pN\\d+_")
  	if re.MatchString(functionPath) {
  		functionPath = re.Split(functionPath, -1)[0]
  	}
  	parts := strings.Split(functionPath, ".")
  	functionName := parts[len(parts)-1]
  	return m.MethodCalled(functionName, arguments...)
  }
docs: // Called tells the mock object that a method has been called, and gets an array
  // of arguments to return.  Panics if the call is unexpected (i.e. not preceded by
  // appropriate .On .Return() calls)
  // If Call.WaitFor is set, blocks until the channel is closed or receives a message.