xref: /aosp_15_r20/external/kmod/testsuite/test-depmod.c (revision cc4ad7da8cefe208cb129ac2aa9a357c7c72deb2)
1*cc4ad7daSAndroid Build Coastguard Worker /*
2*cc4ad7daSAndroid Build Coastguard Worker  * Copyright (C) 2012-2013  ProFUSION embedded systems
3*cc4ad7daSAndroid Build Coastguard Worker  *
4*cc4ad7daSAndroid Build Coastguard Worker  * This program is free software; you can redistribute it and/or
5*cc4ad7daSAndroid Build Coastguard Worker  * modify it under the terms of the GNU Lesser General Public
6*cc4ad7daSAndroid Build Coastguard Worker  * License as published by the Free Software Foundation; either
7*cc4ad7daSAndroid Build Coastguard Worker  * version 2.1 of the License, or (at your option) any later version.
8*cc4ad7daSAndroid Build Coastguard Worker  *
9*cc4ad7daSAndroid Build Coastguard Worker  * This program is distributed in the hope that it will be useful,
10*cc4ad7daSAndroid Build Coastguard Worker  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11*cc4ad7daSAndroid Build Coastguard Worker  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12*cc4ad7daSAndroid Build Coastguard Worker  * Lesser General Public License for more details.
13*cc4ad7daSAndroid Build Coastguard Worker  *
14*cc4ad7daSAndroid Build Coastguard Worker  * You should have received a copy of the GNU Lesser General Public
15*cc4ad7daSAndroid Build Coastguard Worker  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
16*cc4ad7daSAndroid Build Coastguard Worker  */
17*cc4ad7daSAndroid Build Coastguard Worker 
18*cc4ad7daSAndroid Build Coastguard Worker #include <errno.h>
19*cc4ad7daSAndroid Build Coastguard Worker #include <inttypes.h>
20*cc4ad7daSAndroid Build Coastguard Worker #include <stddef.h>
21*cc4ad7daSAndroid Build Coastguard Worker #include <stdio.h>
22*cc4ad7daSAndroid Build Coastguard Worker #include <stdlib.h>
23*cc4ad7daSAndroid Build Coastguard Worker #include <string.h>
24*cc4ad7daSAndroid Build Coastguard Worker #include <unistd.h>
25*cc4ad7daSAndroid Build Coastguard Worker 
26*cc4ad7daSAndroid Build Coastguard Worker #include "testsuite.h"
27*cc4ad7daSAndroid Build Coastguard Worker 
28*cc4ad7daSAndroid Build Coastguard Worker #define MODULES_UNAME "4.4.4"
29*cc4ad7daSAndroid Build Coastguard Worker #define MODULES_ORDER_ROOTFS TESTSUITE_ROOTFS "test-depmod/modules-order-compressed"
30*cc4ad7daSAndroid Build Coastguard Worker #define MODULES_ORDER_LIB_MODULES MODULES_ORDER_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME
depmod_modules_order_for_compressed(const struct test * t)31*cc4ad7daSAndroid Build Coastguard Worker static noreturn int depmod_modules_order_for_compressed(const struct test *t)
32*cc4ad7daSAndroid Build Coastguard Worker {
33*cc4ad7daSAndroid Build Coastguard Worker 	const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
34*cc4ad7daSAndroid Build Coastguard Worker 	const char *const args[] = {
35*cc4ad7daSAndroid Build Coastguard Worker 		progname,
36*cc4ad7daSAndroid Build Coastguard Worker 		NULL,
37*cc4ad7daSAndroid Build Coastguard Worker 	};
38*cc4ad7daSAndroid Build Coastguard Worker 
39*cc4ad7daSAndroid Build Coastguard Worker 	test_spawn_prog(progname, args);
40*cc4ad7daSAndroid Build Coastguard Worker 	exit(EXIT_FAILURE);
41*cc4ad7daSAndroid Build Coastguard Worker }
42*cc4ad7daSAndroid Build Coastguard Worker 
43*cc4ad7daSAndroid Build Coastguard Worker DEFINE_TEST(depmod_modules_order_for_compressed,
44*cc4ad7daSAndroid Build Coastguard Worker 	.description = "check if depmod let aliases in right order when using compressed modules",
45*cc4ad7daSAndroid Build Coastguard Worker 	.config = {
46*cc4ad7daSAndroid Build Coastguard Worker 		[TC_UNAME_R] = MODULES_UNAME,
47*cc4ad7daSAndroid Build Coastguard Worker 		[TC_ROOTFS] = MODULES_ORDER_ROOTFS,
48*cc4ad7daSAndroid Build Coastguard Worker 	},
49*cc4ad7daSAndroid Build Coastguard Worker 	.output = {
50*cc4ad7daSAndroid Build Coastguard Worker 		.files = (const struct keyval[]) {
51*cc4ad7daSAndroid Build Coastguard Worker 			{ MODULES_ORDER_LIB_MODULES "/correct-modules.alias",
52*cc4ad7daSAndroid Build Coastguard Worker 			  MODULES_ORDER_LIB_MODULES "/modules.alias" },
53*cc4ad7daSAndroid Build Coastguard Worker 			{ }
54*cc4ad7daSAndroid Build Coastguard Worker 		},
55*cc4ad7daSAndroid Build Coastguard Worker 	});
56*cc4ad7daSAndroid Build Coastguard Worker 
57*cc4ad7daSAndroid Build Coastguard Worker #define MODULES_OUTDIR_ROOTFS TESTSUITE_ROOTFS "test-depmod/modules-outdir"
58*cc4ad7daSAndroid Build Coastguard Worker #define MODULES_OUTDIR_LIB_MODULES_OUTPUT MODULES_OUTDIR_ROOTFS "/outdir" MODULE_DIRECTORY "/" MODULES_UNAME
59*cc4ad7daSAndroid Build Coastguard Worker #define MODULES_OUTDIR_LIB_MODULES_INPUT MODULES_OUTDIR_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME
depmod_modules_outdir(const struct test * t)60*cc4ad7daSAndroid Build Coastguard Worker static noreturn int depmod_modules_outdir(const struct test *t)
61*cc4ad7daSAndroid Build Coastguard Worker {
62*cc4ad7daSAndroid Build Coastguard Worker 	const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
63*cc4ad7daSAndroid Build Coastguard Worker 	const char *const args[] = {
64*cc4ad7daSAndroid Build Coastguard Worker 		progname,
65*cc4ad7daSAndroid Build Coastguard Worker 		"--outdir", MODULES_OUTDIR_ROOTFS "/outdir/",
66*cc4ad7daSAndroid Build Coastguard Worker 		NULL,
67*cc4ad7daSAndroid Build Coastguard Worker 	};
68*cc4ad7daSAndroid Build Coastguard Worker 
69*cc4ad7daSAndroid Build Coastguard Worker 	test_spawn_prog(progname, args);
70*cc4ad7daSAndroid Build Coastguard Worker 	exit(EXIT_FAILURE);
71*cc4ad7daSAndroid Build Coastguard Worker }
72*cc4ad7daSAndroid Build Coastguard Worker 
73*cc4ad7daSAndroid Build Coastguard Worker DEFINE_TEST(depmod_modules_outdir,
74*cc4ad7daSAndroid Build Coastguard Worker 	.description = "check if depmod honours the outdir option",
75*cc4ad7daSAndroid Build Coastguard Worker 	.config = {
76*cc4ad7daSAndroid Build Coastguard Worker 		[TC_UNAME_R] = MODULES_UNAME,
77*cc4ad7daSAndroid Build Coastguard Worker 		[TC_ROOTFS] = MODULES_OUTDIR_ROOTFS,
78*cc4ad7daSAndroid Build Coastguard Worker 	},
79*cc4ad7daSAndroid Build Coastguard Worker 	.output = {
80*cc4ad7daSAndroid Build Coastguard Worker 		.files = (const struct keyval[]) {
81*cc4ad7daSAndroid Build Coastguard Worker 			{ MODULES_OUTDIR_LIB_MODULES_OUTPUT "/modules.dep",
82*cc4ad7daSAndroid Build Coastguard Worker 			  MODULES_OUTDIR_ROOTFS "/correct-modules.dep" },
83*cc4ad7daSAndroid Build Coastguard Worker 			{ MODULES_OUTDIR_LIB_MODULES_OUTPUT "/modules.alias",
84*cc4ad7daSAndroid Build Coastguard Worker 			  MODULES_OUTDIR_ROOTFS "/correct-modules.alias" },
85*cc4ad7daSAndroid Build Coastguard Worker 			{ }
86*cc4ad7daSAndroid Build Coastguard Worker 		},
87*cc4ad7daSAndroid Build Coastguard Worker 	});
88*cc4ad7daSAndroid Build Coastguard Worker 
89*cc4ad7daSAndroid Build Coastguard Worker #define SEARCH_ORDER_SIMPLE_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-simple"
90*cc4ad7daSAndroid Build Coastguard Worker #define SEARCH_ORDER_SIMPLE_LIB_MODULES SEARCH_ORDER_SIMPLE_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME
depmod_search_order_simple(const struct test * t)91*cc4ad7daSAndroid Build Coastguard Worker static noreturn int depmod_search_order_simple(const struct test *t)
92*cc4ad7daSAndroid Build Coastguard Worker {
93*cc4ad7daSAndroid Build Coastguard Worker 	const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
94*cc4ad7daSAndroid Build Coastguard Worker 	const char *const args[] = {
95*cc4ad7daSAndroid Build Coastguard Worker 		progname,
96*cc4ad7daSAndroid Build Coastguard Worker 		NULL,
97*cc4ad7daSAndroid Build Coastguard Worker 	};
98*cc4ad7daSAndroid Build Coastguard Worker 
99*cc4ad7daSAndroid Build Coastguard Worker 	test_spawn_prog(progname, args);
100*cc4ad7daSAndroid Build Coastguard Worker 	exit(EXIT_FAILURE);
101*cc4ad7daSAndroid Build Coastguard Worker }
102*cc4ad7daSAndroid Build Coastguard Worker DEFINE_TEST(depmod_search_order_simple,
103*cc4ad7daSAndroid Build Coastguard Worker 	.description = "check if depmod honor search order in config",
104*cc4ad7daSAndroid Build Coastguard Worker 	.config = {
105*cc4ad7daSAndroid Build Coastguard Worker 		[TC_UNAME_R] = MODULES_UNAME,
106*cc4ad7daSAndroid Build Coastguard Worker 		[TC_ROOTFS] = SEARCH_ORDER_SIMPLE_ROOTFS,
107*cc4ad7daSAndroid Build Coastguard Worker 	},
108*cc4ad7daSAndroid Build Coastguard Worker 	.output = {
109*cc4ad7daSAndroid Build Coastguard Worker 		.files = (const struct keyval[]) {
110*cc4ad7daSAndroid Build Coastguard Worker 			{ SEARCH_ORDER_SIMPLE_LIB_MODULES "/correct-modules.dep",
111*cc4ad7daSAndroid Build Coastguard Worker 			  SEARCH_ORDER_SIMPLE_LIB_MODULES "/modules.dep" },
112*cc4ad7daSAndroid Build Coastguard Worker 			{ }
113*cc4ad7daSAndroid Build Coastguard Worker 		},
114*cc4ad7daSAndroid Build Coastguard Worker 	});
115*cc4ad7daSAndroid Build Coastguard Worker 
116*cc4ad7daSAndroid Build Coastguard Worker #define SEARCH_ORDER_SAME_PREFIX_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-same-prefix"
117*cc4ad7daSAndroid Build Coastguard Worker #define SEARCH_ORDER_SAME_PREFIX_LIB_MODULES SEARCH_ORDER_SAME_PREFIX_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME
depmod_search_order_same_prefix(const struct test * t)118*cc4ad7daSAndroid Build Coastguard Worker static noreturn int depmod_search_order_same_prefix(const struct test *t)
119*cc4ad7daSAndroid Build Coastguard Worker {
120*cc4ad7daSAndroid Build Coastguard Worker 	const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
121*cc4ad7daSAndroid Build Coastguard Worker 	const char *const args[] = {
122*cc4ad7daSAndroid Build Coastguard Worker 		progname,
123*cc4ad7daSAndroid Build Coastguard Worker 		NULL,
124*cc4ad7daSAndroid Build Coastguard Worker 	};
125*cc4ad7daSAndroid Build Coastguard Worker 
126*cc4ad7daSAndroid Build Coastguard Worker 	test_spawn_prog(progname, args);
127*cc4ad7daSAndroid Build Coastguard Worker 	exit(EXIT_FAILURE);
128*cc4ad7daSAndroid Build Coastguard Worker }
129*cc4ad7daSAndroid Build Coastguard Worker DEFINE_TEST(depmod_search_order_same_prefix,
130*cc4ad7daSAndroid Build Coastguard Worker 	.description = "check if depmod honor search order in config with same prefix",
131*cc4ad7daSAndroid Build Coastguard Worker 	.config = {
132*cc4ad7daSAndroid Build Coastguard Worker 		[TC_UNAME_R] = MODULES_UNAME,
133*cc4ad7daSAndroid Build Coastguard Worker 		[TC_ROOTFS] = SEARCH_ORDER_SAME_PREFIX_ROOTFS,
134*cc4ad7daSAndroid Build Coastguard Worker 	},
135*cc4ad7daSAndroid Build Coastguard Worker 	.output = {
136*cc4ad7daSAndroid Build Coastguard Worker 		.files = (const struct keyval[]) {
137*cc4ad7daSAndroid Build Coastguard Worker 			{ SEARCH_ORDER_SAME_PREFIX_LIB_MODULES "/correct-modules.dep",
138*cc4ad7daSAndroid Build Coastguard Worker 			  SEARCH_ORDER_SAME_PREFIX_LIB_MODULES "/modules.dep" },
139*cc4ad7daSAndroid Build Coastguard Worker 			{ }
140*cc4ad7daSAndroid Build Coastguard Worker 		},
141*cc4ad7daSAndroid Build Coastguard Worker 	});
142*cc4ad7daSAndroid Build Coastguard Worker 
143*cc4ad7daSAndroid Build Coastguard Worker #define DETECT_LOOP_ROOTFS TESTSUITE_ROOTFS "test-depmod/detect-loop"
depmod_detect_loop(const struct test * t)144*cc4ad7daSAndroid Build Coastguard Worker static noreturn int depmod_detect_loop(const struct test *t)
145*cc4ad7daSAndroid Build Coastguard Worker {
146*cc4ad7daSAndroid Build Coastguard Worker 	const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
147*cc4ad7daSAndroid Build Coastguard Worker 	const char *const args[] = {
148*cc4ad7daSAndroid Build Coastguard Worker 		progname,
149*cc4ad7daSAndroid Build Coastguard Worker 		NULL,
150*cc4ad7daSAndroid Build Coastguard Worker 	};
151*cc4ad7daSAndroid Build Coastguard Worker 
152*cc4ad7daSAndroid Build Coastguard Worker 	test_spawn_prog(progname, args);
153*cc4ad7daSAndroid Build Coastguard Worker 	exit(EXIT_FAILURE);
154*cc4ad7daSAndroid Build Coastguard Worker }
155*cc4ad7daSAndroid Build Coastguard Worker DEFINE_TEST(depmod_detect_loop,
156*cc4ad7daSAndroid Build Coastguard Worker 	.description = "check if depmod detects module loops correctly",
157*cc4ad7daSAndroid Build Coastguard Worker 	.config = {
158*cc4ad7daSAndroid Build Coastguard Worker 		[TC_UNAME_R] = MODULES_UNAME,
159*cc4ad7daSAndroid Build Coastguard Worker 		[TC_ROOTFS] = DETECT_LOOP_ROOTFS,
160*cc4ad7daSAndroid Build Coastguard Worker 	},
161*cc4ad7daSAndroid Build Coastguard Worker 	.expected_fail = true,
162*cc4ad7daSAndroid Build Coastguard Worker 	.output = {
163*cc4ad7daSAndroid Build Coastguard Worker 		.err = DETECT_LOOP_ROOTFS "/correct.txt",
164*cc4ad7daSAndroid Build Coastguard Worker 	});
165*cc4ad7daSAndroid Build Coastguard Worker 
166*cc4ad7daSAndroid Build Coastguard Worker #define SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-external-first"
167*cc4ad7daSAndroid Build Coastguard Worker #define SEARCH_ORDER_EXTERNAL_FIRST_LIB_MODULES SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME
depmod_search_order_external_first(const struct test * t)168*cc4ad7daSAndroid Build Coastguard Worker static noreturn int depmod_search_order_external_first(const struct test *t)
169*cc4ad7daSAndroid Build Coastguard Worker {
170*cc4ad7daSAndroid Build Coastguard Worker 	const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
171*cc4ad7daSAndroid Build Coastguard Worker 	const char *const args[] = {
172*cc4ad7daSAndroid Build Coastguard Worker 		progname,
173*cc4ad7daSAndroid Build Coastguard Worker 		NULL,
174*cc4ad7daSAndroid Build Coastguard Worker 	};
175*cc4ad7daSAndroid Build Coastguard Worker 
176*cc4ad7daSAndroid Build Coastguard Worker 	test_spawn_prog(progname, args);
177*cc4ad7daSAndroid Build Coastguard Worker 	exit(EXIT_FAILURE);
178*cc4ad7daSAndroid Build Coastguard Worker }
179*cc4ad7daSAndroid Build Coastguard Worker DEFINE_TEST(depmod_search_order_external_first,
180*cc4ad7daSAndroid Build Coastguard Worker 	.description = "check if depmod honor external keyword with higher priority",
181*cc4ad7daSAndroid Build Coastguard Worker 	.config = {
182*cc4ad7daSAndroid Build Coastguard Worker 		[TC_UNAME_R] = MODULES_UNAME,
183*cc4ad7daSAndroid Build Coastguard Worker 		[TC_ROOTFS] = SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS,
184*cc4ad7daSAndroid Build Coastguard Worker 	},
185*cc4ad7daSAndroid Build Coastguard Worker 	.output = {
186*cc4ad7daSAndroid Build Coastguard Worker 		.files = (const struct keyval[]) {
187*cc4ad7daSAndroid Build Coastguard Worker 			{ SEARCH_ORDER_EXTERNAL_FIRST_LIB_MODULES "/correct-modules.dep",
188*cc4ad7daSAndroid Build Coastguard Worker 			  SEARCH_ORDER_EXTERNAL_FIRST_LIB_MODULES "/modules.dep" },
189*cc4ad7daSAndroid Build Coastguard Worker 			{ }
190*cc4ad7daSAndroid Build Coastguard Worker 		},
191*cc4ad7daSAndroid Build Coastguard Worker 	});
192*cc4ad7daSAndroid Build Coastguard Worker 
193*cc4ad7daSAndroid Build Coastguard Worker #define SEARCH_ORDER_EXTERNAL_LAST_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-external-last"
194*cc4ad7daSAndroid Build Coastguard Worker #define SEARCH_ORDER_EXTERNAL_LAST_LIB_MODULES SEARCH_ORDER_EXTERNAL_LAST_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME
depmod_search_order_external_last(const struct test * t)195*cc4ad7daSAndroid Build Coastguard Worker static noreturn int depmod_search_order_external_last(const struct test *t)
196*cc4ad7daSAndroid Build Coastguard Worker {
197*cc4ad7daSAndroid Build Coastguard Worker 	const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
198*cc4ad7daSAndroid Build Coastguard Worker 	const char *const args[] = {
199*cc4ad7daSAndroid Build Coastguard Worker 		progname,
200*cc4ad7daSAndroid Build Coastguard Worker 		NULL,
201*cc4ad7daSAndroid Build Coastguard Worker 	};
202*cc4ad7daSAndroid Build Coastguard Worker 
203*cc4ad7daSAndroid Build Coastguard Worker 	test_spawn_prog(progname, args);
204*cc4ad7daSAndroid Build Coastguard Worker 	exit(EXIT_FAILURE);
205*cc4ad7daSAndroid Build Coastguard Worker }
206*cc4ad7daSAndroid Build Coastguard Worker DEFINE_TEST(depmod_search_order_external_last,
207*cc4ad7daSAndroid Build Coastguard Worker 	.description = "check if depmod honor external keyword with lower priority",
208*cc4ad7daSAndroid Build Coastguard Worker 	.config = {
209*cc4ad7daSAndroid Build Coastguard Worker 		[TC_UNAME_R] = MODULES_UNAME,
210*cc4ad7daSAndroid Build Coastguard Worker 		[TC_ROOTFS] = SEARCH_ORDER_EXTERNAL_LAST_ROOTFS,
211*cc4ad7daSAndroid Build Coastguard Worker 	},
212*cc4ad7daSAndroid Build Coastguard Worker 	.output = {
213*cc4ad7daSAndroid Build Coastguard Worker 		.files = (const struct keyval[]) {
214*cc4ad7daSAndroid Build Coastguard Worker 			{ SEARCH_ORDER_EXTERNAL_LAST_LIB_MODULES "/correct-modules.dep",
215*cc4ad7daSAndroid Build Coastguard Worker 			  SEARCH_ORDER_EXTERNAL_LAST_LIB_MODULES "/modules.dep" },
216*cc4ad7daSAndroid Build Coastguard Worker 			{ }
217*cc4ad7daSAndroid Build Coastguard Worker 		},
218*cc4ad7daSAndroid Build Coastguard Worker 	});
219*cc4ad7daSAndroid Build Coastguard Worker 
220*cc4ad7daSAndroid Build Coastguard Worker #define SEARCH_ORDER_OVERRIDE_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-override"
221*cc4ad7daSAndroid Build Coastguard Worker #define SEARCH_ORDER_OVERRIDE_LIB_MODULES SEARCH_ORDER_OVERRIDE_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME
depmod_search_order_override(const struct test * t)222*cc4ad7daSAndroid Build Coastguard Worker static noreturn int depmod_search_order_override(const struct test *t)
223*cc4ad7daSAndroid Build Coastguard Worker {
224*cc4ad7daSAndroid Build Coastguard Worker 	const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
225*cc4ad7daSAndroid Build Coastguard Worker 	const char *const args[] = {
226*cc4ad7daSAndroid Build Coastguard Worker 		progname,
227*cc4ad7daSAndroid Build Coastguard Worker 		NULL,
228*cc4ad7daSAndroid Build Coastguard Worker 	};
229*cc4ad7daSAndroid Build Coastguard Worker 
230*cc4ad7daSAndroid Build Coastguard Worker 	test_spawn_prog(progname, args);
231*cc4ad7daSAndroid Build Coastguard Worker 	exit(EXIT_FAILURE);
232*cc4ad7daSAndroid Build Coastguard Worker }
233*cc4ad7daSAndroid Build Coastguard Worker DEFINE_TEST(depmod_search_order_override,
234*cc4ad7daSAndroid Build Coastguard Worker 	.description = "check if depmod honor override keyword",
235*cc4ad7daSAndroid Build Coastguard Worker 	.config = {
236*cc4ad7daSAndroid Build Coastguard Worker 		[TC_UNAME_R] = MODULES_UNAME,
237*cc4ad7daSAndroid Build Coastguard Worker 		[TC_ROOTFS] = SEARCH_ORDER_OVERRIDE_ROOTFS,
238*cc4ad7daSAndroid Build Coastguard Worker 	},
239*cc4ad7daSAndroid Build Coastguard Worker 	.output = {
240*cc4ad7daSAndroid Build Coastguard Worker 		.files = (const struct keyval[]) {
241*cc4ad7daSAndroid Build Coastguard Worker 			{ SEARCH_ORDER_OVERRIDE_LIB_MODULES "/correct-modules.dep",
242*cc4ad7daSAndroid Build Coastguard Worker 			  SEARCH_ORDER_OVERRIDE_LIB_MODULES "/modules.dep" },
243*cc4ad7daSAndroid Build Coastguard Worker 			{ }
244*cc4ad7daSAndroid Build Coastguard Worker 		},
245*cc4ad7daSAndroid Build Coastguard Worker 	});
246*cc4ad7daSAndroid Build Coastguard Worker 
247*cc4ad7daSAndroid Build Coastguard Worker TESTSUITE_MAIN();
248