1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
#include "gate/tests.hpp"
#include "gate/system/os.hpp"

using namespace gate;
using namespace gate::sys;

GATEXX_TEST_UNIT(OS)
{
    GATEXX_TEST_CHECK_NOTHROW(OS::getAddressSpace());
    GATEXX_TEST_CHECK_NOTHROW(OS::getBootTime());
    GATEXX_TEST_CHECK_NOTHROW(OS::getHostDomain());
    GATEXX_TEST_CHECK_NOTHROW(OS::getHostName());
    GATEXX_TEST_CHECK_NOTHROW(OS::getOSName());
    GATEXX_TEST_CHECK_NOTHROW(OS::getPlatformLabel(OS::getPlatform()));
    GATEXX_TEST_CHECK_NOTHROW(OS::getProductName());
    GATEXX_TEST_CHECK_NOTHROW(OS::getUid());
    GATEXX_TEST_CHECK_NOTHROW(OS::getUpTimeSeconds());
    GATEXX_TEST_CHECK_NOTHROW(OS::getVersion());

    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Windows).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Windows3X).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Windows9X).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_WindowsNT).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_WindowsCE).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_WindowsIOT).empty());

    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_BSD).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_BSD_NetBSD).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_BSD_FreeBSD).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_BSD_OpenBSD).empty());

    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Linux).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Linux_Debian).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Linux_Ubuntu).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Linux_Suse).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Linux_Arch).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Linux_Gentoo).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Linux_Redhat).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Linux_Fedora).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Linux_Slackware).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Linux_Android).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Linux_Embedded).empty());

    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Darwin).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Darwin_MacOS).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_Darvin_iOS).empty());

    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_RTOS).empty());
    GATEXX_TEST_CHECK(!OS::getPlatformLabel(OS::Platform_MCU).empty());
}

GATEXX_TEST_UNIT(CpuInfo)
{
    SystemCpu::ArchEnum arch = SystemCpu::Arch_Unknown;<--- Variable 'arch' is reassigned a value before the old one has been used.
    GATEXX_TEST_CHECK_NOTHROW(arch = SystemCpu::getArchitecture());<--- Variable 'arch' is reassigned a value before the old one has been used.
    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(arch).empty());
    SystemCpuInfo info;
    GATEXX_TEST_CHECK_NOTHROW(info = SystemCpu::getCpuInfo());
    GATEXX_TEST_CHECK_NOTHROW(info.getCores());
    GATEXX_TEST_CHECK_NOTHROW(info.getVersion());
    GATEXX_TEST_CHECK_NOTHROW(info.getSpeedMHz());
    GATEXX_TEST_CHECK_NOTHROW(info.getCacheSize());
    GATEXX_TEST_CHECK_NOTHROW(info.getName());
    GATEXX_TEST_CHECK_NOTHROW(info.getVendor());
    GATEXX_TEST_CHECK_NOTHROW(info.getDescription());
    Array<String> cpuFeatures;
    GATEXX_TEST_CHECK_NOTHROW(cpuFeatures = SystemCpu::getCpuFeatures());
    //SystemCpuActivation affinity;
    //GATEXX_TEST_CHECK_NOTHROW(affinity = SystemCpu::getProcessAffinity());
    //GATEXX_TEST_CHECK_NOTHROW(SystemCpu::setProcessAffinity(affinity));

    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(SystemCpu::Arch_X86_16).empty());
    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(SystemCpu::Arch_X86_32).empty());
    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(SystemCpu::Arch_X86_64).empty());
    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(SystemCpu::Arch_Itanium).empty());
    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(SystemCpu::Arch_ARM32).empty());
    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(SystemCpu::Arch_ARM64).empty());
    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(SystemCpu::Arch_MIPS).empty());
    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(SystemCpu::Arch_Alpha).empty());
    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(SystemCpu::Arch_Alpha64).empty());
    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(SystemCpu::Arch_PPC).empty());
    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(SystemCpu::Arch_SHX).empty());
    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(SystemCpu::Arch_RiscV).empty());
    GATEXX_TEST_CHECK(!SystemCpu::getArchitectureLabel(SystemCpu::Arch_Wasm).empty());

    SystemCpuActivation act;
    for (size_t n = 0; n < 32; ++n)
    {
        GATEXX_TEST_CHECK_EQUAL(act.get(n), false);
        GATEXX_TEST_CHECK_NOTHROW(act.set(n, true));
        GATEXX_TEST_CHECK_EQUAL(act.get(n), true);
    }
}

GATEXX_TEST_UNIT(CpuInfoLoad)
{
    SystemCpuLoad load;
    real32_t percent = 0.0f;
    GATEXX_TEST_CHECK_NOTHROW(load.updateState(percent));
}

GATEXX_TEST_UNIT(Memory)
{
    uint64_t totalBytes = 0, availableBytes = 0;
    GATEXX_TEST_CHECK_NOTHROW(SystemMemory::getPhysicalLoad(totalBytes, availableBytes));
    GATEXX_TEST_CHECK_NOTHROW(SystemMemory::getVirtualLoad(totalBytes, availableBytes));
}