github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/pkg/specgenutil/volumes_test.go (about)

     1  package specgenutil
     2  
     3  import "testing"
     4  
     5  func Test_validChownFlag(t *testing.T) {
     6  	type args struct {
     7  		flag string
     8  	}
     9  	tests := []struct {
    10  		name    string
    11  		args    args
    12  		want    bool
    13  		wantErr bool
    14  	}{
    15  		{
    16  			name: "U true",
    17  			args: args{
    18  				flag: "U=true",
    19  			},
    20  			want:    true,
    21  			wantErr: false,
    22  		},
    23  		{
    24  			name: "U true case doesnt matter",
    25  			args: args{
    26  				flag: "u=True",
    27  			},
    28  			want:    true,
    29  			wantErr: false,
    30  		},
    31  		{
    32  			name: "U is false",
    33  			args: args{
    34  				flag: "U=false",
    35  			},
    36  			want:    false,
    37  			wantErr: false,
    38  		},
    39  		{
    40  			name: "chown should also work",
    41  			args: args{
    42  				flag: "chown=true",
    43  			},
    44  			want:    true,
    45  			wantErr: false,
    46  		},
    47  		{
    48  			name: "garbage value should fail",
    49  			args: args{
    50  				flag: "U=foobar",
    51  			},
    52  			want:    false,
    53  			wantErr: true,
    54  		},
    55  	}
    56  	for _, tt := range tests {
    57  		t.Run(tt.name, func(t *testing.T) {
    58  			got, err := validChownFlag(tt.args.flag)
    59  			if (err != nil) != tt.wantErr {
    60  				t.Errorf("validChownFlag() error = %v, wantErr %v", err, tt.wantErr)
    61  				return
    62  			}
    63  			if got != tt.want {
    64  				t.Errorf("validChownFlag() got = %v, want %v", got, tt.want)
    65  			}
    66  		})
    67  	}
    68  }