xref: /aosp_15_r20/external/ltp/testcases/kernel/syscalls/getrusage/getrusage03.h (revision 49cdfc7efb34551c7342be41a7384b9c40d7cab7)
1*49cdfc7eSAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0-only
2*49cdfc7eSAndroid Build Coastguard Worker  * Copyright (C) 2011  Red Hat, Inc.
3*49cdfc7eSAndroid Build Coastguard Worker  * Copyright (C) 2021 Xie Ziyao <[email protected]>
4*49cdfc7eSAndroid Build Coastguard Worker  */
5*49cdfc7eSAndroid Build Coastguard Worker 
6*49cdfc7eSAndroid Build Coastguard Worker #ifndef LTP_GETRUSAGE03_H
7*49cdfc7eSAndroid Build Coastguard Worker #define LTP_GETRUSAGE03_H
8*49cdfc7eSAndroid Build Coastguard Worker 
9*49cdfc7eSAndroid Build Coastguard Worker #include "tst_test.h"
10*49cdfc7eSAndroid Build Coastguard Worker 
11*49cdfc7eSAndroid Build Coastguard Worker #define DELTA_MAX 20480
12*49cdfc7eSAndroid Build Coastguard Worker 
consume_mb(int consume_nr)13*49cdfc7eSAndroid Build Coastguard Worker static void consume_mb(int consume_nr)
14*49cdfc7eSAndroid Build Coastguard Worker {
15*49cdfc7eSAndroid Build Coastguard Worker 	void *ptr;
16*49cdfc7eSAndroid Build Coastguard Worker 	size_t size;
17*49cdfc7eSAndroid Build Coastguard Worker 	unsigned long vmswap_size;
18*49cdfc7eSAndroid Build Coastguard Worker 
19*49cdfc7eSAndroid Build Coastguard Worker 	mlockall(MCL_CURRENT|MCL_FUTURE);
20*49cdfc7eSAndroid Build Coastguard Worker 
21*49cdfc7eSAndroid Build Coastguard Worker 	size = consume_nr * 1024 * 1024;
22*49cdfc7eSAndroid Build Coastguard Worker 	ptr = SAFE_MALLOC(size);
23*49cdfc7eSAndroid Build Coastguard Worker 	memset(ptr, 0, size);
24*49cdfc7eSAndroid Build Coastguard Worker 
25*49cdfc7eSAndroid Build Coastguard Worker 	SAFE_FILE_LINES_SCANF("/proc/self/status", "VmSwap: %lu", &vmswap_size);
26*49cdfc7eSAndroid Build Coastguard Worker 	if (vmswap_size > 0)
27*49cdfc7eSAndroid Build Coastguard Worker 		tst_brk(TBROK, "VmSwap is not zero");
28*49cdfc7eSAndroid Build Coastguard Worker }
29*49cdfc7eSAndroid Build Coastguard Worker 
is_in_delta(long value)30*49cdfc7eSAndroid Build Coastguard Worker static int is_in_delta(long value)
31*49cdfc7eSAndroid Build Coastguard Worker {
32*49cdfc7eSAndroid Build Coastguard Worker 	return (value >= -DELTA_MAX && value <= DELTA_MAX);
33*49cdfc7eSAndroid Build Coastguard Worker }
34*49cdfc7eSAndroid Build Coastguard Worker 
35*49cdfc7eSAndroid Build Coastguard Worker #endif //LTP_GETRUSAGE03_H
36