github.com/devseccon/trivy@v0.47.1-0.20231123133102-bd902a0bd996/pkg/fanal/vm/disk/vmdk_test.go (about)

     1  package disk_test
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  	"github.com/stretchr/testify/require"
     9  
    10  	"github.com/devseccon/trivy/pkg/fanal/vm/disk"
    11  )
    12  
    13  func TestVMDK_NewReader(t *testing.T) {
    14  	tests := []struct {
    15  		name     string
    16  		fileName string
    17  		wantErr  string
    18  	}{
    19  		// TODO: add valid tests
    20  		{
    21  			name:     "invalid vmdk file",
    22  			fileName: "testdata/invalid.vmdk",
    23  			wantErr:  "invalid signature error",
    24  		},
    25  	}
    26  	for _, tt := range tests {
    27  		t.Run(tt.name, func(t *testing.T) {
    28  			v := disk.VMDK{}
    29  
    30  			f, err := os.Open(tt.fileName)
    31  			require.NoError(t, err)
    32  			defer f.Close()
    33  
    34  			_, err = v.NewReader(f, nil)
    35  			if err == nil {
    36  				assert.Fail(t, "required error test")
    37  			}
    38  			assert.ErrorContains(t, err, tt.wantErr)
    39  		})
    40  	}
    41  }