Files
visor/pkg/tcpip/testutil/testutil_unsafe.go
Arthur SfezandgVisor bot 9bdc4370c0 Move multicounter testutil functions out of network/ip
This is in preparation of having aggregated NIC stats at the stack
level. These validation functions will be needed outside of the
network layer packages to test aggregated NIC stats.

PiperOrigin-RevId: 373180565
2021-05-11 10:25:33 -07:00

27 lines
922 B
Go

// Copyright 2020 The gVisor Authors.
//
// 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 testutil
import (
"reflect"
"unsafe"
)
// unsafeExposeUnexportedFields takes a Value and returns a version of it in
// which even unexported fields can be read and written.
func unsafeExposeUnexportedFields(a reflect.Value) reflect.Value {
return reflect.NewAt(a.Type(), unsafe.Pointer(a.UnsafeAddr())).Elem()
}