mirror of
				https://github.com/minio/minio.git
				synced 2025-11-04 10:11:09 +01:00 
			
		
		
		
	- Deprecates _MINIO_PROFILER, `mc admin profile` does the job - Move ENVs to common location in cmd/config/
		
			
				
	
	
		
			83 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
/*
 | 
						|
 * MinIO Cloud Storage, (C) 2016 MinIO, Inc.
 | 
						|
 *
 | 
						|
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
 * you may not use this file except in compliance with the License.
 | 
						|
 * You may obtain a copy of the License at
 | 
						|
 *
 | 
						|
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 *
 | 
						|
 * Unless required by applicable law or agreed to in writing, software
 | 
						|
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
 * See the License for the specific language governing permissions and
 | 
						|
 * limitations under the License.
 | 
						|
 */
 | 
						|
 | 
						|
package cmd
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"errors"
 | 
						|
	"os"
 | 
						|
	"path/filepath"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/minio/minio/cmd/crypto"
 | 
						|
	"github.com/minio/minio/pkg/hash"
 | 
						|
)
 | 
						|
 | 
						|
var toAPIErrorTests = []struct {
 | 
						|
	err     error
 | 
						|
	errCode APIErrorCode
 | 
						|
}{
 | 
						|
	{err: hash.BadDigest{}, errCode: ErrBadDigest},
 | 
						|
	{err: hash.SHA256Mismatch{}, errCode: ErrContentSHA256Mismatch},
 | 
						|
	{err: IncompleteBody{}, errCode: ErrIncompleteBody},
 | 
						|
	{err: ObjectExistsAsDirectory{}, errCode: ErrObjectExistsAsDirectory},
 | 
						|
	{err: BucketNameInvalid{}, errCode: ErrInvalidBucketName},
 | 
						|
	{err: BucketExists{}, errCode: ErrBucketAlreadyOwnedByYou},
 | 
						|
	{err: ObjectNotFound{}, errCode: ErrNoSuchKey},
 | 
						|
	{err: ObjectNameInvalid{}, errCode: ErrInvalidObjectName},
 | 
						|
	{err: InvalidUploadID{}, errCode: ErrNoSuchUpload},
 | 
						|
	{err: InvalidPart{}, errCode: ErrInvalidPart},
 | 
						|
	{err: InsufficientReadQuorum{}, errCode: ErrSlowDown},
 | 
						|
	{err: InsufficientWriteQuorum{}, errCode: ErrSlowDown},
 | 
						|
	{err: UnsupportedDelimiter{}, errCode: ErrNotImplemented},
 | 
						|
	{err: InvalidMarkerPrefixCombination{}, errCode: ErrNotImplemented},
 | 
						|
	{err: InvalidUploadIDKeyCombination{}, errCode: ErrNotImplemented},
 | 
						|
	{err: MalformedUploadID{}, errCode: ErrNoSuchUpload},
 | 
						|
	{err: PartTooSmall{}, errCode: ErrEntityTooSmall},
 | 
						|
	{err: BucketNotEmpty{}, errCode: ErrBucketNotEmpty},
 | 
						|
	{err: BucketNotFound{}, errCode: ErrNoSuchBucket},
 | 
						|
	{err: StorageFull{}, errCode: ErrStorageFull},
 | 
						|
	{err: NotImplemented{}, errCode: ErrNotImplemented},
 | 
						|
	{err: errSignatureMismatch, errCode: ErrSignatureDoesNotMatch},
 | 
						|
 | 
						|
	// SSE-C errors
 | 
						|
	{err: crypto.ErrInvalidCustomerAlgorithm, errCode: ErrInvalidSSECustomerAlgorithm},
 | 
						|
	{err: crypto.ErrMissingCustomerKey, errCode: ErrMissingSSECustomerKey},
 | 
						|
	{err: crypto.ErrInvalidCustomerKey, errCode: ErrAccessDenied},
 | 
						|
	{err: crypto.ErrMissingCustomerKeyMD5, errCode: ErrMissingSSECustomerKeyMD5},
 | 
						|
	{err: crypto.ErrCustomerKeyMD5Mismatch, errCode: ErrSSECustomerKeyMD5Mismatch},
 | 
						|
	{err: errObjectTampered, errCode: ErrObjectTampered},
 | 
						|
 | 
						|
	{err: nil, errCode: ErrNone},
 | 
						|
	{err: errors.New("Custom error"), errCode: ErrInternalError}, // Case where err type is unknown.
 | 
						|
}
 | 
						|
 | 
						|
func TestAPIErrCode(t *testing.T) {
 | 
						|
	disk := filepath.Join(globalTestTmpDir, "minio-"+nextSuffix())
 | 
						|
	defer os.RemoveAll(disk)
 | 
						|
 | 
						|
	initFSObjects(disk, t)
 | 
						|
 | 
						|
	ctx := context.Background()
 | 
						|
	for i, testCase := range toAPIErrorTests {
 | 
						|
		errCode := toAPIErrorCode(ctx, testCase.err)
 | 
						|
		if errCode != testCase.errCode {
 | 
						|
			t.Errorf("Test %d: Expected error code %d, got %d", i+1, testCase.errCode, errCode)
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |