diff options
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/align.c')
| -rw-r--r-- | tools/testing/selftests/bpf/prog_tests/align.c | 11 | 
1 files changed, 10 insertions, 1 deletions
| diff --git a/tools/testing/selftests/bpf/prog_tests/align.c b/tools/testing/selftests/bpf/prog_tests/align.c index 4ebd0da898f5..1d53a8561ee2 100644 --- a/tools/testing/selftests/bpf/prog_tests/align.c +++ b/tools/testing/selftests/bpf/prog_tests/align.c @@ -610,9 +610,11 @@ static int do_test_single(struct bpf_align_test *test)  		.log_size = sizeof(bpf_vlog),  		.log_level = 2,  	); +	const char *main_pass_start = "0: R1=ctx() R10=fp0";  	const char *line_ptr;  	int cur_line = -1;  	int prog_len, i; +	char *start;  	int fd_prog;  	int ret; @@ -632,7 +634,13 @@ static int do_test_single(struct bpf_align_test *test)  		ret = 0;  		/* We make a local copy so that we can strtok() it */  		strncpy(bpf_vlog_copy, bpf_vlog, sizeof(bpf_vlog_copy)); -		line_ptr = strtok(bpf_vlog_copy, "\n"); +		start = strstr(bpf_vlog_copy, main_pass_start); +		if (!start) { +			ret = 1; +			printf("Can't find initial line '%s'\n", main_pass_start); +			goto out; +		} +		line_ptr = strtok(start, "\n");  		for (i = 0; i < MAX_MATCHES; i++) {  			struct bpf_reg_match m = test->matches[i];  			const char *p; @@ -682,6 +690,7 @@ static int do_test_single(struct bpf_align_test *test)  				break;  			}  		} +out:  		if (fd_prog >= 0)  			close(fd_prog);  	} | 
