github.com/anchore/syft@v1.38.2/test/cli/unknowns_test.go (about)

     1  package cli
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func Test_Unknowns(t *testing.T) {
     8  	unknownsImage := getFixtureImage(t, "image-unknowns")
     9  
    10  	tests := []struct {
    11  		name       string
    12  		args       []string
    13  		env        map[string]string
    14  		assertions []traitAssertion
    15  	}{
    16  		{
    17  			name: "unknown executables",
    18  			args: []string{"scan", "-o", "json", unknownsImage, "--from", "docker-archive"},
    19  			env:  map[string]string{"SYFT_FORMAT_PRETTY": "true"},
    20  			assertions: []traitAssertion{
    21  				assertJsonReport,
    22  				assertInOutput(`no package identified in executable file`),
    23  				assertInOutput(`unable to read files from java archive`),
    24  				assertInOutput(`no package identified in archive`),
    25  				assertSuccessfulReturnCode,
    26  			},
    27  		},
    28  	}
    29  
    30  	for _, test := range tests {
    31  		t.Run(test.name, func(t *testing.T) {
    32  			cmd, stdout, stderr := runSyft(t, test.env, test.args...)
    33  			for _, traitFn := range test.assertions {
    34  				traitFn(t, stdout, stderr, cmd.ProcessState.ExitCode())
    35  			}
    36  			logOutputOnFailure(t, cmd, stdout, stderr)
    37  		})
    38  	}
    39  }