Source file src/internal/syscall/unix/kernel_version_ge_test.go

     1  // Copyright 2025 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package unix_test
     6  
     7  import (
     8  	"internal/syscall/unix"
     9  	"testing"
    10  )
    11  
    12  func TestKernelVersionGE(t *testing.T) {
    13  	major, minor := unix.KernelVersion()
    14  	t.Logf("Running on kernel %d.%d", major, minor)
    15  
    16  	tests := []struct {
    17  		name string
    18  		x, y int
    19  		want bool
    20  	}{
    21  		{
    22  			name: "current version equals itself",
    23  			x:    major,
    24  			y:    minor,
    25  			want: true,
    26  		},
    27  		{
    28  			name: "older major version",
    29  			x:    major - 1,
    30  			y:    0,
    31  			want: true,
    32  		},
    33  		{
    34  			name: "same major, older minor version",
    35  			x:    major,
    36  			y:    minor - 1,
    37  			want: true,
    38  		},
    39  		{
    40  			name: "newer major version",
    41  			x:    major + 1,
    42  			y:    0,
    43  			want: false,
    44  		},
    45  		{
    46  			name: "same major, newer minor version",
    47  			x:    major,
    48  			y:    minor + 1,
    49  			want: false,
    50  		},
    51  		{
    52  			name: "min version (0.0)",
    53  			x:    0,
    54  			y:    0,
    55  			want: true,
    56  		},
    57  	}
    58  
    59  	for _, tt := range tests {
    60  		t.Run(tt.name, func(t *testing.T) {
    61  			got := unix.KernelVersionGE(tt.x, tt.y)
    62  			if got != tt.want {
    63  				t.Errorf("KernelVersionGE(%d, %d): got %v, want %v", tt.x, tt.y, got, tt.want)
    64  			}
    65  		})
    66  	}
    67  }
    68  

View as plain text