master
c 113 lines 2.75 KB
Raw
1 /*++
2
3 Copyright (c) Microsoft. All rights reserved.
4
5 Module Name:
6
7 Sysinfo.c
8
9 Abstract:
10
11 This file is a sysinfo test.
12
13 --*/
14
15 #include "lxtcommon.h"
16 #include "unittests.h"
17 #include "linux/kernel.h"
18
19 #define LXT_NAME "Sysinfo"
20
21 extern int sysinfo(struct sysinfo* info);
22
23 int SysinfoVariationPrint(PLXT_ARGS Args);
24
25 //
26 // Global constants
27 //
28
29 static const LXT_VARIATION g_LxtVariations[] = {{"SysinfoVariationPrint", SysinfoVariationPrint}};
30
31 int SysInfoTestEntry(int Argc, char* Argv[])
32
33 /*++
34 --*/
35
36 {
37
38 LXT_ARGS Args;
39 int Result;
40
41 LxtInitialize(Argc, Argv, &Args, LXT_NAME);
42 LxtCheckResult(LxtRunVariations(&Args, g_LxtVariations, LXT_COUNT_OF(g_LxtVariations)));
43
44 ErrorExit:
45 LxtUninitialize();
46 return !LXT_SUCCESS(Result);
47 }
48
49 int SysinfoVariationPrint(PLXT_ARGS Args)
50
51 /*++
52 --*/
53
54 {
55
56 int Result;
57 struct sysinfo SysInfo;
58
59 LxtCheckErrnoFailure(sysinfo(NULL), EFAULT);
60 LxtCheckErrno(sysinfo(&SysInfo));
61 LxtLogInfo(
62 "SysInfo.uptime: %d\n"
63 "SysInfo.loads[0]: %d\n"
64 "SysInfo.loads[1]: %d\n"
65 "SysInfo.loads[2]: %d\n"
66 "SysInfo.totalram: %d\n"
67 "SysInfo.freeram: %d\n"
68 "SysInfo.sharedram: %d\n"
69 "SysInfo.bufferram: %d\n"
70 "SysInfo.totalswap: %d\n"
71 "SysInfo.freeswap: %d\n"
72 "SysInfo.procs: %d\n"
73 "SysInfo.pad: %d\n"
74 "SysInfo.totalhigh: %d\n"
75 "SysInfo.freehigh: %d\n"
76 "SysInfo.mem_unit: %d\n",
77 SysInfo.uptime,
78 SysInfo.loads[0],
79 SysInfo.loads[1],
80 SysInfo.loads[2],
81 SysInfo.totalram,
82 SysInfo.freeram,
83 SysInfo.sharedram,
84 SysInfo.bufferram,
85 SysInfo.totalswap,
86 SysInfo.freeswap,
87 SysInfo.procs,
88 SysInfo.pad,
89 SysInfo.totalhigh,
90 SysInfo.freehigh,
91 SysInfo.mem_unit);
92
93 LxtCheckGreater(SysInfo.uptime, 0, "%d");
94 LxtCheckEqual(SysInfo.loads[0], 33984, "%d");
95 LxtCheckEqual(SysInfo.loads[1], 37856, "%d");
96 LxtCheckEqual(SysInfo.loads[2], 38400, "%d");
97 LxtCheckGreater(SysInfo.totalram, 0, "%d");
98 LxtCheckGreater(SysInfo.freeram, 0, "%d");
99 LxtCheckEqual(SysInfo.sharedram, 0, "%d");
100 LxtCheckEqual(SysInfo.bufferram, 0, "%d");
101 LxtCheckGreater(SysInfo.totalswap, 0, "%d");
102 LxtCheckGreater(SysInfo.freeswap, 0, "%d");
103 LxtCheckGreater(SysInfo.procs, 1, "%d"); // TODO: change back to 2, right now there is only a single process running.
104 LxtCheckEqual(SysInfo.pad, 0, "%d");
105 LxtCheckEqual(SysInfo.totalhigh, 139208 * 1024, "%d");
106 LxtCheckEqual(SysInfo.freehigh, 272 * 1024, "%d");
107 LxtCheckEqual(SysInfo.mem_unit, 1, "%d");
108
109 Result = LXT_RESULT_SUCCESS;
110
111 ErrorExit:
112 return Result;
113 }