github.com/nya3jp/tast@v0.0.0-20230601000426-85c8e4d83a9b/src/go.chromium.org/tast/core/cmd/tast-lint/internal/check/forbidden_flashrom_subprocess_test.go (about)

     1  // Copyright 2023 The ChromiumOS Authors
     2  // Use of this source code is governed by a BSD-style license that can be
     3  // found in the LICENSE file.
     4  
     5  package check
     6  
     7  import (
     8  	"testing"
     9  )
    10  
    11  func TestForbiddenFlashromSubprocess_CommandContext(t *testing.T) {
    12  	const code = `package main
    13  
    14  import "go.chromium.org/tast-tests/cros/local/bundles/cros/example/util"
    15  
    16  func init() {
    17  	testing.AddTest(&testing.Test{
    18  		Func: Test,
    19  		Desc: "It test flashrom",
    20  		Contacts: []string{
    21  			"flashrom@google.com",
    22  		},SoftwareDeps: []string{"flashrom"},
    23  	})
    24  }
    25  
    26  func Test() {
    27  	h.DUT.Conn().CommandContext(ctx, "flashrom", "-p", "host", "-r").Output(ssh.DumpLogOnError)
    28  	testexec.CommandContext(ctx, "flashrom", "-p", "host", "-r")
    29  	h.DUT.Conn().CommandContext(ctx, "/usr/sbin/flashrom", "-p", "host", "-r").Output(ssh.DumpLogOnError)
    30  	testexec.CommandContext(ctx, "/usr/sbin/flashrom", "-p", "host", "-r")
    31  }
    32  `
    33  
    34  	for _, tc := range []struct {
    35  		filepath string
    36  		want     []string
    37  	}{
    38  		{
    39  			filepath: "src/go.chromium.org/tast-tests/cros/local/testfile.go",
    40  			want: []string{
    41  				"src/go.chromium.org/tast-tests/cros/local/testfile.go:16:2: Please don't use flashrom subprocess but use flashrom_library instead.",
    42  				"src/go.chromium.org/tast-tests/cros/local/testfile.go:17:2: Please don't use flashrom subprocess but use flashrom_library instead.",
    43  				"src/go.chromium.org/tast-tests/cros/local/testfile.go:18:2: Please don't use flashrom subprocess but use flashrom_library instead.",
    44  				"src/go.chromium.org/tast-tests/cros/local/testfile.go:19:2: Please don't use flashrom subprocess but use flashrom_library instead.",
    45  			},
    46  		},
    47  		{
    48  			filepath: "src/go.chromium.org/tast-tests/cros/remote/testfile.go",
    49  			want: []string{
    50  				"src/go.chromium.org/tast-tests/cros/remote/testfile.go:16:2: Please don't use flashrom subprocess but use flashrom_library instead.",
    51  				"src/go.chromium.org/tast-tests/cros/remote/testfile.go:17:2: Please don't use flashrom subprocess but use flashrom_library instead.",
    52  				"src/go.chromium.org/tast-tests/cros/remote/testfile.go:18:2: Please don't use flashrom subprocess but use flashrom_library instead.",
    53  				"src/go.chromium.org/tast-tests/cros/remote/testfile.go:19:2: Please don't use flashrom subprocess but use flashrom_library instead.",
    54  			},
    55  		},
    56  		{
    57  			filepath: "src/go.chromium.org/tast-tests/cros/common/testfile.go",
    58  			want:     []string{},
    59  		},
    60  	} {
    61  		f, fs := parse(code, tc.filepath)
    62  		issues := ForbiddenFlashromSubprocess(fs, f)
    63  		verifyIssues(t, issues, tc.want)
    64  	}
    65  }