blob: c8a39a49e67697d67d17c221f3268304cdedc88a [file] [log] [blame]
package input
import (
"testing"
"cos.googlesource.com/cos/tools.git/src/cmd/cos_image_analyzer/internal/utilities"
)
// test FlagErrorChecking function
func TestFlagErrorChecking(t *testing.T) {
for _, tc := range []struct {
input *FlagInfo
want *FlagInfo
wantErr bool
}{
{input: &FlagInfo{Image1: "../testdata/DOESNOTEXIST.txt", Image2: ""},
want: &FlagInfo{},
wantErr: true},
{input: &FlagInfo{Image1: "../testdata/false.raw", Image2: ""},
want: &FlagInfo{},
wantErr: true},
{input: &FlagInfo{Image1: "", Image2: ""},
want: &FlagInfo{},
wantErr: true},
{input: &FlagInfo{Image1: "arg0", Image2: "", LocalPtr: true, BinaryTypesSelected: []string{"wrongType"}},
want: &FlagInfo{},
wantErr: true},
{input: &FlagInfo{Image1: "arg0", Image2: "", LocalPtr: true, GcsPtr: true, CosCloudPtr: false, BinaryTypesSelected: []string{"BuildID"}},
want: &FlagInfo{},
wantErr: true},
{input: &FlagInfo{Image1: "arg0", Image2: "", LocalPtr: true, GcsPtr: false, CosCloudPtr: false, OutputSelected: "notJsonOrTerminal"},
want: &FlagInfo{},
wantErr: true},
{input: &FlagInfo{Image1: "arg0", Image2: "", LocalPtr: false, GcsPtr: false, CosCloudPtr: false, OutputSelected: "notJsonOrTerminal", BinaryTypesSelected: []string{"BuildID"}},
want: &FlagInfo{Image1: "arg0", Image2: "", LocalPtr: true, GcsPtr: false, CosCloudPtr: false, OutputSelected: "notJsonOrTerminal", BinaryTypesSelected: []string{"BuildID"}},
wantErr: false},
} {
gotErr := FlagErrorChecking(tc.input)
if tc.wantErr && gotErr == nil {
t.Fatalf("expected error but none returned")
}
if gotErr != nil {
continue
}
if tc.input.LocalPtr != tc.want.LocalPtr {
t.Fatalf("expected: %v, got: %v", tc.want.LocalPtr, tc.input.LocalPtr)
}
if tc.input.GcsPtr != tc.want.GcsPtr {
t.Fatalf("expected: %v, got: %v", tc.want.GcsPtr, tc.input.GcsPtr)
}
if tc.input.CosCloudPtr != tc.want.CosCloudPtr {
t.Fatalf("expected: %v, got: %v", tc.want.CosCloudPtr, tc.input.CosCloudPtr)
}
if !utilities.EqualArrays(tc.input.BinaryTypesSelected, tc.want.BinaryTypesSelected) {
t.Fatalf("expected: %v, got: %v", tc.want.BinaryTypesSelected, tc.input.BinaryTypesSelected)
}
}
}