github.com/polarismesh/polaris@v1.17.8/cache/test_export.go (about) 1 /** 2 * Tencent is pleased to support the open source community by making Polaris available. 3 * 4 * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. 5 * 6 * Licensed under the BSD 3-Clause License (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * https://opensource.org/licenses/BSD-3-Clause 11 * 12 * Unless required by applicable law or agreed to in writing, software distributed 13 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 14 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 * specific language governing permissions and limitations under the License. 16 */ 17 18 package cache 19 20 import ( 21 "context" 22 23 "github.com/polarismesh/polaris/store" 24 ) 25 26 // TestCacheInitialize 由于某一些模块依赖Cache,但是由于Cache模块初始化采用sync.Once,会导致单元测试之间Cache存在脏数据问题,因此为了确保单 27 // 元测试能够正常执行,这里将 cache.initialize 方法导出并命名为 TestCacheInitialize,仅用于单元测试初始化一个完整的 CacheManager 28 var ( 29 TestCacheInitialize = func(ctx context.Context, cacheOpt *Config, storage store.Store) (*CacheManager, error) { 30 mgr, err := newCacheManager(ctx, cacheOpt, storage) 31 if err != nil { 32 return nil, err 33 } 34 if err := Run(mgr, ctx); err != nil { 35 return nil, err 36 } 37 return mgr, err 38 } 39 ) 40 41 // TestUpdate only for test 42 func (nc *CacheManager) TestUpdate() error { 43 return nc.update() 44 }