/* 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) } }