/** * Oshi (https://github.com/oshi/oshi) * * Copyright (c) 2010 - 2017 The Oshi Project Team * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Maintainers: * dblock[at]dblock[dot]org * widdis[at]gmail[dot]com * enrico.bianchi[at]gmail[dot]com * * Contributors: * https://github.com/oshi/oshi/graphs/contributors */ package oshi.hardware; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.junit.Test; import com.sun.jna.Platform; import oshi.PlatformEnum; import oshi.SystemInfo; import oshi.hardware.CentralProcessor.TickType; import oshi.util.Util; /** * Test CPU */ public class CentralProcessorTest { /** * Test central processor. */ @SuppressWarnings("deprecation") // Test serialNumber until removed @Test public void testCentralProcessor() { SystemInfo si = new SystemInfo(); CentralProcessor p = si.getHardware().getProcessor(); assertNotNull(p.getVendor()); assertTrue(p.getVendorFreq() == -1 || p.getVendorFreq() > 0); p.setVendor("v"); assertEquals(p.getVendor(), "v"); assertNotNull(p.getName()); p.setName("n"); assertEquals(p.getName(), "n"); assertNotNull(p.getIdentifier()); p.setIdentifier("i"); assertEquals(p.getIdentifier(), "i"); assertNotNull(p.getProcessorID()); p.setProcessorID("p"); assertEquals(p.getProcessorID(), "p"); p.setCpu64(true); assertTrue(p.isCpu64bit()); assertNotNull(p.getStepping()); p.setStepping("s"); assertEquals(p.getStepping(), "s"); assertNotNull(p.getModel()); p.setModel("m"); assertEquals(p.getModel(), "m"); assertNotNull(p.getFamily()); p.setFamily("f"); assertEquals(p.getFamily(), "f"); assertTrue(p.getSystemCpuLoadBetweenTicks() >= 0 && p.getSystemCpuLoadBetweenTicks() <= 1); assertEquals(p.getSystemCpuLoadTicks().length, TickType.values().length); Util.sleep(500); // This test fails on FreeBSD due to error in Java MXBean if (SystemInfo.getCurrentPlatformEnum() != PlatformEnum.FREEBSD) { assertTrue(p.getSystemCpuLoad() >= 0.0 && p.getSystemCpuLoad() <= 1.0); } assertEquals(p.getSystemLoadAverage(3).length, 3); if (Platform.isMac() || Platform.isLinux()) { assertTrue(p.getSystemLoadAverage() >= 0.0); } assertEquals(p.getProcessorCpuLoadBetweenTicks().length, p.getLogicalProcessorCount()); for (int cpu = 0; cpu < p.getLogicalProcessorCount(); cpu++) { assertTrue(p.getProcessorCpuLoadBetweenTicks()[cpu] >= 0 && p.getProcessorCpuLoadBetweenTicks()[cpu] <= 1); assertEquals(p.getProcessorCpuLoadTicks()[cpu].length, TickType.values().length); } assertTrue(p.getSystemUptime() > 0); assertNotNull(p.getSystemSerialNumber()); assertTrue(p.getLogicalProcessorCount() >= p.getPhysicalProcessorCount()); assertTrue(p.getPhysicalProcessorCount() > 0); } }