| 118 | } |
| 119 | |
| 120 | int main(int argc, char *argv[]) |
| 121 | { |
| 122 | struct io_uring ring; |
| 123 | struct io_uring_params p = { }; |
| 124 | int ret, files[MAX_FILES]; |
| 125 | |
| 126 | if (argc > 1) |
| 127 | return T_EXIT_SKIP; |
| 128 | |
| 129 | ret = io_uring_queue_init_params(8, &ring, &p); |
| 130 | if (ret) { |
| 131 | fprintf(stderr, "ring setup failed: %d\n", ret); |
| 132 | return T_EXIT_FAIL; |
| 133 | } |
| 134 | if (!(p.features & IORING_FEAT_CQE_SKIP)) |
| 135 | return T_EXIT_SKIP; |
| 136 | |
| 137 | memset(files, -1, sizeof(files)); |
| 138 | ret = io_uring_register_files(&ring, files, ARRAY_SIZE(files)); |
| 139 | if (ret) { |
| 140 | fprintf(stderr, "Failed registering files\n"); |
| 141 | return T_EXIT_FAIL; |
| 142 | } |
| 143 | |
| 144 | t_create_file_pattern(FNAME1, 4096, PAT1); |
| 145 | t_create_file_pattern(FNAME2, 4096, PAT2); |
| 146 | |
| 147 | ret = test(&ring); |
| 148 | if (ret) { |
| 149 | fprintf(stderr, "test failed\n"); |
| 150 | goto err; |
| 151 | } |
| 152 | |
| 153 | unlink(FNAME1); |
| 154 | unlink(FNAME2); |
| 155 | return T_EXIT_PASS; |
| 156 | err: |
| 157 | unlink(FNAME1); |
| 158 | unlink(FNAME2); |
| 159 | return T_EXIT_FAIL; |
| 160 | } |
nothing calls this directly
no test coverage detected