diff options
Diffstat (limited to 'tunnel/winipcfg/types_test.go')
-rw-r--r-- | tunnel/winipcfg/types_test.go | 1057 |
1 files changed, 1057 insertions, 0 deletions
diff --git a/tunnel/winipcfg/types_test.go b/tunnel/winipcfg/types_test.go new file mode 100644 index 00000000..c7494e8c --- /dev/null +++ b/tunnel/winipcfg/types_test.go @@ -0,0 +1,1057 @@ +/* SPDX-License-Identifier: MIT + * + * Copyright (C) 2019 WireGuard LLC. All Rights Reserved. + */ + +package winipcfg + +import ( + "testing" + "unsafe" +) + +const ( + mibIPInterfaceRowSize = 168 + mibIPInterfaceRowInterfaceLUIDOffset = 8 + mibIPInterfaceRowInterfaceIndexOffset = 16 + mibIPInterfaceRowMaxReassemblySizeOffset = 20 + mibIPInterfaceRowInterfaceIdentifierOffset = 24 + mibIPInterfaceRowMinRouterAdvertisementIntervalOffset = 32 + mibIPInterfaceRowMaxRouterAdvertisementIntervalOffset = 36 + mibIPInterfaceRowAdvertisingEnabledOffset = 40 + mibIPInterfaceRowForwardingEnabledOffset = 41 + mibIPInterfaceRowWeakHostSendOffset = 42 + mibIPInterfaceRowWeakHostReceiveOffset = 43 + mibIPInterfaceRowUseAutomaticMetricOffset = 44 + mibIPInterfaceRowUseNeighborUnreachabilityDetectionOffset = 45 + mibIPInterfaceRowManagedAddressConfigurationSupportedOffset = 46 + mibIPInterfaceRowOtherStatefulConfigurationSupportedOffset = 47 + mibIPInterfaceRowAdvertiseDefaultRouteOffset = 48 + mibIPInterfaceRowRouterDiscoveryBehaviorOffset = 52 + mibIPInterfaceRowDadTransmitsOffset = 56 + mibIPInterfaceRowBaseReachableTimeOffset = 60 + mibIPInterfaceRowRetransmitTimeOffset = 64 + mibIPInterfaceRowPathMTUDiscoveryTimeoutOffset = 68 + mibIPInterfaceRowLinkLocalAddressBehaviorOffset = 72 + mibIPInterfaceRowLinkLocalAddressTimeoutOffset = 76 + mibIPInterfaceRowZoneIndicesOffset = 80 + mibIPInterfaceRowSitePrefixLengthOffset = 144 + mibIPInterfaceRowMetricOffset = 148 + mibIPInterfaceRowNLMTUOffset = 152 + mibIPInterfaceRowConnectedOffset = 156 + mibIPInterfaceRowSupportsWakeUpPatternsOffset = 157 + mibIPInterfaceRowSupportsNeighborDiscoveryOffset = 158 + mibIPInterfaceRowSupportsRouterDiscoveryOffset = 159 + mibIPInterfaceRowReachableTimeOffset = 160 + mibIPInterfaceRowTransmitOffloadOffset = 164 + mibIPInterfaceRowReceiveOffloadOffset = 165 + mibIPInterfaceRowDisableDefaultRoutesOffset = 166 + + mibIPInterfaceTableSize = 176 + mibIPInterfaceTableTableOffset = 8 + + mibIfRow2Size = 1352 + mibIfRow2InterfaceIndexOffset = 8 + mibIfRow2InterfaceGUIDOffset = 12 + mibIfRow2AliasOffset = 28 + mibIfRow2DescriptionOffset = 542 + mibIfRow2PhysicalAddressLengthOffset = 1056 + mibIfRow2PhysicalAddressOffset = 1060 + mibIfRow2PermanentPhysicalAddressOffset = 1092 + mibIfRow2MTUOffset = 1124 + mibIfRow2TypeOffset = 1128 + mibIfRow2TunnelTypeOffset = 1132 + mibIfRow2MediaTypeOffset = 1136 + mibIfRow2PhysicalMediumTypeOffset = 1140 + mibIfRow2AccessTypeOffset = 1144 + mibIfRow2DirectionTypeOffset = 1148 + mibIfRow2InterfaceAndOperStatusFlagsOffset = 1152 + mibIfRow2OperStatusOffset = 1156 + mibIfRow2AdminStatusOffset = 1160 + mibIfRow2MediaConnectStateOffset = 1164 + mibIfRow2NetworkGUIDOffset = 1168 + mibIfRow2ConnectionTypeOffset = 1184 + mibIfRow2TransmitLinkSpeedOffset = 1192 + mibIfRow2ReceiveLinkSpeedOffset = 1200 + mibIfRow2InOctetsOffset = 1208 + mibIfRow2InUcastPktsOffset = 1216 + mibIfRow2InNUcastPktsOffset = 1224 + mibIfRow2InDiscardsOffset = 1232 + mibIfRow2InErrorsOffset = 1240 + mibIfRow2InUnknownProtosOffset = 1248 + mibIfRow2InUcastOctetsOffset = 1256 + mibIfRow2InMulticastOctetsOffset = 1264 + mibIfRow2InBroadcastOctetsOffset = 1272 + mibIfRow2OutOctetsOffset = 1280 + mibIfRow2OutUcastPktsOffset = 1288 + mibIfRow2OutNUcastPktsOffset = 1296 + mibIfRow2OutDiscardsOffset = 1304 + mibIfRow2OutErrorsOffset = 1312 + mibIfRow2OutUcastOctetsOffset = 1320 + mibIfRow2OutMulticastOctetsOffset = 1328 + mibIfRow2OutBroadcastOctetsOffset = 1336 + mibIfRow2OutQLenOffset = 1344 + + mibIfTable2Size = 1360 + mibIfTable2TableOffset = 8 + + rawSockaddrInetSize = 28 + rawSockaddrInetDataOffset = 2 + + mibUnicastIPAddressRowSize = 80 + mibUnicastIPAddressRowInterfaceLUIDOffset = 32 + mibUnicastIPAddressRowInterfaceIndexOffset = 40 + mibUnicastIPAddressRowPrefixOriginOffset = 44 + mibUnicastIPAddressRowSuffixOriginOffset = 48 + mibUnicastIPAddressRowValidLifetimeOffset = 52 + mibUnicastIPAddressRowPreferredLifetimeOffset = 56 + mibUnicastIPAddressRowOnLinkPrefixLengthOffset = 60 + mibUnicastIPAddressRowSkipAsSourceOffset = 61 + mibUnicastIPAddressRowDadStateOffset = 64 + mibUnicastIPAddressRowScopeIDOffset = 68 + mibUnicastIPAddressRowCreationTimeStampOffset = 72 + + mibUnicastIPAddressTableSize = 88 + mibUnicastIPAddressTableTableOffset = 8 + + mibAnycastIPAddressRowSize = 48 + mibAnycastIPAddressRowInterfaceLUIDOffset = 32 + mibAnycastIPAddressRowInterfaceIndexOffset = 40 + mibAnycastIPAddressRowScopeIDOffset = 44 + + mibAnycastIPAddressTableSize = 56 + mibAnycastIPAddressTableTableOffset = 8 + + ipAddressPrefixSize = 32 + ipAddressPrefixPrefixLengthOffset = 28 + + mibIPforwardRow2Size = 104 + mibIPforwardRow2InterfaceIndexOffset = 8 + mibIPforwardRow2DestinationPrefixOffset = 12 + mibIPforwardRow2NextHopOffset = 44 + mibIPforwardRow2SitePrefixLengthOffset = 72 + mibIPforwardRow2ValidLifetimeOffset = 76 + mibIPforwardRow2PreferredLifetimeOffset = 80 + mibIPforwardRow2MetricOffset = 84 + mibIPforwardRow2ProtocolOffset = 88 + mibIPforwardRow2LoopbackOffset = 92 + mibIPforwardRow2AutoconfigureAddressOffset = 93 + mibIPforwardRow2PublishOffset = 94 + mibIPforwardRow2ImmortalOffset = 95 + mibIPforwardRow2AgeOffset = 96 + mibIPforwardRow2OriginOffset = 100 + + mibIPforwardTable2Size = 112 + mibIPforwardTable2TableOffset = 8 +) + +func TestIPAdapterWINSServerAddress(t *testing.T) { + s := IPAdapterWINSServerAddress{} + sp := uintptr(unsafe.Pointer(&s)) + const actualIPAdapterWINSServerAddressSize = unsafe.Sizeof(s) + + if actualIPAdapterWINSServerAddressSize != ipAdapterWINSServerAddressSize { + t.Errorf("Size of IPAdapterWINSServerAddress is %d, although %d is expected.", actualIPAdapterWINSServerAddressSize, ipAdapterWINSServerAddressSize) + } + + offset := uintptr(unsafe.Pointer(&s.Next)) - sp + if offset != ipAdapterWINSServerAddressNextOffset { + t.Errorf("IPAdapterWINSServerAddress.Next offset is %d although %d is expected", offset, ipAdapterWINSServerAddressNextOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Address)) - sp + if offset != ipAdapterWINSServerAddressAddressOffset { + t.Errorf("IPAdapterWINSServerAddress.Address offset is %d although %d is expected", offset, ipAdapterWINSServerAddressAddressOffset) + } +} + +func TestIPAdapterGatewayAddress(t *testing.T) { + s := IPAdapterGatewayAddress{} + sp := uintptr(unsafe.Pointer(&s)) + const actualIPAdapterGatewayAddressSize = unsafe.Sizeof(s) + + if actualIPAdapterGatewayAddressSize != ipAdapterGatewayAddressSize { + t.Errorf("Size of IPAdapterGatewayAddress is %d, although %d is expected.", actualIPAdapterGatewayAddressSize, ipAdapterGatewayAddressSize) + } + + offset := uintptr(unsafe.Pointer(&s.Next)) - sp + if offset != ipAdapterGatewayAddressNextOffset { + t.Errorf("IPAdapterGatewayAddress.Next offset is %d although %d is expected", offset, ipAdapterGatewayAddressNextOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Address)) - sp + if offset != ipAdapterGatewayAddressAddressOffset { + t.Errorf("IPAdapterGatewayAddress.Address offset is %d although %d is expected", offset, ipAdapterGatewayAddressAddressOffset) + } +} + +func TestIPAdapterDNSSuffix(t *testing.T) { + s := IPAdapterDNSSuffix{} + sp := uintptr(unsafe.Pointer(&s)) + const actualIPAdapterDNSSuffixSize = unsafe.Sizeof(s) + + if actualIPAdapterDNSSuffixSize != ipAdapterDNSSuffixSize { + t.Errorf("Size of IPAdapterDNSSuffix is %d, although %d is expected.", actualIPAdapterDNSSuffixSize, ipAdapterDNSSuffixSize) + } + + offset := uintptr(unsafe.Pointer(&s.str)) - sp + if offset != ipAdapterDNSSuffixStringOffset { + t.Errorf("IPAdapterDNSSuffix.str offset is %d although %d is expected", offset, ipAdapterDNSSuffixStringOffset) + } +} + +func TestInAdapterAddresses(t *testing.T) { + s := IPAdapterAddresses{} + sp := uintptr(unsafe.Pointer(&s)) + const actualIn6AddrSize = unsafe.Sizeof(s) + + if actualIn6AddrSize != ipAdapterAddressesSize { + t.Errorf("Size of IPAdapterAddresses is %d, although %d is expected.", actualIn6AddrSize, ipAdapterAddressesSize) + } + + offset := uintptr(unsafe.Pointer(&s.IfIndex)) - sp + if offset != ipAdapterAddressesIfIndexOffset { + t.Errorf("IPAdapterAddresses.IfIndex offset is %d although %d is expected", offset, ipAdapterAddressesIfIndexOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Next)) - sp + if offset != ipAdapterAddressesNextOffset { + t.Errorf("IPAdapterAddresses.Next offset is %d although %d is expected", offset, ipAdapterAddressesNextOffset) + } + + offset = uintptr(unsafe.Pointer(&s.adapterName)) - sp + if offset != ipAdapterAddressesAdapterNameOffset { + t.Errorf("IPAdapterAddresses.adapterName offset is %d although %d is expected", offset, ipAdapterAddressesAdapterNameOffset) + } + + offset = uintptr(unsafe.Pointer(&s.FirstUnicastAddress)) - sp + if offset != ipAdapterAddressesFirstUnicastAddressOffset { + t.Errorf("IPAdapterAddresses.FirstUnicastAddress offset is %d although %d is expected", offset, ipAdapterAddressesFirstUnicastAddressOffset) + } + + offset = uintptr(unsafe.Pointer(&s.FirstAnycastAddress)) - sp + if offset != ipAdapterAddressesFirstAnycastAddressOffset { + t.Errorf("IPAdapterAddresses.FirstAnycastAddress offset is %d although %d is expected", offset, ipAdapterAddressesFirstAnycastAddressOffset) + } + + offset = uintptr(unsafe.Pointer(&s.FirstMulticastAddress)) - sp + if offset != ipAdapterAddressesFirstMulticastAddressOffset { + t.Errorf("IPAdapterAddresses.FirstMulticastAddress offset is %d although %d is expected", offset, ipAdapterAddressesFirstMulticastAddressOffset) + } + + offset = uintptr(unsafe.Pointer(&s.FirstDNSServerAddress)) - sp + if offset != ipAdapterAddressesFirstDNSServerAddressOffset { + t.Errorf("IPAdapterAddresses.FirstDNSServerAddress offset is %d although %d is expected", offset, ipAdapterAddressesFirstDNSServerAddressOffset) + } + + offset = uintptr(unsafe.Pointer(&s.dnsSuffix)) - sp + if offset != ipAdapterAddressesDNSSuffixOffset { + t.Errorf("IPAdapterAddresses.DNSSuffix offset is %d although %d is expected", offset, ipAdapterAddressesDNSSuffixOffset) + } + + offset = uintptr(unsafe.Pointer(&s.description)) - sp + if offset != ipAdapterAddressesDescriptionOffset { + t.Errorf("IPAdapterAddresses.Description offset is %d although %d is expected", offset, ipAdapterAddressesDescriptionOffset) + } + + offset = uintptr(unsafe.Pointer(&s.friendlyName)) - sp + if offset != ipAdapterAddressesFriendlyNameOffset { + t.Errorf("IPAdapterAddresses.FriendlyName offset is %d although %d is expected", offset, ipAdapterAddressesFriendlyNameOffset) + } + + offset = uintptr(unsafe.Pointer(&s.physicalAddress)) - sp + if offset != ipAdapterAddressesPhysicalAddressOffset { + t.Errorf("IPAdapterAddresses.PhysicalAddress offset is %d although %d is expected", offset, ipAdapterAddressesPhysicalAddressOffset) + } + + offset = uintptr(unsafe.Pointer(&s.physicalAddressLength)) - sp + if offset != ipAdapterAddressesPhysicalAddressLengthOffset { + t.Errorf("IPAdapterAddresses.PhysicalAddressLength offset is %d although %d is expected", offset, ipAdapterAddressesPhysicalAddressLengthOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Flags)) - sp + if offset != ipAdapterAddressesFlagsOffset { + t.Errorf("IPAdapterAddresses.Flags offset is %d although %d is expected", offset, ipAdapterAddressesFlagsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.MTU)) - sp + if offset != ipAdapterAddressesMTUOffset { + t.Errorf("IPAdapterAddresses.MTU offset is %d although %d is expected", offset, ipAdapterAddressesMTUOffset) + } + + offset = uintptr(unsafe.Pointer(&s.IfType)) - sp + if offset != ipAdapterAddressesIfTypeOffset { + t.Errorf("IPAdapterAddresses.IfType offset is %d although %d is expected", offset, ipAdapterAddressesIfTypeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.OperStatus)) - sp + if offset != ipAdapterAddressesOperStatusOffset { + t.Errorf("IPAdapterAddresses.OperStatus offset is %d although %d is expected", offset, ipAdapterAddressesOperStatusOffset) + } + + offset = uintptr(unsafe.Pointer(&s.IPv6IfIndex)) - sp + if offset != ipAdapterAddressesIPv6IfIndexOffset { + t.Errorf("IPAdapterAddresses.IPv6IfIndex offset is %d although %d is expected", offset, ipAdapterAddressesIPv6IfIndexOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ZoneIndices)) - sp + if offset != ipAdapterAddressesZoneIndicesOffset { + t.Errorf("IPAdapterAddresses.ZoneIndices offset is %d although %d is expected", offset, ipAdapterAddressesZoneIndicesOffset) + } + + offset = uintptr(unsafe.Pointer(&s.FirstPrefix)) - sp + if offset != ipAdapterAddressesFirstPrefixOffset { + t.Errorf("IPAdapterAddresses.FirstPrefix offset is %d although %d is expected", offset, ipAdapterAddressesFirstPrefixOffset) + } + + offset = uintptr(unsafe.Pointer(&s.TransmitLinkSpeed)) - sp + if offset != ipAdapterAddressesTransmitLinkSpeedOffset { + t.Errorf("IPAdapterAddresses.TransmitLinkSpeed offset is %d although %d is expected", offset, ipAdapterAddressesTransmitLinkSpeedOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ReceiveLinkSpeed)) - sp + if offset != ipAdapterAddressesReceiveLinkSpeedOffset { + t.Errorf("IPAdapterAddresses.ReceiveLinkSpeed offset is %d although %d is expected", offset, ipAdapterAddressesReceiveLinkSpeedOffset) + } + + offset = uintptr(unsafe.Pointer(&s.FirstWINSServerAddress)) - sp + if offset != ipAdapterAddressesFirstWINSServerAddressOffset { + t.Errorf("IPAdapterAddresses.FirstWINSServerAddress offset is %d although %d is expected", offset, ipAdapterAddressesFirstWINSServerAddressOffset) + } + + offset = uintptr(unsafe.Pointer(&s.FirstGatewayAddress)) - sp + if offset != ipAdapterAddressesFirstGatewayAddressOffset { + t.Errorf("IPAdapterAddresses.FirstGatewayAddress offset is %d although %d is expected", offset, ipAdapterAddressesFirstGatewayAddressOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Ipv4Metric)) - sp + if offset != ipAdapterAddressesIPv4MetricOffset { + t.Errorf("IPAdapterAddresses.IPv4Metric offset is %d although %d is expected", offset, ipAdapterAddressesIPv4MetricOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Ipv6Metric)) - sp + if offset != ipAdapterAddressesIPv6MetricOffset { + t.Errorf("IPAdapterAddresses.IPv6Metric offset is %d although %d is expected", offset, ipAdapterAddressesIPv6MetricOffset) + } + + offset = uintptr(unsafe.Pointer(&s.LUID)) - sp + if offset != ipAdapterAddressesLUIDOffset { + t.Errorf("IPAdapterAddresses.LUID offset is %d although %d is expected", offset, ipAdapterAddressesLUIDOffset) + } + + offset = uintptr(unsafe.Pointer(&s.DHCPv4Server)) - sp + if offset != ipAdapterAddressesDHCPv4ServerOffset { + t.Errorf("IPAdapterAddresses.DHCPv4Server offset is %d although %d is expected", offset, ipAdapterAddressesDHCPv4ServerOffset) + } + + offset = uintptr(unsafe.Pointer(&s.CompartmentID)) - sp + if offset != ipAdapterAddressesCompartmentIDOffset { + t.Errorf("IPAdapterAddresses.CompartmentID offset is %d although %d is expected", offset, ipAdapterAddressesCompartmentIDOffset) + } + + offset = uintptr(unsafe.Pointer(&s.NetworkGUID)) - sp + if offset != ipAdapterAddressesNetworkGUIDOffset { + t.Errorf("IPAdapterAddresses.NetworkGUID offset is %d although %d is expected", offset, ipAdapterAddressesNetworkGUIDOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ConnectionType)) - sp + if offset != ipAdapterAddressesConnectionTypeOffset { + t.Errorf("IPAdapterAddresses.ConnectionType offset is %d although %d is expected", offset, ipAdapterAddressesConnectionTypeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.TunnelType)) - sp + if offset != ipAdapterAddressesTunnelTypeOffset { + t.Errorf("IPAdapterAddresses.TunnelType offset is %d although %d is expected", offset, ipAdapterAddressesTunnelTypeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.DHCPv6Server)) - sp + if offset != ipAdapterAddressesDHCPv6ServerOffset { + t.Errorf("IPAdapterAddresses.DHCPv6Server offset is %d although %d is expected", offset, ipAdapterAddressesDHCPv6ServerOffset) + } + + offset = uintptr(unsafe.Pointer(&s.dhcpv6ClientDUID)) - sp + if offset != ipAdapterAddressesDHCPv6ClientDUIDOffset { + t.Errorf("IPAdapterAddresses.DHCPv6ClientDUID offset is %d although %d is expected", offset, ipAdapterAddressesDHCPv6ClientDUIDOffset) + } + + offset = uintptr(unsafe.Pointer(&s.dhcpv6ClientDUIDLength)) - sp + if offset != ipAdapterAddressesDHCPv6ClientDUIDLengthOffset { + t.Errorf("IPAdapterAddresses.DHCPv6ClientDUIDLength offset is %d although %d is expected", offset, ipAdapterAddressesDHCPv6ClientDUIDLengthOffset) + } + + offset = uintptr(unsafe.Pointer(&s.DHCPv6IAID)) - sp + if offset != ipAdapterAddressesDHCPv6IAIDOffset { + t.Errorf("IPAdapterAddresses.DHCPv6IAID offset is %d although %d is expected", offset, ipAdapterAddressesDHCPv6IAIDOffset) + } + + offset = uintptr(unsafe.Pointer(&s.FirstDNSSuffix)) - sp + if offset != ipAdapterAddressesFirstDNSSuffixOffset { + t.Errorf("IPAdapterAddresses.FirstDNSSuffix offset is %d although %d is expected", offset, ipAdapterAddressesFirstDNSSuffixOffset) + } +} + +func TestMibIPInterfaceRow(t *testing.T) { + s := MibIPInterfaceRow{} + sp := uintptr(unsafe.Pointer(&s)) + const actualTestMibIPInterfaceRowSize = unsafe.Sizeof(s) + + if actualTestMibIPInterfaceRowSize != mibIPInterfaceRowSize { + t.Errorf("Size of MibIPInterfaceRow is %d, although %d is expected.", actualTestMibIPInterfaceRowSize, mibIPInterfaceRowSize) + } + + offset := uintptr(unsafe.Pointer(&s.InterfaceLUID)) - sp + if offset != mibIPInterfaceRowInterfaceLUIDOffset { + t.Errorf("MibIPInterfaceRow.InterfaceLUID offset is %d although %d is expected", offset, mibIPInterfaceRowInterfaceLUIDOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InterfaceIndex)) - sp + if offset != mibIPInterfaceRowInterfaceIndexOffset { + t.Errorf("MibIPInterfaceRow.InterfaceIndex offset is %d although %d is expected", offset, mibIPInterfaceRowInterfaceIndexOffset) + } + + offset = uintptr(unsafe.Pointer(&s.MaxReassemblySize)) - sp + if offset != mibIPInterfaceRowMaxReassemblySizeOffset { + t.Errorf("mibIPInterfaceRow.MaxReassemblySize offset is %d although %d is expected", offset, mibIPInterfaceRowMaxReassemblySizeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InterfaceIdentifier)) - sp + if offset != mibIPInterfaceRowInterfaceIdentifierOffset { + t.Errorf("MibIPInterfaceRow.InterfaceIdentifier offset is %d although %d is expected", offset, mibIPInterfaceRowInterfaceIdentifierOffset) + } + + offset = uintptr(unsafe.Pointer(&s.MinRouterAdvertisementInterval)) - sp + if offset != mibIPInterfaceRowMinRouterAdvertisementIntervalOffset { + t.Errorf("MibIPInterfaceRow.MinRouterAdvertisementInterval offset is %d although %d is expected", offset, mibIPInterfaceRowMinRouterAdvertisementIntervalOffset) + } + + offset = uintptr(unsafe.Pointer(&s.MaxRouterAdvertisementInterval)) - sp + if offset != mibIPInterfaceRowMaxRouterAdvertisementIntervalOffset { + t.Errorf("MibIPInterfaceRow.MaxRouterAdvertisementInterval offset is %d although %d is expected", offset, mibIPInterfaceRowMaxRouterAdvertisementIntervalOffset) + } + + offset = uintptr(unsafe.Pointer(&s.AdvertisingEnabled)) - sp + if offset != mibIPInterfaceRowAdvertisingEnabledOffset { + t.Errorf("MibIPInterfaceRow.AdvertisingEnabled offset is %d although %d is expected", offset, mibIPInterfaceRowAdvertisingEnabledOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ForwardingEnabled)) - sp + if offset != mibIPInterfaceRowForwardingEnabledOffset { + t.Errorf("MibIPInterfaceRow.ForwardingEnabled offset is %d although %d is expected", offset, mibIPInterfaceRowForwardingEnabledOffset) + } + + offset = uintptr(unsafe.Pointer(&s.WeakHostSend)) - sp + if offset != mibIPInterfaceRowWeakHostSendOffset { + t.Errorf("MibIPInterfaceRow.WeakHostSend offset is %d although %d is expected", offset, mibIPInterfaceRowWeakHostSendOffset) + } + + offset = uintptr(unsafe.Pointer(&s.WeakHostReceive)) - sp + if offset != mibIPInterfaceRowWeakHostReceiveOffset { + t.Errorf("MibIPInterfaceRow.WeakHostReceive offset is %d although %d is expected", offset, mibIPInterfaceRowWeakHostReceiveOffset) + } + + offset = uintptr(unsafe.Pointer(&s.UseAutomaticMetric)) - sp + if offset != mibIPInterfaceRowUseAutomaticMetricOffset { + t.Errorf("MibIPInterfaceRow.UseAutomaticMetric offset is %d although %d is expected", offset, mibIPInterfaceRowUseAutomaticMetricOffset) + } + + offset = uintptr(unsafe.Pointer(&s.UseNeighborUnreachabilityDetection)) - sp + if offset != mibIPInterfaceRowUseNeighborUnreachabilityDetectionOffset { + t.Errorf("MibIPInterfaceRow.UseNeighborUnreachabilityDetection offset is %d although %d is expected", offset, mibIPInterfaceRowUseNeighborUnreachabilityDetectionOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ManagedAddressConfigurationSupported)) - sp + if offset != mibIPInterfaceRowManagedAddressConfigurationSupportedOffset { + t.Errorf("MibIPInterfaceRow.ManagedAddressConfigurationSupported offset is %d although %d is expected", offset, mibIPInterfaceRowManagedAddressConfigurationSupportedOffset) + } + + offset = uintptr(unsafe.Pointer(&s.OtherStatefulConfigurationSupported)) - sp + if offset != mibIPInterfaceRowOtherStatefulConfigurationSupportedOffset { + t.Errorf("MibIPInterfaceRow.OtherStatefulConfigurationSupported offset is %d although %d is expected", offset, mibIPInterfaceRowOtherStatefulConfigurationSupportedOffset) + } + + offset = uintptr(unsafe.Pointer(&s.AdvertiseDefaultRoute)) - sp + if offset != mibIPInterfaceRowAdvertiseDefaultRouteOffset { + t.Errorf("MibIPInterfaceRow.AdvertiseDefaultRoute offset is %d although %d is expected", offset, mibIPInterfaceRowAdvertiseDefaultRouteOffset) + } + + offset = uintptr(unsafe.Pointer(&s.RouterDiscoveryBehavior)) - sp + if offset != mibIPInterfaceRowRouterDiscoveryBehaviorOffset { + t.Errorf("MibIPInterfaceRow.RouterDiscoveryBehavior offset is %d although %d is expected", offset, mibIPInterfaceRowRouterDiscoveryBehaviorOffset) + } + + offset = uintptr(unsafe.Pointer(&s.DadTransmits)) - sp + if offset != mibIPInterfaceRowDadTransmitsOffset { + t.Errorf("MibIPInterfaceRow.DadTransmits offset is %d although %d is expected", offset, mibIPInterfaceRowDadTransmitsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.BaseReachableTime)) - sp + if offset != mibIPInterfaceRowBaseReachableTimeOffset { + t.Errorf("MibIPInterfaceRow.BaseReachableTime offset is %d although %d is expected", offset, mibIPInterfaceRowBaseReachableTimeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.RetransmitTime)) - sp + if offset != mibIPInterfaceRowRetransmitTimeOffset { + t.Errorf("MibIPInterfaceRow.RetransmitTime offset is %d although %d is expected", offset, mibIPInterfaceRowRetransmitTimeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.PathMTUDiscoveryTimeout)) - sp + if offset != mibIPInterfaceRowPathMTUDiscoveryTimeoutOffset { + t.Errorf("MibIPInterfaceRow.PathMTUDiscoveryTimeout offset is %d although %d is expected", offset, mibIPInterfaceRowPathMTUDiscoveryTimeoutOffset) + } + + offset = uintptr(unsafe.Pointer(&s.LinkLocalAddressBehavior)) - sp + if offset != mibIPInterfaceRowLinkLocalAddressBehaviorOffset { + t.Errorf("MibIPInterfaceRow.LinkLocalAddressBehavior offset is %d although %d is expected", offset, mibIPInterfaceRowLinkLocalAddressBehaviorOffset) + } + + offset = uintptr(unsafe.Pointer(&s.LinkLocalAddressTimeout)) - sp + if offset != mibIPInterfaceRowLinkLocalAddressTimeoutOffset { + t.Errorf("MibIPInterfaceRow.LinkLocalAddressTimeout offset is %d although %d is expected", offset, mibIPInterfaceRowLinkLocalAddressTimeoutOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ZoneIndices)) - sp + if offset != mibIPInterfaceRowZoneIndicesOffset { + t.Errorf("MibIPInterfaceRow.ZoneIndices offset is %d although %d is expected", offset, mibIPInterfaceRowZoneIndicesOffset) + } + + offset = uintptr(unsafe.Pointer(&s.SitePrefixLength)) - sp + if offset != mibIPInterfaceRowSitePrefixLengthOffset { + t.Errorf("MibIPInterfaceRow.SitePrefixLength offset is %d although %d is expected", offset, mibIPInterfaceRowSitePrefixLengthOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Metric)) - sp + if offset != mibIPInterfaceRowMetricOffset { + t.Errorf("MibIPInterfaceRow.Metric offset is %d although %d is expected", offset, mibIPInterfaceRowMetricOffset) + } + + offset = uintptr(unsafe.Pointer(&s.NLMTU)) - sp + if offset != mibIPInterfaceRowNLMTUOffset { + t.Errorf("MibIPInterfaceRow.NLMTU offset is %d although %d is expected", offset, mibIPInterfaceRowNLMTUOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Connected)) - sp + if offset != mibIPInterfaceRowConnectedOffset { + t.Errorf("MibIPInterfaceRow.Connected offset is %d although %d is expected", offset, mibIPInterfaceRowConnectedOffset) + } + + offset = uintptr(unsafe.Pointer(&s.SupportsWakeUpPatterns)) - sp + if offset != mibIPInterfaceRowSupportsWakeUpPatternsOffset { + t.Errorf("MibIPInterfaceRow.SupportsWakeUpPatterns offset is %d although %d is expected", offset, mibIPInterfaceRowSupportsWakeUpPatternsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.SupportsNeighborDiscovery)) - sp + if offset != mibIPInterfaceRowSupportsNeighborDiscoveryOffset { + t.Errorf("MibIPInterfaceRow.SupportsNeighborDiscovery offset is %d although %d is expected", offset, mibIPInterfaceRowSupportsNeighborDiscoveryOffset) + } + + offset = uintptr(unsafe.Pointer(&s.SupportsRouterDiscovery)) - sp + if offset != mibIPInterfaceRowSupportsRouterDiscoveryOffset { + t.Errorf("MibIPInterfaceRow.SupportsRouterDiscovery offset is %d although %d is expected", offset, mibIPInterfaceRowSupportsRouterDiscoveryOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ReachableTime)) - sp + if offset != mibIPInterfaceRowReachableTimeOffset { + t.Errorf("MibIPInterfaceRow.ReachableTime offset is %d although %d is expected", offset, mibIPInterfaceRowReachableTimeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.TransmitOffload)) - sp + if offset != mibIPInterfaceRowTransmitOffloadOffset { + t.Errorf("MibIPInterfaceRow.TransmitOffload offset is %d although %d is expected", offset, mibIPInterfaceRowTransmitOffloadOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ReceiveOffload)) - sp + if offset != mibIPInterfaceRowReceiveOffloadOffset { + t.Errorf("MibIPInterfaceRow.ReceiveOffload offset is %d although %d is expected", offset, mibIPInterfaceRowReceiveOffloadOffset) + } + + offset = uintptr(unsafe.Pointer(&s.DisableDefaultRoutes)) - sp + if offset != mibIPInterfaceRowDisableDefaultRoutesOffset { + t.Errorf("MibIPInterfaceRow.DisableDefaultRoutes offset is %d although %d is expected", offset, mibIPInterfaceRowDisableDefaultRoutesOffset) + } +} + +func TestMibIPInterfaceTable(t *testing.T) { + s := mibIPInterfaceTable{} + sp := uintptr(unsafe.Pointer(&s)) + const actualmibIPInterfaceTableSize = unsafe.Sizeof(s) + + if actualmibIPInterfaceTableSize != mibIPInterfaceTableSize { + t.Errorf("Size of mibIPInterfaceTable is %d, although %d is expected.", actualmibIPInterfaceTableSize, mibIPInterfaceTableSize) + } + + offset := uintptr(unsafe.Pointer(&s.table)) - sp + if offset != mibIPInterfaceTableTableOffset { + t.Errorf("mibIPInterfaceTable.table offset is %d although %d is expected", offset, mibIPInterfaceTableTableOffset) + } +} + +func TestMibIfRow2(t *testing.T) { + s := MibIfRow2{} + sp := uintptr(unsafe.Pointer(&s)) + const actualMibIfRow2Size = unsafe.Sizeof(s) + + if actualMibIfRow2Size != mibIfRow2Size { + t.Errorf("Size of MibIfRow2 is %d, although %d is expected.", actualMibIfRow2Size, mibIfRow2Size) + } + + offset := uintptr(unsafe.Pointer(&s.InterfaceIndex)) - sp + if offset != mibIfRow2InterfaceIndexOffset { + t.Errorf("MibIfRow2.InterfaceIndex offset is %d although %d is expected", offset, mibIfRow2InterfaceIndexOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InterfaceGUID)) - sp + if offset != mibIfRow2InterfaceGUIDOffset { + t.Errorf("MibIfRow2.InterfaceGUID offset is %d although %d is expected", offset, mibIfRow2InterfaceGUIDOffset) + } + + offset = uintptr(unsafe.Pointer(&s.alias)) - sp + if offset != mibIfRow2AliasOffset { + t.Errorf("MibIfRow2.alias offset is %d although %d is expected", offset, mibIfRow2AliasOffset) + } + + offset = uintptr(unsafe.Pointer(&s.description)) - sp + if offset != mibIfRow2DescriptionOffset { + t.Errorf("MibIfRow2.description offset is %d although %d is expected", offset, mibIfRow2DescriptionOffset) + } + + offset = uintptr(unsafe.Pointer(&s.physicalAddressLength)) - sp + if offset != mibIfRow2PhysicalAddressLengthOffset { + t.Errorf("MibIfRow2.physicalAddressLength offset is %d although %d is expected", offset, mibIfRow2PhysicalAddressLengthOffset) + } + + offset = uintptr(unsafe.Pointer(&s.physicalAddress)) - sp + if offset != mibIfRow2PhysicalAddressOffset { + t.Errorf("MibIfRow2.physicalAddress offset is %d although %d is expected", offset, mibIfRow2PhysicalAddressOffset) + } + + offset = uintptr(unsafe.Pointer(&s.permanentPhysicalAddress)) - sp + if offset != mibIfRow2PermanentPhysicalAddressOffset { + t.Errorf("MibIfRow2.permanentPhysicalAddress offset is %d although %d is expected", offset, mibIfRow2PermanentPhysicalAddressOffset) + } + + offset = uintptr(unsafe.Pointer(&s.MTU)) - sp + if offset != mibIfRow2MTUOffset { + t.Errorf("MibIfRow2.MTU offset is %d although %d is expected", offset, mibIfRow2MTUOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Type)) - sp + if offset != mibIfRow2TypeOffset { + t.Errorf("MibIfRow2.Type offset is %d although %d is expected", offset, mibIfRow2TypeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.TunnelType)) - sp + if offset != mibIfRow2TunnelTypeOffset { + t.Errorf("MibIfRow2.TunnelType offset is %d although %d is expected", offset, mibIfRow2TunnelTypeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.MediaType)) - sp + if offset != mibIfRow2MediaTypeOffset { + t.Errorf("MibIfRow2.MediaType offset is %d although %d is expected", offset, mibIfRow2MediaTypeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.PhysicalMediumType)) - sp + if offset != mibIfRow2PhysicalMediumTypeOffset { + t.Errorf("MibIfRow2.PhysicalMediumType offset is %d although %d is expected", offset, mibIfRow2PhysicalMediumTypeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.AccessType)) - sp + if offset != mibIfRow2AccessTypeOffset { + t.Errorf("MibIfRow2.AccessType offset is %d although %d is expected", offset, mibIfRow2AccessTypeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.DirectionType)) - sp + if offset != mibIfRow2DirectionTypeOffset { + t.Errorf("MibIfRow2.DirectionType offset is %d although %d is expected", offset, mibIfRow2DirectionTypeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InterfaceAndOperStatusFlags)) - sp + if offset != mibIfRow2InterfaceAndOperStatusFlagsOffset { + t.Errorf("MibIfRow2.InterfaceAndOperStatusFlags offset is %d although %d is expected", offset, mibIfRow2InterfaceAndOperStatusFlagsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.OperStatus)) - sp + if offset != mibIfRow2OperStatusOffset { + t.Errorf("MibIfRow2.OperStatus offset is %d although %d is expected", offset, mibIfRow2OperStatusOffset) + } + + offset = uintptr(unsafe.Pointer(&s.AdminStatus)) - sp + if offset != mibIfRow2AdminStatusOffset { + t.Errorf("MibIfRow2.AdminStatus offset is %d although %d is expected", offset, mibIfRow2AdminStatusOffset) + } + + offset = uintptr(unsafe.Pointer(&s.MediaConnectState)) - sp + if offset != mibIfRow2MediaConnectStateOffset { + t.Errorf("MibIfRow2.MediaConnectState offset is %d although %d is expected", offset, mibIfRow2MediaConnectStateOffset) + } + + offset = uintptr(unsafe.Pointer(&s.NetworkGUID)) - sp + if offset != mibIfRow2NetworkGUIDOffset { + t.Errorf("MibIfRow2.NetworkGUID offset is %d although %d is expected", offset, mibIfRow2NetworkGUIDOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ConnectionType)) - sp + if offset != mibIfRow2ConnectionTypeOffset { + t.Errorf("MibIfRow2.ConnectionType offset is %d although %d is expected", offset, mibIfRow2ConnectionTypeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.TransmitLinkSpeed)) - sp + if offset != mibIfRow2TransmitLinkSpeedOffset { + t.Errorf("MibIfRow2.TransmitLinkSpeed offset is %d although %d is expected", offset, mibIfRow2TransmitLinkSpeedOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ReceiveLinkSpeed)) - sp + if offset != mibIfRow2ReceiveLinkSpeedOffset { + t.Errorf("MibIfRow2.ReceiveLinkSpeed offset is %d although %d is expected", offset, mibIfRow2ReceiveLinkSpeedOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InOctets)) - sp + if offset != mibIfRow2InOctetsOffset { + t.Errorf("MibIfRow2.InOctets offset is %d although %d is expected", offset, mibIfRow2InOctetsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InUcastPkts)) - sp + if offset != mibIfRow2InUcastPktsOffset { + t.Errorf("MibIfRow2.InUcastPkts offset is %d although %d is expected", offset, mibIfRow2InUcastPktsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InNUcastPkts)) - sp + if offset != mibIfRow2InNUcastPktsOffset { + t.Errorf("MibIfRow2.InNUcastPkts offset is %d although %d is expected", offset, mibIfRow2InNUcastPktsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InDiscards)) - sp + if offset != mibIfRow2InDiscardsOffset { + t.Errorf("MibIfRow2.InDiscards offset is %d although %d is expected", offset, mibIfRow2InDiscardsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InErrors)) - sp + if offset != mibIfRow2InErrorsOffset { + t.Errorf("MibIfRow2.InErrors offset is %d although %d is expected", offset, mibIfRow2InErrorsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InUnknownProtos)) - sp + if offset != mibIfRow2InUnknownProtosOffset { + t.Errorf("MibIfRow2.InUnknownProtos offset is %d although %d is expected", offset, mibIfRow2InUnknownProtosOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InUcastOctets)) - sp + if offset != mibIfRow2InUcastOctetsOffset { + t.Errorf("MibIfRow2.InUcastOctets offset is %d although %d is expected", offset, mibIfRow2InUcastOctetsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InMulticastOctets)) - sp + if offset != mibIfRow2InMulticastOctetsOffset { + t.Errorf("MibIfRow2.InMulticastOctets offset is %d although %d is expected", offset, mibIfRow2InMulticastOctetsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InBroadcastOctets)) - sp + if offset != mibIfRow2InBroadcastOctetsOffset { + t.Errorf("MibIfRow2.InBroadcastOctets offset is %d although %d is expected", offset, mibIfRow2InBroadcastOctetsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.OutOctets)) - sp + if offset != mibIfRow2OutOctetsOffset { + t.Errorf("MibIfRow2.OutOctets offset is %d although %d is expected", offset, mibIfRow2OutOctetsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.OutUcastPkts)) - sp + if offset != mibIfRow2OutUcastPktsOffset { + t.Errorf("MibIfRow2.OutUcastPkts offset is %d although %d is expected", offset, mibIfRow2OutUcastPktsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.OutNUcastPkts)) - sp + if offset != mibIfRow2OutNUcastPktsOffset { + t.Errorf("MibIfRow2.OutNUcastPkts offset is %d although %d is expected", offset, mibIfRow2OutNUcastPktsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.OutDiscards)) - sp + if offset != mibIfRow2OutDiscardsOffset { + t.Errorf("MibIfRow2.OutDiscards offset is %d although %d is expected", offset, mibIfRow2OutDiscardsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.OutErrors)) - sp + if offset != mibIfRow2OutErrorsOffset { + t.Errorf("MibIfRow2.OutErrors offset is %d although %d is expected", offset, mibIfRow2OutErrorsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.OutUcastOctets)) - sp + if offset != mibIfRow2OutUcastOctetsOffset { + t.Errorf("MibIfRow2.OutUcastOctets offset is %d although %d is expected", offset, mibIfRow2OutUcastOctetsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.OutMulticastOctets)) - sp + if offset != mibIfRow2OutMulticastOctetsOffset { + t.Errorf("MibIfRow2.OutMulticastOctets offset is %d although %d is expected", offset, mibIfRow2OutMulticastOctetsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.OutBroadcastOctets)) - sp + if offset != mibIfRow2OutBroadcastOctetsOffset { + t.Errorf("MibIfRow2.OutBroadcastOctets offset is %d although %d is expected", offset, mibIfRow2OutBroadcastOctetsOffset) + } + + offset = uintptr(unsafe.Pointer(&s.OutQLen)) - sp + if offset != mibIfRow2OutQLenOffset { + t.Errorf("MibIfRow2.OutQLen offset is %d although %d is expected", offset, mibIfRow2OutQLenOffset) + } +} + +func TestMibIfTable2(t *testing.T) { + s := mibIfTable2{} + sp := uintptr(unsafe.Pointer(&s)) + const actualmibIfTable2Size = unsafe.Sizeof(s) + + if actualmibIfTable2Size != mibIfTable2Size { + t.Errorf("Size of mibIfTable2 is %d, although %d is expected.", actualmibIfTable2Size, mibIfTable2Size) + } + + offset := uintptr(unsafe.Pointer(&s.table)) - sp + if offset != mibIfTable2TableOffset { + t.Errorf("mibIfTable2.table offset is %d although %d is expected", offset, mibIfTable2TableOffset) + } +} + +func TestRawSockaddrInet(t *testing.T) { + s := RawSockaddrInet{} + sp := uintptr(unsafe.Pointer(&s)) + const actualRawSockaddrInetSize = unsafe.Sizeof(s) + + if actualRawSockaddrInetSize != rawSockaddrInetSize { + t.Errorf("Size of RawSockaddrInet is %d, although %d is expected.", actualRawSockaddrInetSize, rawSockaddrInetSize) + } + + offset := uintptr(unsafe.Pointer(&s.data)) - sp + if offset != rawSockaddrInetDataOffset { + t.Errorf("RawSockaddrInet.data offset is %d although %d is expected", offset, rawSockaddrInetDataOffset) + } +} + +func TestMibUnicastIPAddressRow(t *testing.T) { + s := MibUnicastIPAddressRow{} + sp := uintptr(unsafe.Pointer(&s)) + const actualMibUnicastIPAddressRowSize = unsafe.Sizeof(s) + + if actualMibUnicastIPAddressRowSize != mibUnicastIPAddressRowSize { + t.Errorf("Size of MibUnicastIPAddressRow is %d, although %d is expected.", actualMibUnicastIPAddressRowSize, mibUnicastIPAddressRowSize) + } + + offset := uintptr(unsafe.Pointer(&s.InterfaceLUID)) - sp + if offset != mibUnicastIPAddressRowInterfaceLUIDOffset { + t.Errorf("MibUnicastIPAddressRow.InterfaceLUID offset is %d although %d is expected", offset, mibUnicastIPAddressRowInterfaceLUIDOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InterfaceIndex)) - sp + if offset != mibUnicastIPAddressRowInterfaceIndexOffset { + t.Errorf("MibUnicastIPAddressRow.InterfaceIndex offset is %d although %d is expected", offset, mibUnicastIPAddressRowInterfaceIndexOffset) + } + + offset = uintptr(unsafe.Pointer(&s.PrefixOrigin)) - sp + if offset != mibUnicastIPAddressRowPrefixOriginOffset { + t.Errorf("MibUnicastIPAddressRow.PrefixOrigin offset is %d although %d is expected", offset, mibUnicastIPAddressRowPrefixOriginOffset) + } + + offset = uintptr(unsafe.Pointer(&s.SuffixOrigin)) - sp + if offset != mibUnicastIPAddressRowSuffixOriginOffset { + t.Errorf("MibUnicastIPAddressRow.SuffixOrigin offset is %d although %d is expected", offset, mibUnicastIPAddressRowSuffixOriginOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ValidLifetime)) - sp + if offset != mibUnicastIPAddressRowValidLifetimeOffset { + t.Errorf("MibUnicastIPAddressRow.ValidLifetime offset is %d although %d is expected", offset, mibUnicastIPAddressRowValidLifetimeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.PreferredLifetime)) - sp + if offset != mibUnicastIPAddressRowPreferredLifetimeOffset { + t.Errorf("MibUnicastIPAddressRow.PreferredLifetime offset is %d although %d is expected", offset, mibUnicastIPAddressRowPreferredLifetimeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.OnLinkPrefixLength)) - sp + if offset != mibUnicastIPAddressRowOnLinkPrefixLengthOffset { + t.Errorf("MibUnicastIPAddressRow.OnLinkPrefixLength offset is %d although %d is expected", offset, mibUnicastIPAddressRowOnLinkPrefixLengthOffset) + } + + offset = uintptr(unsafe.Pointer(&s.SkipAsSource)) - sp + if offset != mibUnicastIPAddressRowSkipAsSourceOffset { + t.Errorf("MibUnicastIPAddressRow.SkipAsSource offset is %d although %d is expected", offset, mibUnicastIPAddressRowSkipAsSourceOffset) + } + + offset = uintptr(unsafe.Pointer(&s.DadState)) - sp + if offset != mibUnicastIPAddressRowDadStateOffset { + t.Errorf("MibUnicastIPAddressRow.DadState offset is %d although %d is expected", offset, mibUnicastIPAddressRowDadStateOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ScopeID)) - sp + if offset != mibUnicastIPAddressRowScopeIDOffset { + t.Errorf("MibUnicastIPAddressRow.ScopeID offset is %d although %d is expected", offset, mibUnicastIPAddressRowScopeIDOffset) + } + + offset = uintptr(unsafe.Pointer(&s.CreationTimeStamp)) - sp + if offset != mibUnicastIPAddressRowCreationTimeStampOffset { + t.Errorf("MibUnicastIPAddressRow.CreationTimeStamp offset is %d although %d is expected", offset, mibUnicastIPAddressRowCreationTimeStampOffset) + } +} + +func TestMibUnicastIPAddressTable(t *testing.T) { + s := mibUnicastIPAddressTable{} + sp := uintptr(unsafe.Pointer(&s)) + const actualmibUnicastIPAddressTableSize = unsafe.Sizeof(s) + + if actualmibUnicastIPAddressTableSize != mibUnicastIPAddressTableSize { + t.Errorf("Size of mibUnicastIPAddressTable is %d, although %d is expected.", actualmibUnicastIPAddressTableSize, mibUnicastIPAddressTableSize) + } + + offset := uintptr(unsafe.Pointer(&s.table)) - sp + if offset != mibUnicastIPAddressTableTableOffset { + t.Errorf("mibUnicastIPAddressTable.table offset is %d although %d is expected", offset, mibUnicastIPAddressTableTableOffset) + } +} + +func TestMibAnycastIPAddressRow(t *testing.T) { + s := MibAnycastIPAddressRow{} + sp := uintptr(unsafe.Pointer(&s)) + const actualMibAnycastIPAddressRowSize = unsafe.Sizeof(s) + + if actualMibAnycastIPAddressRowSize != mibAnycastIPAddressRowSize { + t.Errorf("Size of MibAnycastIPAddressRow is %d, although %d is expected.", actualMibAnycastIPAddressRowSize, mibAnycastIPAddressRowSize) + } + + offset := uintptr(unsafe.Pointer(&s.InterfaceLUID)) - sp + if offset != mibAnycastIPAddressRowInterfaceLUIDOffset { + t.Errorf("MibAnycastIPAddressRow.InterfaceLUID offset is %d although %d is expected", offset, mibAnycastIPAddressRowInterfaceLUIDOffset) + } + + offset = uintptr(unsafe.Pointer(&s.InterfaceIndex)) - sp + if offset != mibAnycastIPAddressRowInterfaceIndexOffset { + t.Errorf("MibAnycastIPAddressRow.InterfaceIndex offset is %d although %d is expected", offset, mibAnycastIPAddressRowInterfaceIndexOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ScopeID)) - sp + if offset != mibAnycastIPAddressRowScopeIDOffset { + t.Errorf("MibAnycastIPAddressRow.ScopeID offset is %d although %d is expected", offset, mibAnycastIPAddressRowScopeIDOffset) + } +} + +func TestMibAnycastIPAddressTable(t *testing.T) { + s := mibAnycastIPAddressTable{} + sp := uintptr(unsafe.Pointer(&s)) + const actualmibAnycastIPAddressTableSize = unsafe.Sizeof(s) + + if actualmibAnycastIPAddressTableSize != mibAnycastIPAddressTableSize { + t.Errorf("Size of mibAnycastIPAddressTable is %d, although %d is expected.", actualmibAnycastIPAddressTableSize, mibAnycastIPAddressTableSize) + } + + offset := uintptr(unsafe.Pointer(&s.table)) - sp + if offset != mibAnycastIPAddressTableTableOffset { + t.Errorf("mibAnycastIPAddressTable.table offset is %d although %d is expected", offset, mibAnycastIPAddressTableTableOffset) + } +} + +func TestIPAddressPrefix(t *testing.T) { + s := IPAddressPrefix{} + sp := uintptr(unsafe.Pointer(&s)) + const actualIPAddressPrefixSize = unsafe.Sizeof(s) + + if actualIPAddressPrefixSize != ipAddressPrefixSize { + t.Errorf("Size of IPAddressPrefix is %d, although %d is expected.", actualIPAddressPrefixSize, ipAddressPrefixSize) + } + + offset := uintptr(unsafe.Pointer(&s.PrefixLength)) - sp + if offset != ipAddressPrefixPrefixLengthOffset { + t.Errorf("IPAddressPrefix.PrefixLength offset is %d although %d is expected", offset, ipAddressPrefixPrefixLengthOffset) + + } +} + +func TestMibIPforwardRow2(t *testing.T) { + s := MibIPforwardRow2{} + sp := uintptr(unsafe.Pointer(&s)) + const actualMibIPforwardRow2Size = unsafe.Sizeof(s) + + if actualMibIPforwardRow2Size != mibIPforwardRow2Size { + t.Errorf("Size of MibIPforwardRow2 is %d, although %d is expected.", actualMibIPforwardRow2Size, mibIPforwardRow2Size) + } + + offset := uintptr(unsafe.Pointer(&s.InterfaceIndex)) - sp + if offset != mibIPforwardRow2InterfaceIndexOffset { + t.Errorf("MibIPforwardRow2.InterfaceIndex offset is %d although %d is expected", offset, mibIPforwardRow2InterfaceIndexOffset) + } + + offset = uintptr(unsafe.Pointer(&s.DestinationPrefix)) - sp + if offset != mibIPforwardRow2DestinationPrefixOffset { + t.Errorf("MibIPforwardRow2.DestinationPrefix offset is %d although %d is expected", offset, mibIPforwardRow2DestinationPrefixOffset) + } + + offset = uintptr(unsafe.Pointer(&s.NextHop)) - sp + if offset != mibIPforwardRow2NextHopOffset { + t.Errorf("MibIPforwardRow2.NextHop offset is %d although %d is expected", offset, mibIPforwardRow2NextHopOffset) + } + + offset = uintptr(unsafe.Pointer(&s.SitePrefixLength)) - sp + if offset != mibIPforwardRow2SitePrefixLengthOffset { + t.Errorf("MibIPforwardRow2.SitePrefixLength offset is %d although %d is expected", offset, mibIPforwardRow2SitePrefixLengthOffset) + } + + offset = uintptr(unsafe.Pointer(&s.ValidLifetime)) - sp + if offset != mibIPforwardRow2ValidLifetimeOffset { + t.Errorf("MibIPforwardRow2.ValidLifetime offset is %d although %d is expected", offset, mibIPforwardRow2ValidLifetimeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.PreferredLifetime)) - sp + if offset != mibIPforwardRow2PreferredLifetimeOffset { + t.Errorf("MibIPforwardRow2.PreferredLifetime offset is %d although %d is expected", offset, mibIPforwardRow2PreferredLifetimeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Metric)) - sp + if offset != mibIPforwardRow2MetricOffset { + t.Errorf("MibIPforwardRow2.Metric offset is %d although %d is expected", offset, mibIPforwardRow2MetricOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Protocol)) - sp + if offset != mibIPforwardRow2ProtocolOffset { + t.Errorf("MibIPforwardRow2.Protocol offset is %d although %d is expected", offset, mibIPforwardRow2ProtocolOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Loopback)) - sp + if offset != mibIPforwardRow2LoopbackOffset { + t.Errorf("MibIPforwardRow2.Loopback offset is %d although %d is expected", offset, mibIPforwardRow2LoopbackOffset) + } + + offset = uintptr(unsafe.Pointer(&s.AutoconfigureAddress)) - sp + if offset != mibIPforwardRow2AutoconfigureAddressOffset { + t.Errorf("MibIPforwardRow2.AutoconfigureAddress offset is %d although %d is expected", offset, mibIPforwardRow2AutoconfigureAddressOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Publish)) - sp + if offset != mibIPforwardRow2PublishOffset { + t.Errorf("MibIPforwardRow2.Publish offset is %d although %d is expected", offset, mibIPforwardRow2PublishOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Immortal)) - sp + if offset != mibIPforwardRow2ImmortalOffset { + t.Errorf("MibIPforwardRow2.Immortal offset is %d although %d is expected", offset, mibIPforwardRow2ImmortalOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Age)) - sp + if offset != mibIPforwardRow2AgeOffset { + t.Errorf("MibIPforwardRow2.Age offset is %d although %d is expected", offset, mibIPforwardRow2AgeOffset) + } + + offset = uintptr(unsafe.Pointer(&s.Origin)) - sp + if offset != mibIPforwardRow2OriginOffset { + t.Errorf("MibIPforwardRow2.Origin offset is %d although %d is expected", offset, mibIPforwardRow2OriginOffset) + } +} + +func TestMibIPforwardTable2(t *testing.T) { + s := mibIPforwardTable2{} + sp := uintptr(unsafe.Pointer(&s)) + const actualmibIPforwardTable2Size = unsafe.Sizeof(s) + + if actualmibIPforwardTable2Size != mibIPforwardTable2Size { + t.Errorf("Size of mibIPforwardTable2 is %d, although %d is expected.", actualmibIPforwardTable2Size, mibIPforwardTable2Size) + } + + offset := uintptr(unsafe.Pointer(&s.table)) - sp + if offset != mibIPforwardTable2TableOffset { + t.Errorf("mibIPforwardTable2.table offset is %d although %d is expected", offset, mibIPforwardTable2TableOffset) + } +} |