(self, tmpdir, async_queue)
| 174 | |
| 175 | @pytest.mark.parametrize("async_queue", [2, 3]) |
| 176 | def test_read(self, tmpdir, async_queue): |
| 177 | |
| 178 | ref_files = [] |
| 179 | for i in range(async_queue): |
| 180 | f, _ = _do_ref_write(tmpdir, i) |
| 181 | ref_files.append(f) |
| 182 | |
| 183 | single_submit = True |
| 184 | overlap_events = True |
| 185 | h = GDSBuilder().load().gds_handle(BLOCK_SIZE, QUEUE_DEPTH, single_submit, overlap_events, IO_PARALLEL) |
| 186 | |
| 187 | gds_buffers = [ |
| 188 | torch.empty(IO_SIZE, dtype=torch.uint8, device=get_accelerator().device_name()) for _ in range(async_queue) |
| 189 | ] |
| 190 | for buf in gds_buffers: |
| 191 | h.pin_device_tensor(buf) |
| 192 | |
| 193 | _validate_handle_state(h, single_submit, overlap_events) |
| 194 | |
| 195 | for i in range(async_queue): |
| 196 | read_status = h.async_pread(gds_buffers[i], ref_files[i], 0) |
| 197 | assert read_status == 0 |
| 198 | |
| 199 | wait_status = h.wait() |
| 200 | assert wait_status == async_queue |
| 201 | |
| 202 | for i in range(async_queue): |
| 203 | with open(ref_files[i], 'rb') as f: |
| 204 | ref_buffer = list(f.read()) |
| 205 | assert ref_buffer == gds_buffers[i].tolist() |
| 206 | |
| 207 | for t in gds_buffers: |
| 208 | h.unpin_device_tensor(t) |
| 209 | |
| 210 | @pytest.mark.parametrize("async_queue", [2, 3]) |
| 211 | def test_write(self, tmpdir, async_queue): |
nothing calls this directly
no test coverage detected