changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/ffi/uring/tests.lisp

changeset 698: 96958d3eb5b0
parent: c2f4e7ee921b
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 04 Oct 2024 22:04:59 -0400
permissions: -rw-r--r--
description: fixes
1 (defpackage :uring/tests
2  (:use :cl :rt :std :uring :sb-alien)
3  (:import-from :obj/build :build :build-from))
4 (in-package :uring/tests)
5 (defsuite :uring)
6 (in-suite :uring)
7 (load-uring)
8 
9 (deftest sanity ()
10  (is (= 1 (io-uring-check-version (io-uring-major-version) (io-uring-minor-version)))))
11 
12 (deftest params ())
13 
14 (deftest setup ()
15  ;; (io-uring-setup
16  )
17 
18 (deftest nop-sqe ()
19  (with-new-io-sqe sqe
20  (let ((op (uring::build-from (uring::make-io-op-nop) (alien-sap sqe))))
21  (is (typep op '(alien uring::io-uring-sqe)))
22  (is (= (slot op 'uring::fd) -1)))))
23 
24 (deftest simple-vectored ()
25  (with-new-io-sqe rop
26  (with-new-io-sqe wop
27  (let ((rop (uring::build-from (uring::make-io-op-readv) (alien-sap rop)))
28  (wop (uring::build-from (uring::make-io-op-writev) (alien-sap wop))))
29  (is (typep rop '(alien uring::io-uring-sqe)))
30  (is (typep wop '(alien uring::io-uring-sqe)))))))
31 
32 (deftest init1 ()
33  (with-new-io-uring r1
34  (io-uring-queue-init 8 (alien-sap r1) 0)
35  (is (typep r1 '(alien io-uring)))
36  (log::trace! (slot (slot r1 'uring::sq) 'uring::ring-entries))
37  (with-io-uring (r2 (addr r1))
38  (io-uring-queue-init-params 16 (alien-sap r2) (uring::allocate-io-uring-params))
39  (is (typep r2 '(alien (* io-uring))))
40  (is (= 0 (io-uring-queue-exit (alien-sap r2)))))))
41 
42 (deftest submit ()
43  (with-new-io-uring r1
44  (io-uring-queue-init 16 (alien-sap r1) 0)
45  (let ((sqe (io-uring-get-sqe r1)))
46  (is (typep sqe '(alien (* io-uring-sqe))))
47  (is (= 0 (io-uring-submit (alien-sap r1))))
48  (uring::build-from (make-io-op-nop) (alien-sap (deref sqe)))
49  (is (= 0 (io-uring-queue-exit (alien-sap r1)))))))
50 
51 (deftest register ()
52  (is (io-restriction-p (make-io-restriction))))
53