package azkaban.utils; import org.junit.Test; import static org.junit.Assert.*; import static org.mockito.Mockito.*; public class SystemMemoryInfoTest { private static final long GB_UNIT = 1024L * 1024L; @Test public void grantedIfFreeMemoryAvailable() throws Exception { OsMemoryUtil memUtil = mock(OsMemoryUtil.class); long availableFreeMem = 10L * 1024L * 1024L; //10 GB when(memUtil.getOsTotalFreeMemorySize()).thenReturn(availableFreeMem); SystemMemoryInfo memInfo = new SystemMemoryInfo(memUtil); boolean isGranted = memInfo.canSystemGrantMemory(1); assertTrue(isGranted); } @Test public void notGrantedIfFreeMemoryAvailableLessThanMinimal() throws Exception { OsMemoryUtil memUtil = mock(OsMemoryUtil.class); long availableFreeMem = 4L * 1024L * 1024L; //4 GB when(memUtil.getOsTotalFreeMemorySize()).thenReturn(availableFreeMem); SystemMemoryInfo memInfo = new SystemMemoryInfo(memUtil); long xmx = 2 * GB_UNIT; //2 GB boolean isGranted = memInfo.canSystemGrantMemory(xmx); assertFalse(isGranted); } @Test public void grantedIfFreeMemoryCheckReturnsZero() throws Exception { OsMemoryUtil memUtil = mock(OsMemoryUtil.class); long availableFreeMem = 0; when(memUtil.getOsTotalFreeMemorySize()).thenReturn(availableFreeMem); SystemMemoryInfo memInfo = new SystemMemoryInfo(memUtil); long xmx = 0; boolean isGranted = memInfo.canSystemGrantMemory(xmx); assertTrue("Memory check failed. Should fail open", isGranted); } }