xref: /aosp_15_r20/external/igt-gpu-tools/runner/job_list.h (revision d83cc019efdc2edc6c4b16e9034a3ceb8d35d77c)
1*d83cc019SAndroid Build Coastguard Worker #ifndef RUNNER_JOB_LIST_H
2*d83cc019SAndroid Build Coastguard Worker #define RUNNER_JOB_LIST_H
3*d83cc019SAndroid Build Coastguard Worker 
4*d83cc019SAndroid Build Coastguard Worker #include <stdbool.h>
5*d83cc019SAndroid Build Coastguard Worker 
6*d83cc019SAndroid Build Coastguard Worker #include "settings.h"
7*d83cc019SAndroid Build Coastguard Worker 
8*d83cc019SAndroid Build Coastguard Worker struct job_list_entry {
9*d83cc019SAndroid Build Coastguard Worker 	char *binary;
10*d83cc019SAndroid Build Coastguard Worker 	char **subtests;
11*d83cc019SAndroid Build Coastguard Worker 	/*
12*d83cc019SAndroid Build Coastguard Worker 	 * 0 = all, or test has no subtests.
13*d83cc019SAndroid Build Coastguard Worker 	 *
14*d83cc019SAndroid Build Coastguard Worker 	 * If the original job_list was to run all subtests of a
15*d83cc019SAndroid Build Coastguard Worker 	 * binary and such a run was incomplete, resuming from the
16*d83cc019SAndroid Build Coastguard Worker 	 * execution journal will fill the subtest array with already
17*d83cc019SAndroid Build Coastguard Worker 	 * started subtests prepended with '!' so the test binary will
18*d83cc019SAndroid Build Coastguard Worker 	 * not run them. subtest_count will still reflect the size of
19*d83cc019SAndroid Build Coastguard Worker 	 * the above array.
20*d83cc019SAndroid Build Coastguard Worker 	 */
21*d83cc019SAndroid Build Coastguard Worker 	size_t subtest_count;
22*d83cc019SAndroid Build Coastguard Worker };
23*d83cc019SAndroid Build Coastguard Worker 
24*d83cc019SAndroid Build Coastguard Worker struct job_list
25*d83cc019SAndroid Build Coastguard Worker {
26*d83cc019SAndroid Build Coastguard Worker 	struct job_list_entry *entries;
27*d83cc019SAndroid Build Coastguard Worker 	size_t size;
28*d83cc019SAndroid Build Coastguard Worker };
29*d83cc019SAndroid Build Coastguard Worker 
30*d83cc019SAndroid Build Coastguard Worker void generate_piglit_name(const char *binary, const char *subtest,
31*d83cc019SAndroid Build Coastguard Worker 			  char *namebuf, size_t namebuf_size);
32*d83cc019SAndroid Build Coastguard Worker 
33*d83cc019SAndroid Build Coastguard Worker void init_job_list(struct job_list *job_list);
34*d83cc019SAndroid Build Coastguard Worker void free_job_list(struct job_list *job_list);
35*d83cc019SAndroid Build Coastguard Worker bool create_job_list(struct job_list *job_list, struct settings *settings);
36*d83cc019SAndroid Build Coastguard Worker 
37*d83cc019SAndroid Build Coastguard Worker bool serialize_job_list(struct job_list *job_list, struct settings *settings);
38*d83cc019SAndroid Build Coastguard Worker bool read_job_list(struct job_list *job_list, int dirfd);
39*d83cc019SAndroid Build Coastguard Worker void list_all_tests(struct job_list *lst);
40*d83cc019SAndroid Build Coastguard Worker 
41*d83cc019SAndroid Build Coastguard Worker #endif
42