Merge pull request #105673 from andyzhangx/validate-windows-disk-num

support more than 100 disk mounts on Windows
This commit is contained in:
Kubernetes Prow Robot 2021-10-14 20:08:55 -07:00 committed by GitHub
commit 655c04d9f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 24 deletions

View File

@ -85,15 +85,9 @@ func NormalizeWindowsPath(path string) string {
// ValidateDiskNumber : disk number should be a number in [0, 99]
func ValidateDiskNumber(disk string) error {
diskNum, err := strconv.Atoi(disk)
if err != nil {
return fmt.Errorf("wrong disk number format: %q, err:%v", disk, err)
if _, err := strconv.Atoi(disk); err != nil {
return fmt.Errorf("wrong disk number format: %q, err: %v", disk, err)
}
if diskNum < 0 || diskNum > 99 {
return fmt.Errorf("disk number out of range: %q", disk)
}
return nil
}

View File

@ -44,23 +44,36 @@ func TestNormalizeWindowsPath(t *testing.T) {
}
func TestValidateDiskNumber(t *testing.T) {
diskNum := "0"
if err := ValidateDiskNumber(diskNum); err != nil {
t.Errorf("TestValidateDiskNumber test failed, disk number : %s", diskNum)
tests := []struct {
diskNum string
expectError bool
}{
{
diskNum: "0",
expectError: false,
},
{
diskNum: "invalid",
expectError: true,
},
{
diskNum: "99",
expectError: false,
},
{
diskNum: "100",
expectError: false,
},
{
diskNum: "200",
expectError: false,
},
}
diskNum = "99"
if err := ValidateDiskNumber(diskNum); err != nil {
t.Errorf("TestValidateDiskNumber test failed, disk number : %s", diskNum)
}
diskNum = "ab"
if err := ValidateDiskNumber(diskNum); err == nil {
t.Errorf("TestValidateDiskNumber test failed, disk number : %s", diskNum)
}
diskNum = "100"
if err := ValidateDiskNumber(diskNum); err == nil {
t.Errorf("TestValidateDiskNumber test failed, disk number : %s", diskNum)
for _, test := range tests {
err := ValidateDiskNumber(test.diskNum)
if (err != nil) != test.expectError {
t.Errorf("TestValidateDiskNumber test failed, disk number: %s, error: %v", test.diskNum, err)
}
}
}