github.com/pawelgaczynski/giouring@v0.0.0-20230826085535-69588b89acb9/kernel_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 TestParseKernelVersion(t *testing.T) { 33 // Test case 1: valid kernel version string 34 versionString := "5.10.0-rc1" 35 expectedVersion := &KernelVersion{Kernel: 5, Major: 10, Minor: 0, Flavor: "-rc1"} 36 version, err := parseKernelVersion(versionString) 37 NoError(t, err) 38 Equal(t, expectedVersion, version) 39 40 // Test case 2: invalid kernel version string 41 versionString = "invalid" 42 version, err = parseKernelVersion(versionString) 43 Error(t, err) 44 Nil(t, version) 45 } 46 47 func TestCompareKernelVersion(t *testing.T) { 48 // Test case 1: aVersion > bVersion 49 aVersion := KernelVersion{Kernel: 5, Major: 10, Minor: 0} 50 bVersion := KernelVersion{Kernel: 5, Major: 9, Minor: 0} 51 result := CompareKernelVersion(aVersion, bVersion) 52 Equal(t, 1, result) 53 54 // Test case 2: aVersion < bVersion 55 aVersion = KernelVersion{Kernel: 5, Major: 8, Minor: 0} 56 bVersion = KernelVersion{Kernel: 5, Major: 9, Minor: 0} 57 result = CompareKernelVersion(aVersion, bVersion) 58 Equal(t, -1, result) 59 60 // Test case 3: aVersion == bVersion 61 aVersion = KernelVersion{Kernel: 5, Major: 9, Minor: 0} 62 bVersion = KernelVersion{Kernel: 5, Major: 9, Minor: 0} 63 result = CompareKernelVersion(aVersion, bVersion) 64 Equal(t, 0, result) 65 }