34
34
#include "bpf_iter_ksym.skel.h"
35
35
#include "bpf_iter_sockmap.skel.h"
36
36
37
- static int duration ;
38
-
39
37
static void test_btf_id_or_null (void )
40
38
{
41
39
struct bpf_iter_test_kern3 * skel ;
@@ -64,7 +62,7 @@ static void do_dummy_read_opts(struct bpf_program *prog, struct bpf_iter_attach_
64
62
/* not check contents, but ensure read() ends without error */
65
63
while ((len = read (iter_fd , buf , sizeof (buf ))) > 0 )
66
64
;
67
- CHECK (len < 0 , "read" , "read failed: %s\n" , strerror ( errno ) );
65
+ ASSERT_GE (len , 0 , "read" );
68
66
69
67
close (iter_fd );
70
68
@@ -413,7 +411,7 @@ static int do_btf_read(struct bpf_iter_task_btf *skel)
413
411
goto free_link ;
414
412
}
415
413
416
- if (CHECK (err < 0 , "read" , "read failed: %s\n" , strerror ( errno ) ))
414
+ if (! ASSERT_GE (err , 0 , "read" ))
417
415
goto free_link ;
418
416
419
417
ASSERT_HAS_SUBSTR (taskbuf , "(struct task_struct)" ,
@@ -526,11 +524,11 @@ static int do_read_with_fd(int iter_fd, const char *expected,
526
524
start = 0 ;
527
525
while ((len = read (iter_fd , buf + start , read_buf_len )) > 0 ) {
528
526
start += len ;
529
- if (CHECK (start >= 16 , "read" , "read len %d\n" , len ))
527
+ if (! ASSERT_LT (start , 16 , "read" ))
530
528
return -1 ;
531
529
read_buf_len = read_one_char ? 1 : 16 - start ;
532
530
}
533
- if (CHECK (len < 0 , "read" , "read failed: %s\n" , strerror ( errno ) ))
531
+ if (! ASSERT_GE (len , 0 , "read" ))
534
532
return -1 ;
535
533
536
534
if (!ASSERT_STREQ (buf , expected , "read" ))
@@ -571,8 +569,7 @@ static int do_read(const char *path, const char *expected)
571
569
int err , iter_fd ;
572
570
573
571
iter_fd = open (path , O_RDONLY );
574
- if (CHECK (iter_fd < 0 , "open" , "open %s failed: %s\n" ,
575
- path , strerror (errno )))
572
+ if (!ASSERT_GE (iter_fd , 0 , "open" ))
576
573
return -1 ;
577
574
578
575
err = do_read_with_fd (iter_fd , expected , false);
@@ -600,7 +597,7 @@ static void test_file_iter(void)
600
597
unlink (path );
601
598
602
599
err = bpf_link__pin (link , path );
603
- if (CHECK (err , "pin_iter" , "pin_iter to %s failed: %d\n" , path , err ))
600
+ if (! ASSERT_OK (err , "pin_iter" ))
604
601
goto free_link ;
605
602
606
603
err = do_read (path , "abcd" );
@@ -651,12 +648,10 @@ static void test_overflow(bool test_e2big_overflow, bool ret1)
651
648
* overflow and needs restart.
652
649
*/
653
650
map1_fd = bpf_map_create (BPF_MAP_TYPE_ARRAY , NULL , 4 , 8 , 1 , NULL );
654
- if (CHECK (map1_fd < 0 , "bpf_map_create" ,
655
- "map_creation failed: %s\n" , strerror (errno )))
651
+ if (!ASSERT_GE (map1_fd , 0 , "bpf_map_create" ))
656
652
goto out ;
657
653
map2_fd = bpf_map_create (BPF_MAP_TYPE_ARRAY , NULL , 4 , 8 , 1 , NULL );
658
- if (CHECK (map2_fd < 0 , "bpf_map_create" ,
659
- "map_creation failed: %s\n" , strerror (errno )))
654
+ if (!ASSERT_GE (map2_fd , 0 , "bpf_map_create" ))
660
655
goto free_map1 ;
661
656
662
657
/* bpf_seq_printf kernel buffer is 8 pages, so one map
@@ -685,14 +680,12 @@ static void test_overflow(bool test_e2big_overflow, bool ret1)
685
680
/* setup filtering map_id in bpf program */
686
681
map_info_len = sizeof (map_info );
687
682
err = bpf_map_get_info_by_fd (map1_fd , & map_info , & map_info_len );
688
- if (CHECK (err , "get_map_info" , "get map info failed: %s\n" ,
689
- strerror (errno )))
683
+ if (!ASSERT_OK (err , "get_map_info" ))
690
684
goto free_map2 ;
691
685
skel -> bss -> map1_id = map_info .id ;
692
686
693
687
err = bpf_map_get_info_by_fd (map2_fd , & map_info , & map_info_len );
694
- if (CHECK (err , "get_map_info" , "get map info failed: %s\n" ,
695
- strerror (errno )))
688
+ if (!ASSERT_OK (err , "get_map_info" ))
696
689
goto free_map2 ;
697
690
skel -> bss -> map2_id = map_info .id ;
698
691
@@ -714,16 +707,14 @@ static void test_overflow(bool test_e2big_overflow, bool ret1)
714
707
while ((len = read (iter_fd , buf , expected_read_len )) > 0 )
715
708
total_read_len += len ;
716
709
717
- CHECK (len != -1 || errno != E2BIG , "read" ,
718
- "expected ret -1, errno E2BIG, but get ret %d, error %s\n" ,
719
- len , strerror (errno ));
710
+ ASSERT_EQ (len , -1 , "read" );
711
+ ASSERT_EQ (errno , E2BIG , "read" );
720
712
goto free_buf ;
721
713
} else if (!ret1 ) {
722
714
while ((len = read (iter_fd , buf , expected_read_len )) > 0 )
723
715
total_read_len += len ;
724
716
725
- if (CHECK (len < 0 , "read" , "read failed: %s\n" ,
726
- strerror (errno )))
717
+ if (!ASSERT_GE (len , 0 , "read" ))
727
718
goto free_buf ;
728
719
} else {
729
720
do {
@@ -732,8 +723,7 @@ static void test_overflow(bool test_e2big_overflow, bool ret1)
732
723
total_read_len += len ;
733
724
} while (len > 0 || len == - EAGAIN );
734
725
735
- if (CHECK (len < 0 , "read" , "read failed: %s\n" ,
736
- strerror (errno )))
726
+ if (!ASSERT_GE (len , 0 , "read" ))
737
727
goto free_buf ;
738
728
}
739
729
@@ -836,7 +826,7 @@ static void test_bpf_hash_map(void)
836
826
/* do some tests */
837
827
while ((len = read (iter_fd , buf , sizeof (buf ))) > 0 )
838
828
;
839
- if (CHECK (len < 0 , "read" , "read failed: %s\n" , strerror ( errno ) ))
829
+ if (! ASSERT_GE (len , 0 , "read" ))
840
830
goto close_iter ;
841
831
842
832
/* test results */
@@ -917,7 +907,7 @@ static void test_bpf_percpu_hash_map(void)
917
907
/* do some tests */
918
908
while ((len = read (iter_fd , buf , sizeof (buf ))) > 0 )
919
909
;
920
- if (CHECK (len < 0 , "read" , "read failed: %s\n" , strerror ( errno ) ))
910
+ if (! ASSERT_GE (len , 0 , "read" ))
921
911
goto close_iter ;
922
912
923
913
/* test results */
@@ -983,17 +973,14 @@ static void test_bpf_array_map(void)
983
973
start = 0 ;
984
974
while ((len = read (iter_fd , buf + start , sizeof (buf ) - start )) > 0 )
985
975
start += len ;
986
- if (CHECK (len < 0 , "read" , "read failed: %s\n" , strerror ( errno ) ))
976
+ if (! ASSERT_GE (len , 0 , "read" ))
987
977
goto close_iter ;
988
978
989
979
/* test results */
990
980
res_first_key = * (__u32 * )buf ;
991
981
res_first_val = * (__u64 * )(buf + sizeof (__u32 ));
992
- if (CHECK (res_first_key != 0 || res_first_val != first_val ,
993
- "bpf_seq_write" ,
994
- "seq_write failure: first key %u vs expected 0, "
995
- " first value %llu vs expected %llu\n" ,
996
- res_first_key , res_first_val , first_val ))
982
+ if (!ASSERT_EQ (res_first_key , 0 , "bpf_seq_write" ) ||
983
+ !ASSERT_EQ (res_first_val , first_val , "bpf_seq_write" ))
997
984
goto close_iter ;
998
985
999
986
if (!ASSERT_EQ (skel -> bss -> key_sum , expected_key , "key_sum" ))
@@ -1092,7 +1079,7 @@ static void test_bpf_percpu_array_map(void)
1092
1079
/* do some tests */
1093
1080
while ((len = read (iter_fd , buf , sizeof (buf ))) > 0 )
1094
1081
;
1095
- if (CHECK (len < 0 , "read" , "read failed: %s\n" , strerror ( errno ) ))
1082
+ if (! ASSERT_GE (len , 0 , "read" ))
1096
1083
goto close_iter ;
1097
1084
1098
1085
/* test results */
@@ -1131,6 +1118,7 @@ static void test_bpf_sk_storage_delete(void)
1131
1118
sock_fd = socket (AF_INET6 , SOCK_STREAM , 0 );
1132
1119
if (!ASSERT_GE (sock_fd , 0 , "socket" ))
1133
1120
goto out ;
1121
+
1134
1122
err = bpf_map_update_elem (map_fd , & sock_fd , & val , BPF_NOEXIST );
1135
1123
if (!ASSERT_OK (err , "map_update" ))
1136
1124
goto out ;
@@ -1151,14 +1139,19 @@ static void test_bpf_sk_storage_delete(void)
1151
1139
/* do some tests */
1152
1140
while ((len = read (iter_fd , buf , sizeof (buf ))) > 0 )
1153
1141
;
1154
- if (CHECK (len < 0 , "read" , "read failed: %s\n" , strerror ( errno ) ))
1142
+ if (! ASSERT_GE (len , 0 , "read" ))
1155
1143
goto close_iter ;
1156
1144
1157
1145
/* test results */
1158
1146
err = bpf_map_lookup_elem (map_fd , & sock_fd , & val );
1159
- if (CHECK (!err || errno != ENOENT , "bpf_map_lookup_elem" ,
1160
- "map value wasn't deleted (err=%d, errno=%d)\n" , err , errno ))
1161
- goto close_iter ;
1147
+
1148
+ /* Note: The following assertions serve to ensure
1149
+ * the value was deleted. It does so by asserting
1150
+ * that bpf_map_lookup_elem has failed. This might
1151
+ * seem counterintuitive at first.
1152
+ */
1153
+ ASSERT_ERR (err , "bpf_map_lookup_elem" );
1154
+ ASSERT_EQ (errno , ENOENT , "bpf_map_lookup_elem" );
1162
1155
1163
1156
close_iter :
1164
1157
close (iter_fd );
@@ -1203,17 +1196,15 @@ static void test_bpf_sk_storage_get(void)
1203
1196
do_dummy_read (skel -> progs .fill_socket_owner );
1204
1197
1205
1198
err = bpf_map_lookup_elem (map_fd , & sock_fd , & val );
1206
- if (CHECK (err || val != getpid (), "bpf_map_lookup_elem" ,
1207
- "map value wasn't set correctly (expected %d, got %d, err=%d)\n" ,
1208
- getpid (), val , err ))
1199
+ if (!ASSERT_OK (err , "bpf_map_lookup_elem" ) ||
1200
+ !ASSERT_EQ (val , getpid (), "bpf_map_lookup_elem" ))
1209
1201
goto close_socket ;
1210
1202
1211
1203
do_dummy_read (skel -> progs .negate_socket_local_storage );
1212
1204
1213
1205
err = bpf_map_lookup_elem (map_fd , & sock_fd , & val );
1214
- CHECK (err || val != - getpid (), "bpf_map_lookup_elem" ,
1215
- "map value wasn't set correctly (expected %d, got %d, err=%d)\n" ,
1216
- - getpid (), val , err );
1206
+ ASSERT_OK (err , "bpf_map_lookup_elem" );
1207
+ ASSERT_EQ (val , - getpid (), "bpf_map_lookup_elem" );
1217
1208
1218
1209
close_socket :
1219
1210
close (sock_fd );
@@ -1290,7 +1281,7 @@ static void test_bpf_sk_storage_map(void)
1290
1281
/* do some tests */
1291
1282
while ((len = read (iter_fd , buf , sizeof (buf ))) > 0 )
1292
1283
;
1293
- if (CHECK (len < 0 , "read" , "read failed: %s\n" , strerror ( errno ) ))
1284
+ if (! ASSERT_GE (len , 0 , "read" ))
1294
1285
goto close_iter ;
1295
1286
1296
1287
/* test results */
0 commit comments