README.mdmodules.txt
client
core
go.modgo.sumk8s
vendor
cloud.google.com
go
github.com
go-logr
go-ping
google
gofuzz
prometheus
client_golang
prometheus
common
expfmt
procfs
spf13
golang.org
x
crypto
ssh
terminal
net
http2
icmp
dstunreach.goecho.goendpoint.goextension.gohelper_posix.gointerface.goipv4.goipv6.golisten_posix.golisten_stub.gomessage.gomessagebody.gompls.gomultipart.gopackettoobig.goparamprob.gosys_freebsd.gotimeexceeded.go
idna
internal
socket
cmsghdr.gocmsghdr_stub.gocmsghdr_unix.gocmsghdr_zos_s390x.goerror_unix.goiovec_64bit.goiovec_stub.gomsghdr_stub.gomsghdr_zos_s390x.gorawconn_msg.gorawconn_nomsg.gosocket.gosys.gosys_bsdvar.gosys_const_zos.gosys_darwin.gosys_dragonfly.gosys_go1_11_darwin.gosys_linux.gosys_linux_386.gosys_linux_s390x.gosys_posix.gosys_solaris.gosys_stub.gozsys_aix_ppc64.gozsys_darwin_386.gozsys_darwin_amd64.gozsys_darwin_arm.gozsys_darwin_arm64.gozsys_dragonfly_amd64.gozsys_freebsd_386.gozsys_freebsd_amd64.gozsys_freebsd_arm.gozsys_freebsd_arm64.gozsys_linux_386.gozsys_linux_amd64.gozsys_linux_arm.gozsys_linux_arm64.gozsys_linux_mips.gozsys_linux_mips64.gozsys_linux_mips64le.gozsys_linux_mipsle.gozsys_linux_ppc64.gozsys_linux_ppc64le.gozsys_linux_riscv64.gozsys_linux_s390x.gozsys_netbsd_386.gozsys_netbsd_amd64.gozsys_netbsd_arm.gozsys_netbsd_arm64.gozsys_openbsd_386.gozsys_openbsd_amd64.gozsys_openbsd_arm.gozsys_openbsd_arm64.gozsys_solaris_amd64.go
ipv4
ipv6
oauth2
sys
unix
asm_aix_ppc64.sasm_darwin_386.sasm_darwin_amd64.sasm_darwin_arm.sasm_darwin_arm64.sasm_dragonfly_amd64.sasm_freebsd_386.sasm_freebsd_amd64.sasm_freebsd_arm.sasm_freebsd_arm64.sasm_linux_386.sasm_linux_amd64.sasm_linux_arm.sasm_linux_arm64.sasm_linux_mips64x.sasm_linux_mipsx.sasm_linux_ppc64x.sasm_linux_riscv64.sasm_linux_s390x.sasm_netbsd_386.sasm_netbsd_amd64.sasm_netbsd_arm.sasm_netbsd_arm64.sasm_openbsd_386.sasm_openbsd_amd64.sasm_openbsd_arm.sasm_openbsd_arm64.sasm_openbsd_mips64.sasm_solaris_amd64.sendian_big.goendian_little.gofcntl_linux_32bit.gomkerrors.shsyscall.gosyscall_aix.gosyscall_bsd.gosyscall_darwin.1_13.gosyscall_darwin.gosyscall_darwin_386.gosyscall_darwin_amd64.gosyscall_darwin_arm.gosyscall_darwin_arm64.gosyscall_dragonfly.gosyscall_freebsd.gosyscall_linux.gosyscall_linux_386.gosyscall_linux_amd64_gc.gosyscall_linux_gc.gosyscall_linux_gc_386.gosyscall_linux_gc_arm.gosyscall_netbsd.gosyscall_openbsd.gosyscall_solaris.gosyscall_unix_gc.gosyscall_unix_gc_ppc64x.gotimestruct.gozerrors_darwin_386.gozerrors_darwin_amd64.gozerrors_darwin_arm.gozerrors_darwin_arm64.gozerrors_dragonfly_amd64.gozerrors_linux.gozerrors_linux_386.gozerrors_linux_amd64.gozerrors_linux_arm.gozerrors_linux_arm64.gozerrors_linux_mips.gozerrors_linux_mips64.gozerrors_linux_mips64le.gozerrors_linux_mipsle.gozerrors_linux_ppc64.gozerrors_linux_ppc64le.gozerrors_linux_riscv64.gozerrors_linux_s390x.gozerrors_linux_sparc64.gozerrors_solaris_amd64.gozsyscall_aix_ppc64_gc.gozsyscall_darwin_386.1_13.gozsyscall_darwin_386.gozsyscall_darwin_386.szsyscall_darwin_amd64.1_13.gozsyscall_darwin_amd64.gozsyscall_darwin_amd64.szsyscall_darwin_arm.1_13.gozsyscall_darwin_arm.gozsyscall_darwin_arm64.1_13.gozsyscall_darwin_arm64.gozsyscall_darwin_arm64.szsyscall_dragonfly_amd64.gozsysnum_darwin_386.gozsysnum_darwin_amd64.gozsysnum_darwin_arm.gozsysnum_darwin_arm64.gozsysnum_dragonfly_amd64.gozsysnum_linux_386.gozsysnum_linux_amd64.gozsysnum_linux_arm.gozsysnum_linux_arm64.gozsysnum_linux_mips.gozsysnum_linux_mips64.gozsysnum_linux_mips64le.gozsysnum_linux_mipsle.gozsysnum_linux_ppc64.gozsysnum_linux_ppc64le.gozsysnum_linux_riscv64.gozsysnum_linux_s390x.gozsysnum_linux_sparc64.goztypes_aix_ppc.goztypes_aix_ppc64.goztypes_darwin_386.goztypes_darwin_amd64.goztypes_darwin_arm.goztypes_darwin_arm64.goztypes_dragonfly_amd64.goztypes_freebsd_386.goztypes_freebsd_amd64.goztypes_freebsd_arm.goztypes_freebsd_arm64.goztypes_linux.goztypes_linux_386.goztypes_linux_amd64.goztypes_linux_arm.goztypes_linux_arm64.goztypes_linux_mips.goztypes_linux_mips64.goztypes_linux_mips64le.goztypes_linux_mipsle.goztypes_linux_ppc64.goztypes_linux_ppc64le.goztypes_linux_riscv64.goztypes_linux_s390x.goztypes_linux_sparc64.goztypes_netbsd_386.goztypes_netbsd_amd64.goztypes_netbsd_arm.goztypes_netbsd_arm64.goztypes_openbsd_386.goztypes_openbsd_amd64.goztypes_openbsd_arm.goztypes_openbsd_arm64.goztypes_openbsd_mips64.goztypes_solaris_amd64.go
windows
term
AUTHORSCONTRIBUTING.mdCONTRIBUTORSLICENSEPATENTSREADME.mdgo.modgo.sumterm.goterm_plan9.goterm_solaris.goterm_unix.goterm_unix_aix.goterm_unix_bsd.goterm_unix_linux.goterm_unix_zos.goterm_unsupported.goterm_windows.goterminal.go
text
transform
unicode
time
rate
google.golang.org
appengine
gopkg.in
k8s.io
api
admissionregistration
v1
doc.gogenerated.pb.gogenerated.protoregister.gotypes.gotypes_swagger_doc_generated.gozz_generated.deepcopy.go
v1beta1
apps
v1
v1beta1
doc.gogenerated.pb.gogenerated.prototypes.gotypes_swagger_doc_generated.gozz_generated.deepcopy.gozz_generated.prerelease-lifecycle.go
v1beta2
auditregistration
v1alpha1
authentication
authorization
autoscaling
v1
v2beta1
doc.gogenerated.pb.gogenerated.prototypes.gotypes_swagger_doc_generated.gozz_generated.deepcopy.gozz_generated.prerelease-lifecycle.go
v2beta2
batch
v1
v1beta1
doc.gogenerated.pb.gogenerated.prototypes.gotypes_swagger_doc_generated.gozz_generated.deepcopy.gozz_generated.prerelease-lifecycle.go
v2alpha1
certificates
v1
doc.gogenerated.pb.gogenerated.protoregister.gotypes.gotypes_swagger_doc_generated.gozz_generated.deepcopy.go
v1beta1
coordination
v1
v1beta1
core
v1
discovery
v1alpha1
doc.gogenerated.pb.gogenerated.protoregister.gotypes.gotypes_swagger_doc_generated.gowell_known_labels.gozz_generated.deepcopy.go
v1beta1
events
v1
doc.gogenerated.pb.gogenerated.protoregister.gotypes.gotypes_swagger_doc_generated.gozz_generated.deepcopy.go
v1beta1
extensions
v1beta1
flowcontrol
v1alpha1
networking
v1
generated.pb.gogenerated.protoregister.gotypes.gotypes_swagger_doc_generated.gozz_generated.deepcopy.go
v1beta1
node
v1alpha1
v1beta1
policy
v1beta1
rbac
v1
v1alpha1
v1beta1
scheduling
v1
v1alpha1
v1beta1
settings
storage
apimachinery
pkg
api
errors
meta
resource
apis
meta
conversion
fields
labels
runtime
codec.gocodec_check.goconversion.goconverter.goembedded.goerror.gogenerated.pb.gohelper.gointerfaces.gomapper.gonegotiate.goregister.go
schema
scheme.goserializer
types.gotypes_proto.gozz_generated.deepcopy.goutil
clock
errors
intstr
json
naming
net
runtime
sets
validation
wait
yaml
watch
third_party
forked
golang
reflect
client-go
discovery
kubernetes
clientset.go
scheme
typed
admissionregistration
v1
admissionregistration_client.godoc.gogenerated_expansion.gomutatingwebhookconfiguration.govalidatingwebhookconfiguration.go
v1beta1
apps
v1
v1beta1
v1beta2
auditregistration
v1alpha1
authentication
v1
v1beta1
authorization
v1
authorization_client.gogenerated_expansion.golocalsubjectaccessreview.golocalsubjectaccessreview_expansion.goselfsubjectaccessreview.goselfsubjectaccessreview_expansion.goselfsubjectrulesreview.goselfsubjectrulesreview_expansion.gosubjectaccessreview.gosubjectaccessreview_expansion.go
v1beta1
autoscaling
v1
v2beta1
v2beta2
batch
certificates
v1
v1beta1
coordination
core
v1
componentstatus.goconfigmap.gocore_client.goendpoints.goevent.goevent_expansion.gogenerated_expansion.golimitrange.gonamespace.gonamespace_expansion.gonode.gonode_expansion.gopersistentvolume.gopersistentvolumeclaim.gopod.gopod_expansion.gopodtemplate.goreplicationcontroller.goresourcequota.gosecret.goservice.goserviceaccount.goserviceaccount_expansion.go
discovery
v1alpha1
v1beta1
events
v1
v1beta1
extensions
v1beta1
flowcontrol
networking
v1
v1beta1
node
policy
rbac
v1
v1alpha1
v1beta1
scheduling
v1
v1alpha1
v1beta1
settings
v1alpha1
storage
pkg
plugin
pkg
client
auth
rest
OWNERSclient.goconfig.goplugin.gorequest.gotransport.gourlbackoff.gowarnings.go
watch
zz_generated.deepcopy.gotools
auth
clientcmd
metrics
transport
util
klog
sigs.k8s.io
81
vendor/github.com/google/gofuzz/bytesource/bytesource.go
generated
vendored
Normal file
81
vendor/github.com/google/gofuzz/bytesource/bytesource.go
generated
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
/*
|
||||
Copyright 2014 Google Inc. 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 bytesource provides a rand.Source64 that is determined by a slice of bytes.
|
||||
package bytesource
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/binary"
|
||||
"io"
|
||||
"math/rand"
|
||||
)
|
||||
|
||||
// ByteSource implements rand.Source64 determined by a slice of bytes. The random numbers are
|
||||
// generated from each 8 bytes in the slice, until the last bytes are consumed, from which a
|
||||
// fallback pseudo random source is created in case more random numbers are required.
|
||||
// It also exposes a `bytes.Reader` API, which lets callers consume the bytes directly.
|
||||
type ByteSource struct {
|
||||
*bytes.Reader
|
||||
fallback rand.Source
|
||||
}
|
||||
|
||||
// New returns a new ByteSource from a given slice of bytes.
|
||||
func New(input []byte) *ByteSource {
|
||||
s := &ByteSource{
|
||||
Reader: bytes.NewReader(input),
|
||||
fallback: rand.NewSource(0),
|
||||
}
|
||||
if len(input) > 0 {
|
||||
s.fallback = rand.NewSource(int64(s.consumeUint64()))
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
func (s *ByteSource) Uint64() uint64 {
|
||||
// Return from input if it was not exhausted.
|
||||
if s.Len() > 0 {
|
||||
return s.consumeUint64()
|
||||
}
|
||||
|
||||
// Input was exhausted, return random number from fallback (in this case fallback should not be
|
||||
// nil). Try first having a Uint64 output (Should work in current rand implementation),
|
||||
// otherwise return a conversion of Int63.
|
||||
if s64, ok := s.fallback.(rand.Source64); ok {
|
||||
return s64.Uint64()
|
||||
}
|
||||
return uint64(s.fallback.Int63())
|
||||
}
|
||||
|
||||
func (s *ByteSource) Int63() int64 {
|
||||
return int64(s.Uint64() >> 1)
|
||||
}
|
||||
|
||||
func (s *ByteSource) Seed(seed int64) {
|
||||
s.fallback = rand.NewSource(seed)
|
||||
s.Reader = bytes.NewReader(nil)
|
||||
}
|
||||
|
||||
// consumeUint64 reads 8 bytes from the input and convert them to a uint64. It assumes that the the
|
||||
// bytes reader is not empty.
|
||||
func (s *ByteSource) consumeUint64() uint64 {
|
||||
var bytes [8]byte
|
||||
_, err := s.Read(bytes[:])
|
||||
if err != nil && err != io.EOF {
|
||||
panic("failed reading source") // Should not happen.
|
||||
}
|
||||
return binary.BigEndian.Uint64(bytes[:])
|
||||
}
|
Reference in New Issue
Block a user