github.com/pawelgaczynski/giouring@v0.0.0-20230826085535-69588b89acb9/probe_test.go (about)

     1  // MIT License
     2  //
     3  // Copyright (c) 2023 Paweł Gaczyński
     4  //
     5  // Permission is hereby granted, free of charge, to any person obtaining a
     6  // copy of this software and associated documentation files (the
     7  // "Software"), to deal in the Software without restriction, including
     8  // without limitation the rights to use, copy, modify, merge, publish,
     9  // distribute, sublicense, and/or sell copies of the Software, and to
    10  // permit persons to whom the Software is furnished to do so, subject to
    11  // the following conditions:
    12  //
    13  // The above copyright notice and this permission notice shall be included
    14  // in all copies or substantial portions of the Software.
    15  //
    16  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    17  // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    18  // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    19  // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    20  // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    21  // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    22  // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    23  
    24  package giouring
    25  
    26  import (
    27  	"testing"
    28  
    29  	. "github.com/stretchr/testify/require"
    30  )
    31  
    32  func TestIsOpSupported(t *testing.T) {
    33  	for _, opCode := range []uint8{
    34  		OpNop,
    35  		OpReadv,
    36  		OpWritev,
    37  		OpFsync,
    38  		OpReadFixed,
    39  		OpWriteFixed,
    40  		OpPollAdd,
    41  		OpPollRemove,
    42  		OpSyncFileRange,
    43  		OpSendmsg,
    44  		OpRecvmsg,
    45  		OpTimeout,
    46  		OpTimeoutRemove,
    47  		OpAccept,
    48  		OpAsyncCancel,
    49  		OpLinkTimeout,
    50  		OpConnect,
    51  		OpFallocate,
    52  		OpOpenat,
    53  		OpClose,
    54  		OpFilesUpdate,
    55  		OpStatx,
    56  		OpRead,
    57  		OpWrite,
    58  		OpFadvise,
    59  		OpMadvise,
    60  		OpSend,
    61  		OpRecv,
    62  		OpOpenat2,
    63  		OpEpollCtl,
    64  		OpSplice,
    65  		OpProvideBuffers,
    66  		OpRemoveBuffers,
    67  		OpTee,
    68  		OpShutdown,
    69  		OpRenameat,
    70  		OpUnlinkat,
    71  		OpMkdirat,
    72  		OpSymlinkat,
    73  		OpLinkat,
    74  		OpMsgRing,
    75  		OpFsetxattr,
    76  		OpSetxattr,
    77  		OpFgetxattr,
    78  		OpGetxattr,
    79  		OpSocket,
    80  		OpUringCmd,
    81  		OpSendZC,
    82  		OpSendMsgZC,
    83  	} {
    84  		probe, err := GetProbe()
    85  		NoError(t, err)
    86  		NotNil(t, probe)
    87  		supported := probe.IsSupported(opCode)
    88  		Equal(t, true, supported)
    89  	}
    90  }