gopkg.in/docker/docker.v20@v20.10.27/pkg/aaparser/aaparser_test.go (about)

     1  package aaparser // import "github.com/docker/docker/pkg/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.2.0~rc2
    48  Copyright (C) 1999-2008 Novell Inc.
    49  Copyright 2009-2012 Canonical Ltd.
    50  
    51  `,
    52  			version: 202000,
    53  		},
    54  		{
    55  			output: `AppArmor parser version 2.9.95
    56  Copyright (C) 1999-2008 Novell Inc.
    57  Copyright 2009-2012 Canonical Ltd.
    58  
    59  `,
    60  			version: 209095,
    61  		},
    62  		{
    63  			output: `AppArmor parser version 3.14.159
    64  Copyright (C) 1999-2008 Novell Inc.
    65  Copyright 2009-2012 Canonical Ltd.
    66  
    67  `,
    68  			version: 314159,
    69  		},
    70  		{
    71  			output: `AppArmor parser version 3.0.0-beta1
    72  Copyright (C) 1999-2008 Novell Inc.
    73  Copyright 2009-2018 Canonical Ltd.
    74  `,
    75  			version: 300000,
    76  		},
    77  		{
    78  			output: `AppArmor parser version 3.0.0-beta1-foo-bar
    79  Copyright (C) 1999-2008 Novell Inc.
    80  Copyright 2009-2018 Canonical Ltd.
    81  `,
    82  			version: 300000,
    83  		},
    84  	}
    85  
    86  	for _, v := range versions {
    87  		version, err := parseVersion(v.output)
    88  		if err != nil {
    89  			t.Fatalf("expected error to be nil for %#v, got: %v", v, err)
    90  		}
    91  		if version != v.version {
    92  			t.Fatalf("expected version to be %d, was %d, for: %#v\n", v.version, version, v)
    93  		}
    94  	}
    95  }