package org.zstack.test.network; import junit.framework.Assert; import org.junit.Test; import org.zstack.utils.Utils; import org.zstack.utils.logging.CLogger; import org.zstack.utils.network.NetworkUtils; import java.util.ArrayList; import java.util.List; public class TestRandomIpAllocatorStrategy4 { CLogger logger = Utils.getLogger(TestRandomIpAllocatorStrategy4.class); @Test public void test() { String startIp = "10.10.1.20"; String endIp = "10.10.1.100"; List<Long> empty = new ArrayList<Long>(); for (int i = 0; i < 10000; i++) { String ip = NetworkUtils.randomAllocateIpv4Address(startIp, endIp, empty); Assert.assertTrue(NetworkUtils.isIpv4InRange(ip, startIp, endIp)); } startIp = "10.10.1.1"; endIp = "10.10.1.255"; List<Long> used = new ArrayList<Long>(); long len = NetworkUtils.ipRangeLength(startIp, endIp); for (int i = 0; i < len; i++) { String ip = NetworkUtils.randomAllocateIpv4Address(startIp, endIp, used); Assert.assertTrue(NetworkUtils.isIpv4InRange(ip, startIp, endIp)); used.add(NetworkUtils.ipv4StringToLong(ip)); } String ip = NetworkUtils.randomAllocateIpv4Address(startIp, endIp, used); Assert.assertNull(ip); } }