github.com/ssdev-go/moby@v17.12.1-ce-rc2+incompatible/pkg/aaparser/aaparser_test.go (about)

     1  package aaparser
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  type versionExpected struct {
     8  	output  string
     9  	version int
    10  }
    11  
    12  func TestParseVersion(t *testing.T) {
    13  	versions := []versionExpected{
    14  		{
    15  			output: `AppArmor parser version 2.10
    16  Copyright (C) 1999-2008 Novell Inc.
    17  Copyright 2009-2012 Canonical Ltd.
    18  
    19  `,
    20  			version: 210000,
    21  		},
    22  		{
    23  			output: `AppArmor parser version 2.8
    24  Copyright (C) 1999-2008 Novell Inc.
    25  Copyright 2009-2012 Canonical Ltd.
    26  
    27  `,
    28  			version: 208000,
    29  		},
    30  		{
    31  			output: `AppArmor parser version 2.20
    32  Copyright (C) 1999-2008 Novell Inc.
    33  Copyright 2009-2012 Canonical Ltd.
    34  
    35  `,
    36  			version: 220000,
    37  		},
    38  		{
    39  			output: `AppArmor parser version 2.05
    40  Copyright (C) 1999-2008 Novell Inc.
    41  Copyright 2009-2012 Canonical Ltd.
    42  
    43  `,
    44  			version: 205000,
    45  		},
    46  		{
    47  			output: `AppArmor parser version 2.9.95
    48  Copyright (C) 1999-2008 Novell Inc.
    49  Copyright 2009-2012 Canonical Ltd.
    50  
    51  `,
    52  			version: 209095,
    53  		},
    54  		{
    55  			output: `AppArmor parser version 3.14.159
    56  Copyright (C) 1999-2008 Novell Inc.
    57  Copyright 2009-2012 Canonical Ltd.
    58  
    59  `,
    60  			version: 314159,
    61  		},
    62  	}
    63  
    64  	for _, v := range versions {
    65  		version, err := parseVersion(v.output)
    66  		if err != nil {
    67  			t.Fatalf("expected error to be nil for %#v, got: %v", v, err)
    68  		}
    69  		if version != v.version {
    70  			t.Fatalf("expected version to be %d, was %d, for: %#v\n", v.version, version, v)
    71  		}
    72  	}
    73  }