Home
last modified time | relevance | path

Searched refs:CHECK (Results 1 – 25 of 167) sorted by relevance

1234567

/linux/tools/testing/selftests/bpf/prog_tests/
A Dhashmap.c60 if (CHECK(err != -ENOENT, "hashmap__update", in test_hashmap_generic()
68 if (CHECK(oldk != 0 || oldv != 0, "check_kv", in test_hashmap_generic()
97 if (CHECK(v - k != 1024, "check_kv", in test_hashmap_generic()
110 if (CHECK(err != -EEXIST, "hashmap__add", in test_hashmap_generic()
119 if (CHECK(err, "elem_upd", in test_hashmap_generic()
126 if (CHECK(oldv != v, "elem_val", in test_hashmap_generic()
145 if (CHECK(v - k != 256, "elem_check", in test_hashmap_generic()
157 if (CHECK(!found_cnt, "found_cnt", in test_hashmap_generic()
231 CHECK(false, "elem_exists", in test_hashmap_generic()
239 CHECK(false, "elem_exists", in test_hashmap_generic()
[all …]
A Dcgroup_attach_override.c32 if (CHECK(allow_prog < 0, "prog_load_allow", in serial_test_cgroup_attach_override()
37 if (CHECK(drop_prog < 0, "prog_load_drop", in serial_test_cgroup_attach_override()
51 if (CHECK(!system(PING_CMD), "ping_fail", in serial_test_cgroup_attach_override()
59 if (CHECK(!system(PING_CMD), "ping_fail", in serial_test_cgroup_attach_override()
69 if (CHECK(system(PING_CMD), "ping_ok", "ping failed\n")) in serial_test_cgroup_attach_override()
72 if (CHECK(bpf_prog_detach(bar, BPF_CGROUP_INET_EGRESS), in serial_test_cgroup_attach_override()
77 if (CHECK(!system(PING_CMD), "ping_fail", in serial_test_cgroup_attach_override()
87 if (CHECK(bpf_prog_detach(foo, BPF_CGROUP_INET_EGRESS), in serial_test_cgroup_attach_override()
92 if (CHECK(system(PING_CMD), "ping_ok", "ping failed\n")) in serial_test_cgroup_attach_override()
106 if (CHECK(bpf_prog_detach(bar, BPF_CGROUP_INET_EGRESS), in serial_test_cgroup_attach_override()
[all …]
A Dpinning.c18 if (CHECK(!map, "find map", "NULL map")) in get_map_id()
23 CHECK(err, "get map info", "err %d errno %d", err, errno); in get_map_id()
72 if (CHECK(!err || errno != ENOENT, "stat nopinpath", in test_pinning()
78 if (CHECK(!err || errno != ENOENT, "stat nopinpath2", in test_pinning()
100 if (CHECK(map_id != map_id2, "check reuse", in test_pinning()
106 if (CHECK(!map, "find map", "NULL map")) in test_pinning()
125 if (CHECK(err, "pin maps", "err %d errno %d\n", err, errno)) in test_pinning()
134 if (CHECK(!map, "find map", "NULL map")) in test_pinning()
148 if (CHECK(err, "pin maps", "err %d errno %d\n", err, errno)) in test_pinning()
198 if (CHECK(!err || errno != ENOENT, "stat nopinpath2", in test_pinning()
[all …]
A Dskeleton.c30 if (CHECK(!skel, "skel_open", "failed to open skeleton\n")) in test_skeleton()
33 if (CHECK(skel->kconfig, "skel_kconfig", "kconfig is mmaped()!\n")) in test_skeleton()
46 CHECK(data->in1 != -1, "in1", "got %d != exp %d\n", data->in1, -1); in test_skeleton()
51 CHECK(bss->in3 != 0, "in3", "got %d != exp %d\n", bss->in3, 0); in test_skeleton()
52 CHECK(bss->out3 != 0, "out3", "got %d != exp %d\n", bss->out3, 0); in test_skeleton()
57 CHECK(bss->out6 != 0, "out6", "got %d != exp %d\n", bss->out6, 0); in test_skeleton()
77 if (CHECK(err, "skel_load", "failed to load skeleton: %d\n", err)) in test_skeleton()
81 CHECK(data->in1 != 10, "in1", "got %d != exp %d\n", data->in1, 10); in test_skeleton()
83 CHECK(bss->in3 != 12, "in3", "got %d != exp %d\n", bss->in3, 12); in test_skeleton()
117 CHECK(bss->bpf_syscall != kcfg->CONFIG_BPF_SYSCALL, "ext1", in test_skeleton()
[all …]
A Dd_path.c50 if (CHECK(pipe(pipefd) < 0, "trigger", "pipe failed\n")) in trigger_fstat_events()
54 if (CHECK(sockfd < 0, "trigger", "socket failed\n")) in trigger_fstat_events()
61 if (CHECK(devfd < 0, "trigger", "open /dev/urandom failed\n")) in trigger_fstat_events()
69 if (CHECK(indicatorfd < 0, "trigger", "open /tmp/ failed\n")) in trigger_fstat_events()
85 if (CHECK(ret < 0, "trigger", "set_pathname failed for dev\n")) in trigger_fstat_events()
128 if (CHECK(!skel, "setup", "d_path skeleton failed\n")) in test_d_path_basic()
132 if (CHECK(err, "setup", "attach failed: %d\n", err)) in test_d_path_basic()
142 if (CHECK(!bss->called_stat, in test_d_path_basic()
147 if (CHECK(!bss->called_close, in test_d_path_basic()
162 CHECK(bss->rets_stat[i] != strlen(bss->paths_stat[i]) + 1, in test_d_path_basic()
[all …]
A Dringbuf_multi.c23 CHECK(ring != 1, "sample1_ring", "exp %d, got %d\n", 1, ring); in process_sample()
24 CHECK(s->value != 333, "sample1_value", "exp %ld, got %ld\n", in process_sample()
28 CHECK(ring != 2, "sample2_ring", "exp %d, got %d\n", 2, ring); in process_sample()
29 CHECK(s->value != 777, "sample2_value", "exp %ld, got %ld\n", in process_sample()
33 CHECK(true, "extra_sample", "unexpected sample seq %d, val %ld\n", in process_sample()
52 if (CHECK(!skel, "skel_open", "skeleton open failed\n")) in test_ringbuf_multi()
63 if (CHECK(proto_fd < 0, "bpf_map_create", "bpf_map_create failed\n")) in test_ringbuf_multi()
71 if (CHECK(err != 0, "skel_load", "skeleton load failed\n")) in test_ringbuf_multi()
99 if (CHECK(err, "ringbuf_add", "failed to add another ring\n")) in test_ringbuf_multi()
132 if (CHECK(err < 0, "extra_samples", "poll result: %d\n", err)) in test_ringbuf_multi()
[all …]
A Dmmap.c33 if (CHECK(!skel, "skel_open", "skeleton open failed\n")) in test_mmap()
47 if (CHECK(err != 0, "skel_load", "skeleton load failed\n")) in test_mmap()
68 if (CHECK(err, "map_get_info", "failed %d\n", errno)) in test_mmap()
75 if (CHECK(bss_mmaped == MAP_FAILED, "bss_mmap", in test_mmap()
83 if (CHECK(map_mmaped == MAP_FAILED, "data_mmap", in test_mmap()
102 if (CHECK(err, "attach_raw_tp", "err %d\n", err)) in test_mmap()
131 if (CHECK(!err || errno != EBUSY, "no_freeze", in test_mmap()
147 if (CHECK(map_mmaped == MAP_FAILED, "data_mmap", in test_mmap()
215 if (CHECK(err, "adv_mmap2", "errno %d\n", errno)) { in test_mmap()
228 CHECK(tmp1 + page_size != tmp2, "adv_mmap4", in test_mmap()
[all …]
A Dxdp_info.c19 if (CHECK(err, "get_xdp_none", "errno=%d\n", errno)) in serial_test_xdp_info()
21 if (CHECK(prog_id, "prog_id_none", "unexpected prog_id=%u\n", prog_id)) in serial_test_xdp_info()
25 if (CHECK(err, "get_xdp_none_skb", "errno=%d\n", errno)) in serial_test_xdp_info()
27 if (CHECK(prog_id, "prog_id_none_skb", "unexpected prog_id=%u\n", in serial_test_xdp_info()
38 if (CHECK(err, "get_prog_info", "errno=%d\n", errno)) in serial_test_xdp_info()
42 if (CHECK(err, "set_xdp_skb", "errno=%d\n", errno)) in serial_test_xdp_info()
48 if (CHECK(err, "get_xdp", "errno=%d\n", errno)) in serial_test_xdp_info()
50 if (CHECK(prog_id != info.id, "prog_id", "prog_id not available\n")) in serial_test_xdp_info()
54 if (CHECK(err, "get_xdp_skb", "errno=%d\n", errno)) in serial_test_xdp_info()
60 if (CHECK(err, "get_xdp_drv", "errno=%d\n", errno)) in serial_test_xdp_info()
[all …]
A Dringbuf.c154 if (CHECK(!skel, "skel_open", "skeleton open failed\n")) in ringbuf_subtest()
231 CHECK(skel->bss->avail_data != 3 * rec_sz, in ringbuf_subtest()
234 CHECK(skel->bss->ring_size != page_size, in ringbuf_subtest()
237 CHECK(skel->bss->cons_pos != 0, in ringbuf_subtest()
240 CHECK(skel->bss->prod_pos != 3 * rec_sz, in ringbuf_subtest()
281 CHECK(skel->bss->cons_pos != 3 * rec_sz, in ringbuf_subtest()
285 CHECK(err <= 0, "poll_err", "err %d\n", err); in ringbuf_subtest()
306 if (CHECK(err != EBUSY, "try_join", "err %d\n", err)) in ringbuf_subtest()
329 if (CHECK(err != EBUSY, "try_join", "err %d\n", err)) in ringbuf_subtest()
350 if (CHECK(err, "join_bg", "err %d\n", err)) in ringbuf_subtest()
[all …]
A Dperf_branches.c18 if (CHECK(!skel->bss->valid, "output not valid", in check_good_sample()
30 CHECK(written_stack % pbe_size != 0, "read_branches_stack", in check_good_sample()
34 CHECK(written_global % pbe_size != 0, "read_branches_global", in check_good_sample()
37 CHECK(written_global < written_stack, "read_branches_size", in check_good_sample()
48 if (CHECK(!skel->bss->valid, "output not valid", in check_bad_sample()
52 CHECK((required_size != -EINVAL && required_size != -ENOENT), in check_bad_sample()
54 CHECK((written_stack != -EINVAL && written_stack != -ENOENT), in check_bad_sample()
71 if (CHECK(!skel, "test_perf_branches_load", in test_perf_branches_common()
84 if (CHECK(err, "set_affinity", "cpu #0, err %d\n", err)) in test_perf_branches_common()
129 if (CHECK(pfd < 0, "perf_event_open", "err %d errno %d\n", in test_perf_branches_hw()
[all …]
A Dcgroup_link.c18 if (CHECK(skel->bss->calls != exp_calls, "call_cnt", in ping_and_check()
52 if (CHECK(err, "cg_init", "failed: %d\n", err)) in serial_test_cgroup_link()
62 if (CHECK(err, "cg_join", "fail: %d\n", err)) in serial_test_cgroup_link()
100 CHECK(prog_ids[i - 1] != prog_ids[i], "prog_id_check", in serial_test_cgroup_link()
114 if (CHECK(err, "cg_attach_legacy", "errno=%d\n", errno)) in serial_test_cgroup_link()
179 if (CHECK(err, "prog_upd", "link #%d\n", i)) in serial_test_cgroup_link()
191 if (CHECK(err == 0 || errno != EPERM, "prog_cmpxchg1", in serial_test_cgroup_link()
201 if (CHECK(err, "prog_cmpxchg2", "errno %d\n", -errno)) in serial_test_cgroup_link()
219 CHECK(prog_id == 0, "link_info", "failed\n"); in serial_test_cgroup_link()
223 if (CHECK(err, "link_detach", "failed %d\n", err)) in serial_test_cgroup_link()
[all …]
A Dperf_buffer.c23 CHECK(cpu_data != cpu, "check_cpu_data", in on_sample()
57 if (CHECK(nr_cpus < 0, "nr_cpus", "err %d\n", nr_cpus)) in serial_test_perf_buffer()
62 if (CHECK(err, "nr_on_cpus", "err %d\n", err)) in serial_test_perf_buffer()
71 if (CHECK(!skel, "skel_load", "skeleton open/load failed\n")) in serial_test_perf_buffer()
80 if (CHECK(err, "attach_kprobe", "err %d\n", err)) in serial_test_perf_buffer()
89 CHECK(perf_buffer__epoll_fd(pb) < 0, "epoll_fd", in serial_test_perf_buffer()
106 if (CHECK(err < 0, "perf_buffer__poll", "err %d\n", err)) in serial_test_perf_buffer()
109 if (CHECK(CPU_COUNT(&cpu_seen) != nr_on_cpus, "seen_cpu_cnt", in serial_test_perf_buffer()
113 if (CHECK(perf_buffer__buffer_cnt(pb) != nr_on_cpus, "buf_cnt", in serial_test_perf_buffer()
126 if (CHECK(err, "drain_buf", "cpu %d, err %d\n", i, err)) in serial_test_perf_buffer()
[all …]
A Dksyms_btf.c25 if (CHECK(err == -EINVAL, "kallsyms_fopen", "failed to open: %d\n", errno)) in test_basic()
27 if (CHECK(err == -ENOENT, "ksym_find", "symbol 'runqueues' not found\n")) in test_basic()
31 if (CHECK(err == -EINVAL, "kallsyms_fopen", "failed to open: %d\n", errno)) in test_basic()
37 if (CHECK(!skel, "skel_open", "failed to open and load skeleton\n")) in test_basic()
41 if (CHECK(err, "skel_attach", "skeleton attach failed: %d\n", err)) in test_basic()
48 CHECK(data->out__runqueues_addr != runqueues_addr, "runqueues_addr", in test_basic()
57 CHECK(data->out__rq_cpu == -1, "rq_cpu", in test_basic()
59 CHECK(data->out__bpf_prog_active < 0, "bpf_prog_active", in test_basic()
61 CHECK(data->out__cpu_0_rq_cpu != 0, "cpu_rq(0)->cpu", in test_basic()
65 CHECK(this_rq_cpu != data->out__rq_cpu, "this_rq_cpu", in test_basic()
[all …]
A Dlink_pinning.c25 CHECK(bss->out != 1, "res_check1", "exp %d, got %d\n", 1, bss->out); in test_link_pinning_subtest()
29 if (CHECK(err, "link_pin", "err: %d\n", err)) in test_link_pinning_subtest()
32 CHECK(strcmp(link_pin_path, bpf_link__pin_path(link)), "pin_path1", in test_link_pinning_subtest()
37 if (CHECK(err, "stat_link", "err %d errno %d\n", err, errno)) in test_link_pinning_subtest()
42 CHECK(bss->out != 2, "res_check2", "exp %d, got %d\n", 2, bss->out); in test_link_pinning_subtest()
50 CHECK(bss->out != 3, "res_check3", "exp %d, got %d\n", 3, bss->out); in test_link_pinning_subtest()
57 CHECK(strcmp(link_pin_path, bpf_link__pin_path(link)), "pin_path2", in test_link_pinning_subtest()
62 if (CHECK(err, "link_unpin", "err: %d\n", err)) in test_link_pinning_subtest()
68 CHECK(bss->out != 4, "res_check4", "exp %d, got %d\n", 4, bss->out); in test_link_pinning_subtest()
84 CHECK(i == 10000, "link_attached", "got to iteration #%d\n", i); in test_link_pinning_subtest()
[all …]
A Dbtf_map_in_map.c54 CHECK(val != 1, "inner1", "got %d != exp %d\n", val, 1); in test_lookup_update()
56 CHECK(val != 2, "inner2", "got %d != exp %d\n", val, 2); in test_lookup_update()
58 CHECK(val != 3, "inner3", "got %d != exp %d\n", val, 3); in test_lookup_update()
67 CHECK(val != 4, "inner1", "got %d != exp %d\n", val, 4); in test_lookup_update()
69 CHECK(val != 3, "inner2", "got %d != exp %d\n", val, 3); in test_lookup_update()
71 CHECK(val != 5, "inner4", "got %d != exp %d\n", val, 5); in test_lookup_update()
78 CHECK(val != 7, "inner5", "got %d != exp %d\n", val, 7); in test_lookup_update()
102 CHECK(map1_id == 0, "map1_id", "failed to get ID 1\n"); in test_lookup_update()
103 CHECK(map2_id == 0, "map2_id", "failed to get ID 2\n"); in test_lookup_update()
121 CHECK(err, "outer_sockarr inner map size check", in test_diff_size()
[all …]
A Dtask_fd_query_rawtp.c15 if (CHECK(err, "prog_load raw tp", "err %d errno %d\n", err, errno)) in test_task_fd_query_rawtp()
19 if (CHECK(efd < 0, "raw_tp_open", "err %d errno %d\n", efd, errno)) in test_task_fd_query_rawtp()
26 if (CHECK(err < 0, "bpf_task_fd_query", "err %d errno %d\n", err, in test_task_fd_query_rawtp()
32 if (CHECK(!err, "check_results", "fd_type %d tp_name %s\n", in test_task_fd_query_rawtp()
40 if (CHECK(err < 0, "bpf_task_fd_query (len = 0)", "err %d errno %d\n", in test_task_fd_query_rawtp()
45 if (CHECK(!err, "check_results", "fd_type %d len %u\n", fd_type, len)) in test_task_fd_query_rawtp()
52 if (CHECK(err < 0, "bpf_task_fd_query (buf = 0)", "err %d errno %d\n", in test_task_fd_query_rawtp()
57 if (CHECK(!err, "check_results", "fd_type %d len %u\n", fd_type, len)) in test_task_fd_query_rawtp()
64 if (CHECK(err >= 0 || errno != ENOSPC, "bpf_task_fd_query (len = 3)", in test_task_fd_query_rawtp()
70 if (CHECK(!err, "check_results", "fd_type %d len %u\n", fd_type, len)) in test_task_fd_query_rawtp()
A Dtp_attach_query.c27 if (CHECK(efd < 0, "open", "err %d errno %d\n", efd, errno)) in serial_test_tp_attach_query()
31 if (CHECK(bytes <= 0 || bytes >= sizeof(buf), in serial_test_tp_attach_query()
45 if (CHECK(err, "prog_load", "err %d errno %d\n", err, errno)) in serial_test_tp_attach_query()
55 if (CHECK(err, "bpf_prog_get_info_by_fd", "err %d errno %d\n", in serial_test_tp_attach_query()
67 if (CHECK(err, "perf_event_ioc_enable", "err %d errno %d\n", in serial_test_tp_attach_query()
75 if (CHECK(err || query->prog_cnt != 0, in serial_test_tp_attach_query()
91 if (CHECK(err || query->prog_cnt != 2, in serial_test_tp_attach_query()
101 if (CHECK(!err || errno != EFAULT, in serial_test_tp_attach_query()
109 if (CHECK(!err || errno != ENOSPC || query->prog_cnt != 2, in serial_test_tp_attach_query()
118 if (CHECK(err || query->prog_cnt != (i + 1), in serial_test_tp_attach_query()
[all …]
A Dautoload.c15 if (CHECK(skel, "skel_open_and_load", "unexpected success\n")) in test_autoload()
19 if (CHECK(!skel, "skel_open", "failed to open skeleton\n")) in test_autoload()
26 if (CHECK(err, "skel_load", "failed to load skeleton: %d\n", err)) in test_autoload()
30 if (CHECK(err, "skel_attach", "skeleton attach failed: %d\n", err)) in test_autoload()
35 CHECK(!skel->bss->prog1_called, "prog1", "not called\n"); in test_autoload()
36 CHECK(!skel->bss->prog2_called, "prog2", "not called\n"); in test_autoload()
37 CHECK(skel->bss->prog3_called, "prog3", "called?!\n"); in test_autoload()
/linux/tools/testing/selftests/bpf/progs/
A Dlinked_list_fail.c57 CHECK(kptr, pop_front, &f->head);
58 CHECK(kptr, pop_back, &f->head);
60 CHECK(global, pop_front, &ghead);
61 CHECK(global, pop_back, &ghead);
63 CHECK(map, pop_front, &v->head);
64 CHECK(map, pop_back, &v->head);
67 CHECK(inner_map, pop_back, &iv->head);
69 #undef CHECK
92 #undef CHECK
129 #undef CHECK
[all …]
A Dtest_spin_lock_fail.c113 CHECK(kptr_kptr, &f1->lock, &f2->lock);
114 CHECK(kptr_global, &f1->lock, &lockA);
115 CHECK(kptr_mapval, &f1->lock, &v->lock);
118 CHECK(global_global, &lockA, &lockB);
119 CHECK(global_kptr, &lockA, &f1->lock);
120 CHECK(global_mapval, &lockA, &v->lock);
121 CHECK(global_innermapval, &lockA, &iv->lock);
143 CHECK(mapval_kptr, &v->lock, &f1->lock);
144 CHECK(mapval_global, &v->lock, &lockB);
199 CHECK(innermapval_global, &iv->lock, &lockA);
[all …]
/linux/lib/
A Dpercpu_test.c36 CHECK(l, long_counter, -1); in percpu_test_init()
40 CHECK(l, long_counter, 0); in percpu_test_init()
47 CHECK(ul, ulong_counter, 1); in percpu_test_init()
51 CHECK(ul, ulong_counter, 0); in percpu_test_init()
55 CHECK(ul, ulong_counter, -1); in percpu_test_init()
62 CHECK(ul, ulong_counter, -1); in percpu_test_init()
79 CHECK(l, long_counter, -1); in percpu_test_init()
86 CHECK(l, long_counter, 1); in percpu_test_init()
97 CHECK(l, long_counter, -1); in percpu_test_init()
105 CHECK(ul, ulong_counter, 1); in percpu_test_init()
[all …]
A Dbitfield_kunit.c105 CHECK(u8, 0x0f); in test_bitfields_variables()
106 CHECK(u8, 0xf0); in test_bitfields_variables()
107 CHECK(u8, 0x38); in test_bitfields_variables()
109 CHECK(u16, 0x0038); in test_bitfields_variables()
110 CHECK(u16, 0x0380); in test_bitfields_variables()
111 CHECK(u16, 0x3800); in test_bitfields_variables()
112 CHECK(u16, 0x8000); in test_bitfields_variables()
114 CHECK(u32, 0x80000000); in test_bitfields_variables()
115 CHECK(u32, 0x7f000000); in test_bitfields_variables()
116 CHECK(u32, 0x07e00000); in test_bitfields_variables()
[all …]
/linux/tools/perf/dlfilters/
A Ddlfilter-test-api-v0.c132 #define CHECK(x) do { \ macro
156 CHECK(!filt_dat && !called); in start()
167 CHECK(dlargc == 6); in start()
217 CHECK(!sample->raw_data); in check_sample()
219 CHECK(!sample->brstack); in check_sample()
238 CHECK(!al->symoff); in check_al()
252 CHECK(!addr_al->symoff); in check_addr_al()
285 CHECK(attr); in check_attr()
311 CHECK(!d->filter_cnt); in do_checks()
312 CHECK(d->early_filter_cnt); in do_checks()
[all …]
A Ddlfilter-test-api-v2.c147 #define CHECK(x) do { \ macro
171 CHECK(!filt_dat && !called); in start()
182 CHECK(dlargc == 6); in start()
232 CHECK(!sample->raw_data); in check_sample()
234 CHECK(!sample->brstack); in check_sample()
253 CHECK(!al->symoff); in check_al()
267 CHECK(!addr_al->symoff); in check_addr_al()
304 CHECK(attr); in check_attr()
330 CHECK(!d->filter_cnt); in do_checks()
331 CHECK(d->early_filter_cnt); in do_checks()
[all …]
/linux/tools/testing/selftests/bpf/map_tests/
A Dhtab_map_batch_ops.c56 CHECK(keys[i] + 1 + j != bpf_percpu(v[i], j), in map_batch_verify()
62 CHECK(keys[i] + 1 != ((int *)values)[i], in map_batch_verify()
72 CHECK(visited[i] != 1, "visited checking", in map_batch_verify()
94 CHECK(map_fd == -1, in __test_map_lookup_and_delete_batch()
104 CHECK(!keys || !values || !visited, "malloc()", in __test_map_lookup_and_delete_batch()
111 CHECK((err && errno != ENOENT), "empty map", in __test_map_lookup_and_delete_batch()
131 CHECK(count != max_entries, "count = max_entries", in __test_map_lookup_and_delete_batch()
179 CHECK(total != max_entries, "lookup with steps", in __test_map_lookup_and_delete_batch()
191 CHECK((err && errno != ENOENT), "delete batch", in __test_map_lookup_and_delete_batch()
197 CHECK(total != max_entries, "delete with steps", in __test_map_lookup_and_delete_batch()
[all …]

Completed in 39 milliseconds

1234567