github.com/weaviate/weaviate@v1.24.6/adapters/handlers/rest/handlers_backup_test.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package rest 13 14 import ( 15 "testing" 16 17 "github.com/stretchr/testify/assert" 18 "github.com/weaviate/weaviate/entities/models" 19 ubak "github.com/weaviate/weaviate/usecases/backup" 20 ) 21 22 func TestCompressionBackupCfg(t *testing.T) { 23 tcs := map[string]struct { 24 cfg *models.BackupConfig 25 expectedCompression ubak.CompressionLevel 26 expectedCPU int 27 expectedChunkSize int 28 }{ 29 "without config": { 30 cfg: nil, 31 expectedCompression: ubak.DefaultCompression, 32 expectedCPU: ubak.DefaultCPUPercentage, 33 expectedChunkSize: ubak.DefaultChunkSize, 34 }, 35 "with config": { 36 cfg: &models.BackupConfig{ 37 CPUPercentage: 25, 38 ChunkSize: 512, 39 CompressionLevel: models.BackupConfigCompressionLevelBestSpeed, 40 }, 41 expectedCompression: ubak.BestSpeed, 42 expectedCPU: 25, 43 expectedChunkSize: 512, 44 }, 45 "with partial config [CPU]": { 46 cfg: &models.BackupConfig{ 47 CPUPercentage: 25, 48 }, 49 expectedCompression: ubak.DefaultCompression, 50 expectedCPU: 25, 51 expectedChunkSize: ubak.DefaultChunkSize, 52 }, 53 "with partial config [ChunkSize]": { 54 cfg: &models.BackupConfig{ 55 ChunkSize: 125, 56 }, 57 expectedCompression: ubak.DefaultCompression, 58 expectedCPU: ubak.DefaultCPUPercentage, 59 expectedChunkSize: 125, 60 }, 61 "with partial config [Compression]": { 62 cfg: &models.BackupConfig{ 63 CompressionLevel: models.BackupConfigCompressionLevelBestSpeed, 64 }, 65 expectedCompression: ubak.BestSpeed, 66 expectedCPU: ubak.DefaultCPUPercentage, 67 expectedChunkSize: ubak.DefaultChunkSize, 68 }, 69 } 70 71 for n, tc := range tcs { 72 t.Run(n, func(t *testing.T) { 73 ccfg := compressionFromBCfg(tc.cfg) 74 assert.Equal(t, tc.expectedCompression, ccfg.Level) 75 assert.Equal(t, tc.expectedCPU, ccfg.CPUPercentage) 76 assert.Equal(t, tc.expectedChunkSize, ccfg.ChunkSize) 77 }) 78 } 79 } 80 81 func TestCompressionRestoreCfg(t *testing.T) { 82 tcs := map[string]struct { 83 cfg *models.RestoreConfig 84 expectedCompression ubak.CompressionLevel 85 expectedCPU int 86 expectedChunkSize int 87 }{ 88 "without config": { 89 cfg: nil, 90 expectedCompression: ubak.DefaultCompression, 91 expectedCPU: ubak.DefaultCPUPercentage, 92 expectedChunkSize: ubak.DefaultChunkSize, 93 }, 94 "with config": { 95 cfg: &models.RestoreConfig{ 96 CPUPercentage: 25, 97 }, 98 expectedCPU: 25, 99 }, 100 } 101 102 for n, tc := range tcs { 103 t.Run(n, func(t *testing.T) { 104 ccfg := compressionFromRCfg(tc.cfg) 105 assert.Equal(t, tc.expectedCPU, ccfg.CPUPercentage) 106 }) 107 } 108 }