go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/detector/os_release_test.go (about)

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package detector
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func TestMajorMinorParser(t *testing.T) {
    13  	data := []struct {
    14  		release string
    15  		major   string
    16  		minor   string
    17  		other   string
    18  	}{{
    19  		release: "8.1.1911",
    20  		major:   "8",
    21  		minor:   "1",
    22  		other:   "1911",
    23  	}, {
    24  		release: "5.11",
    25  		major:   "5",
    26  		minor:   "11",
    27  		other:   "",
    28  	}, {
    29  		release: "6.9",
    30  		major:   "6",
    31  		minor:   "9",
    32  		other:   "",
    33  	}, {
    34  		release: "7.5.1804",
    35  		major:   "7",
    36  		minor:   "5",
    37  		other:   "1804",
    38  	}, {
    39  		release: "7",
    40  		major:   "7",
    41  		minor:   "",
    42  		other:   "",
    43  	}, {
    44  		release: "12.04",
    45  		major:   "12",
    46  		minor:   "04",
    47  		other:   "",
    48  	}, {
    49  		release: "7.0.0.2",
    50  		major:   "7",
    51  		minor:   "0",
    52  		other:   "0.2",
    53  	}, {
    54  		release: "2019.4",
    55  		major:   "2019",
    56  		minor:   "4",
    57  		other:   "",
    58  	}, {
    59  		release: "20200305",
    60  		major:   "20200305",
    61  		minor:   "",
    62  		other:   "",
    63  	}, {
    64  		release: "2017.09",
    65  		major:   "2017",
    66  		minor:   "09",
    67  		other:   "",
    68  	}, {
    69  		release: "3.7.0",
    70  		major:   "3",
    71  		minor:   "7",
    72  		other:   "0",
    73  	}, {
    74  		release: "17763.720",
    75  		major:   "17763",
    76  		minor:   "720",
    77  		other:   "",
    78  	}}
    79  
    80  	for i := range data {
    81  		v := ParseOsVersion(data[i].release)
    82  		assert.Equal(t, data[i].major, v.Major, data[i].release)
    83  		assert.Equal(t, data[i].minor, v.Minor, data[i].release)
    84  		assert.Equal(t, data[i].other, v.Other, data[i].release)
    85  	}
    86  }