Lines Matching +full:- +full:42

1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright (c) 2022-2024 Red Hat */
26 if (self->hidraw_fd) in detach_bpf()
27 close(self->hidraw_fd); in detach_bpf()
28 self->hidraw_fd = 0; in detach_bpf()
30 if (!self->skel) in detach_bpf()
33 hid__detach(self->skel); in detach_bpf()
35 for (i = 0; i < ARRAY_SIZE(self->hid_links); i++) { in detach_bpf()
36 if (self->hid_links[i]) in detach_bpf()
37 bpf_link__destroy(self->hid_links[i]); in detach_bpf()
40 hid__destroy(self->skel); in detach_bpf()
41 self->skel = NULL; in detach_bpf()
47 uhid_destroy(_metadata, &self->hid); in FIXTURE_TEARDOWN()
50 pthread_join(self->hid.tid, &uhid_err); in FIXTURE_TEARDOWN()
61 err = setup_uhid(_metadata, &self->hid, BUS_USB, 0x0001, 0x0a36, rdesc, sizeof(rdesc)); in FIXTURE_SETUP()
80 int err = -EINVAL; in load_programs()
82 ASSERT_LE(progs_count, ARRAY_SIZE(self->hid_links)) in load_programs()
86 self->skel = hid__open(); in load_programs()
87 ASSERT_OK_PTR(self->skel) TEARDOWN_LOG("Error while calling hid__open"); in load_programs()
94 prog = bpf_object__find_program_by_name(*self->skel->skeleton->obj, in load_programs()
100 map = bpf_object__find_map_by_name(*self->skel->skeleton->obj, in load_programs()
109 *ops_hid_id = self->hid.hid_id; in load_programs()
112 /* we disable the auto-attach feature of all maps because we in load_programs()
116 bpf_object__for_each_map(iter_map, *self->skel->skeleton->obj) in load_programs()
119 err = hid__load(self->skel); in load_programs()
125 map = bpf_object__find_map_by_name(*self->skel->skeleton->obj, in load_programs()
130 self->hid_links[i] = bpf_map__attach_struct_ops(map); in load_programs()
131 ASSERT_OK_PTR(self->hid_links[i]) TH_LOG("failed to attach struct ops '%s'", in load_programs()
135 hid__attach(self->skel); in load_programs()
137 self->hidraw_fd = open_hidraw(&self->hid); in load_programs()
138 ASSERT_GE(self->hidraw_fd, 0) TH_LOG("open_hidraw"); in load_programs()
166 ASSERT_EQ(self->skel->data->callback_check, 52) TH_LOG("callback_check1"); in TEST_F()
167 ASSERT_EQ(self->skel->data->callback2_check, 52) TH_LOG("callback2_check1"); in TEST_F()
171 buf[1] = 42; in TEST_F()
172 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
175 ASSERT_EQ(self->skel->data->callback_check, 42) TH_LOG("callback_check1"); in TEST_F()
179 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
188 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
191 ASSERT_EQ(self->skel->data->callback_check, 47) TH_LOG("callback_check1"); in TEST_F()
195 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
218 buf[1] = 42; in TEST_F()
219 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
223 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
232 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
236 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
243 * attempt at re-attaching it, we should not lock and
255 link = bpf_map__attach_struct_ops(self->skel->maps.first_event); in TEST_F()
256 ASSERT_NULL(link) TH_LOG("unexpected return value when re-attaching the struct_ops"); in TEST_F()
274 link = self->hid_links[0]; in TEST_F()
275 ASSERT_OK_PTR(link) TH_LOG("HID-BPF link not created"); in TEST_F()
278 ASSERT_GE(link_fd, 0) TH_LOG("HID-BPF link FD not valid"); in TEST_F()
282 buf[1] = 42; in TEST_F()
283 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
287 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
306 self->hidraw_fd = open_hidraw(&self->hid); in TEST_F()
307 ASSERT_GE(self->hidraw_fd, 0) TH_LOG("open_hidraw"); in TEST_F()
313 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
317 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
324 /* re-attach our program */ in TEST_F()
331 buf[1] = 42; in TEST_F()
332 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
336 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
361 buf[1] = 42; in TEST_F()
362 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
366 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
369 ASSERT_EQ(buf[1], 42); in TEST_F()
380 .retval = -1, in TEST_F()
392 args.hid = self->hid.hid_id; in TEST_F()
395 args.data[2] = 42; /* report ID */ in TEST_F()
397 prog_fd = bpf_program__fd(self->skel->progs.hid_user_input_report); in TEST_F()
401 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
402 ASSERT_EQ(err, -1) TH_LOG("read_hidraw"); in TEST_F()
412 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
416 ASSERT_EQ(buf[2], 42); in TEST_F()
426 .retval = -1, in TEST_F()
438 args.hid = self->hid.hid_id; in TEST_F()
441 args.data[2] = 42; /* report ID */ in TEST_F()
443 prog_fd = bpf_program__fd(self->skel->progs.hid_user_output_report); in TEST_F()
461 ASSERT_EQ(output_report[2], 42); in TEST_F()
473 .retval = -1, in TEST_F()
486 args.hid = self->hid.hid_id; in TEST_F()
489 prog_fd = bpf_program__fd(self->skel->progs.hid_user_raw_request); in TEST_F()
518 buf[1] = 42; in TEST_F()
519 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
523 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
526 ASSERT_EQ(buf[1], 42); in TEST_F()
535 err = ioctl(self->hidraw_fd, HIDIOCGFEATURE(sizeof(buf)), buf); in TEST_F()
545 self->hidraw_fd = open_hidraw(&self->hid); in TEST_F()
546 ASSERT_GE(self->hidraw_fd, 0) TH_LOG("open_hidraw"); in TEST_F()
548 err = ioctl(self->hidraw_fd, HIDIOCGFEATURE(sizeof(buf)), buf); in TEST_F()
571 err = ioctl(self->hidraw_fd, HIDIOCGFEATURE(sizeof(buf)), buf); in TEST_F()
597 err = ioctl(self->hidraw_fd, HIDIOCGFEATURE(sizeof(buf)), buf); in TEST_F()
620 buf[1] = 42; in TEST_F()
621 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
625 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
628 ASSERT_EQ(buf[1], 42); in TEST_F()
635 buf[2] = 42; in TEST_F()
637 err = write(self->hidraw_fd, buf, 3); in TEST_F()
647 self->hidraw_fd = open_hidraw(&self->hid); in TEST_F()
648 ASSERT_GE(self->hidraw_fd, 0) TH_LOG("open_hidraw"); in TEST_F()
650 err = write(self->hidraw_fd, buf, 3); in TEST_F()
672 buf[2] = 42; in TEST_F()
674 err = write(self->hidraw_fd, buf, 10); in TEST_F()
696 buf[2] = 42; in TEST_F()
698 err = write(self->hidraw_fd, buf, 8); in TEST_F()
721 buf[1] = 42; in TEST_F()
722 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
726 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
735 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
759 buf[1] = 42; in TEST_F()
760 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
764 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
771 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
794 buf[2] = 42; in TEST_F()
796 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
800 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
807 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
814 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
815 ASSERT_EQ(err, -1) TH_LOG("read_hidraw"); in TEST_F()
847 uhid_send_event(_metadata, &self->hid, buf, 6); in TEST_F()
851 err = read(self->hidraw_fd, buf, sizeof(buf)); in TEST_F()
874 ASSERT_EQ(self->skel->data->callback2_check, 0x21); in TEST_F()
877 err = ioctl(self->hidraw_fd, HIDIOCGRDESCSIZE, &desc_size); in TEST_F()
884 err = ioctl(self->hidraw_fd, HIDIOCGRDESC, &rpt_desc); in TEST_F()