fix testcases to init nslock properly (#5429)

This commit is contained in:
poornas 2018-01-23 19:34:09 -08:00 committed by Nitish Tiwari
parent 2d19663fef
commit 2dd117f647
2 changed files with 29 additions and 14 deletions

View File

@ -18,27 +18,38 @@ package cmd
import ( import (
"fmt" "fmt"
"os"
"testing" "testing"
"time" "time"
) )
// TestListLocksInfo - Test for listLocksInfo. // TestListLocksInfo - Test for listLocksInfo.
func TestListLocksInfo(t *testing.T) { func TestListLocksInfo(t *testing.T) {
// Initialize globalNSMutex to validate listing of lock // reset global variables to start afresh.
// instrumentation information. resetTestGlobals()
// Initialize minio server config.
rootPath, err := newTestConfig(globalMinioDefaultRegion)
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(rootPath)
// Initializing new XL objectLayer.
objAPI, _, xlErr := initTestXLObjLayer()
if xlErr != nil {
t.Fatalf("failed to init object layer")
}
// Make objLayer available to all internal services via globalObjectAPI.
globalObjLayerMutex.Lock()
globalObjectAPI = objAPI
globalObjLayerMutex.Unlock()
// Set globalIsXL to indicate that the setup uses an erasure code backend.
// initialize NSLock.
isDistXL := false isDistXL := false
initNSLock(isDistXL) initNSLock(isDistXL)
objAPI := newObjectLayerFn()
if objAPI == nil {
t.Errorf("Failed to initialize object layer")
}
var nsMutex *nsLockMap var nsMutex *nsLockMap
switch objAPI.(type) {
case *fsObjects: nsMutex = objAPI.(*xlObjects).nsMutex
nsMutex = objAPI.(*fsObjects).nsMutex
case *xlObjects:
nsMutex = objAPI.(*xlObjects).nsMutex
}
// Acquire a few locks to populate lock instrumentation. // Acquire a few locks to populate lock instrumentation.
// Take 10 read locks on bucket1/prefix1/obj1 // Take 10 read locks on bucket1/prefix1/obj1

View File

@ -39,6 +39,8 @@ func TestGetSource(t *testing.T) {
// Tests functionality provided by namespace lock. // Tests functionality provided by namespace lock.
func TestNamespaceLockTest(t *testing.T) { func TestNamespaceLockTest(t *testing.T) {
isDistXL := false
initNSLock(isDistXL)
// List of test cases. // List of test cases.
testCases := []struct { testCases := []struct {
lk func(s1, s2, s3 string, t time.Duration) bool lk func(s1, s2, s3 string, t time.Duration) bool
@ -155,7 +157,8 @@ func TestNamespaceLockTest(t *testing.T) {
} }
func TestNamespaceLockTimedOut(t *testing.T) { func TestNamespaceLockTimedOut(t *testing.T) {
isDistXL := false
initNSLock(isDistXL)
// Get write lock // Get write lock
if !globalNSMutex.Lock("my-bucket", "my-object", "abc", 60*time.Second) { if !globalNSMutex.Lock("my-bucket", "my-object", "abc", 60*time.Second) {
t.Fatalf("Failed to acquire lock") t.Fatalf("Failed to acquire lock")
@ -199,7 +202,8 @@ func TestNamespaceLockTimedOut(t *testing.T) {
// Tests functionality to forcefully unlock locks. // Tests functionality to forcefully unlock locks.
func TestNamespaceForceUnlockTest(t *testing.T) { func TestNamespaceForceUnlockTest(t *testing.T) {
isDistXL := false
initNSLock(isDistXL)
// Create lock. // Create lock.
lock := globalNSMutex.NewNSLock("bucket", "object") lock := globalNSMutex.NewNSLock("bucket", "object")
if lock.GetLock(newDynamicTimeout(60*time.Second, time.Second)) != nil { if lock.GetLock(newDynamicTimeout(60*time.Second, time.Second)) != nil {