83 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package testshared
 | |
| 
 | |
| import (
 | |
| 	"runtime"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| 	"github.com/stretchr/testify/require"
 | |
| 
 | |
| 	"github.com/golangci/golangci-lint/pkg/exitcodes"
 | |
| )
 | |
| 
 | |
| func TestParseTestDirectives(t *testing.T) {
 | |
| 	rc := ParseTestDirectives(t, "./testdata/all.go")
 | |
| 	require.NotNil(t, rc)
 | |
| 
 | |
| 	expected := &RunContext{
 | |
| 		Args:           []string{"-Efoo", "--simple", "--hello=world"},
 | |
| 		ConfigPath:     "testdata/example.yml",
 | |
| 		ExpectedLinter: "bar",
 | |
| 		ExitCode:       exitcodes.Success,
 | |
| 	}
 | |
| 	assert.Equal(t, expected, rc)
 | |
| }
 | |
| 
 | |
| func Test_evaluateBuildTags(t *testing.T) {
 | |
| 	testCases := []struct {
 | |
| 		desc   string
 | |
| 		tag    string
 | |
| 		assert assert.BoolAssertionFunc
 | |
| 	}{
 | |
| 		{
 | |
| 			desc:   "",
 | |
| 			tag:    "// +build go1.18",
 | |
| 			assert: assert.True,
 | |
| 		},
 | |
| 		{
 | |
| 			desc:   "",
 | |
| 			tag:    "// +build go1.42",
 | |
| 			assert: assert.False,
 | |
| 		},
 | |
| 		{
 | |
| 			desc:   "",
 | |
| 			tag:    "//go:build go1.18",
 | |
| 			assert: assert.True,
 | |
| 		},
 | |
| 		{
 | |
| 			desc:   "",
 | |
| 			tag:    "//go:build go1.42",
 | |
| 			assert: assert.False,
 | |
| 		},
 | |
| 		{
 | |
| 			desc:   "",
 | |
| 			tag:    "//go:build " + runtime.GOOS,
 | |
| 			assert: assert.True,
 | |
| 		},
 | |
| 		{
 | |
| 			desc:   "",
 | |
| 			tag:    "//go:build !wondiws",
 | |
| 			assert: assert.True,
 | |
| 		},
 | |
| 		{
 | |
| 			desc:   "",
 | |
| 			tag:    "//go:build wondiws",
 | |
| 			assert: assert.False,
 | |
| 		},
 | |
| 		{
 | |
| 			desc:   "",
 | |
| 			tag:    "//go:build go1.18 && " + runtime.GOOS,
 | |
| 			assert: assert.True,
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	for _, test := range testCases {
 | |
| 		test := test
 | |
| 		t.Run(test.desc, func(t *testing.T) {
 | |
| 			t.Parallel()
 | |
| 
 | |
| 			test.assert(t, evaluateBuildTags(t, test.tag))
 | |
| 		})
 | |
| 	}
 | |
| }
 | 
