Test Function to reset globals. (#3538)

- Adding reset functions for important global variables.
- Using them in tests.
master
Karthic Rao 8 years ago committed by Harshavardhana
parent 464f9d34d6
commit 2f4a7483ea
  1. 22
      cmd/admin-handlers_test.go
  2. 4
      cmd/admin-rpc-server_test.go
  3. 4
      cmd/auth-rpc-client_test.go
  4. 2
      cmd/bucket-policy-handlers_test.go
  5. 26
      cmd/test-utils_test.go

@ -111,6 +111,11 @@ func getServiceCmdRequest(cmd cmdType, cred credential) (*http.Request, error) {
// testServicesCmdHandler - parametrizes service subcommand tests on // testServicesCmdHandler - parametrizes service subcommand tests on
// cmdType value. // cmdType value.
func testServicesCmdHandler(cmd cmdType, t *testing.T) { func testServicesCmdHandler(cmd cmdType, t *testing.T) {
// reset globals.
// this is to make sure that the tests are not affected by modified value.
resetTestGlobals()
// initialize NSLock.
initNSLock(false)
// Initialize configuration for access/secret credentials. // Initialize configuration for access/secret credentials.
rootPath, err := newTestConfig("us-east-1") rootPath, err := newTestConfig("us-east-1")
if err != nil { if err != nil {
@ -194,6 +199,12 @@ func TestServiceRestartHandler(t *testing.T) {
// Test for locks list management REST API. // Test for locks list management REST API.
func TestListLocksHandler(t *testing.T) { func TestListLocksHandler(t *testing.T) {
// reset globals.
// this is to make sure that the tests are not affected by modified globals.
resetTestGlobals()
// initialize NSLock.
initNSLock(false)
rootPath, err := newTestConfig("us-east-1") rootPath, err := newTestConfig("us-east-1")
if err != nil { if err != nil {
t.Fatalf("Unable to initialize server config. %s", err) t.Fatalf("Unable to initialize server config. %s", err)
@ -272,6 +283,12 @@ func TestListLocksHandler(t *testing.T) {
// Test for locks clear management REST API. // Test for locks clear management REST API.
func TestClearLocksHandler(t *testing.T) { func TestClearLocksHandler(t *testing.T) {
// reset globals.
// this is to make sure that the tests are not affected by modified globals.
resetTestGlobals()
// initialize NSLock.
initNSLock(false)
rootPath, err := newTestConfig("us-east-1") rootPath, err := newTestConfig("us-east-1")
if err != nil { if err != nil {
t.Fatalf("Unable to initialize server config. %s", err) t.Fatalf("Unable to initialize server config. %s", err)
@ -347,6 +364,11 @@ func TestClearLocksHandler(t *testing.T) {
// Test for lock query param validation helper function. // Test for lock query param validation helper function.
func TestValidateLockQueryParams(t *testing.T) { func TestValidateLockQueryParams(t *testing.T) {
// reset globals.
// this is to make sure that the tests are not affected by modified globals.
resetTestGlobals()
// initialize NSLock.
initNSLock(false)
// Sample query values for test cases. // Sample query values for test cases.
allValidVal := url.Values{} allValidVal := url.Values{}
allValidVal.Set(string(lockBucket), "bucket") allValidVal.Set(string(lockBucket), "bucket")

@ -22,6 +22,10 @@ import (
) )
func testAdminCmd(cmd cmdType, t *testing.T) { func testAdminCmd(cmd cmdType, t *testing.T) {
// reset globals.
// this is to make sure that the tests are not affected by modified globals.
resetTestGlobals()
rootPath, err := newTestConfig("us-east-1") rootPath, err := newTestConfig("us-east-1")
if err != nil { if err != nil {
t.Fatalf("Failed to create test config - %v", err) t.Fatalf("Failed to create test config - %v", err)

@ -20,6 +20,10 @@ import "testing"
// Tests authorized RPC client. // Tests authorized RPC client.
func TestAuthRPCClient(t *testing.T) { func TestAuthRPCClient(t *testing.T) {
// reset globals.
// this is to make sure that the tests are not affected by modified globals.
resetTestGlobals()
authCfg := authConfig{ authCfg := authConfig{
accessKey: "123", accessKey: "123",
secretKey: "123", secretKey: "123",

@ -945,7 +945,7 @@ func TestBucketPolicyConditionMatch(t *testing.T) {
} }
for i, tc := range testCases { for i, tc := range testCases {
t.Run(fmt.Sprintf("Test case %d: Failed.", i+1), func(t *testing.T) { t.Run(fmt.Sprintf("Case %d", i+1), func(t *testing.T) {
// call the function under test and assert the result with the expected result. // call the function under test and assert the result with the expected result.
doesMatch := bucketPolicyConditionMatch(tc.condition, tc.statementCondition) doesMatch := bucketPolicyConditionMatch(tc.condition, tc.statementCondition)
if tc.expectedMatch != doesMatch { if tc.expectedMatch != doesMatch {

@ -456,6 +456,23 @@ func resetGlobalConfig() {
serverConfigMu.Unlock() serverConfigMu.Unlock()
} }
// reset global NSLock.
func resetGlobalNSLock() {
if globalNSMutex != nil {
globalNSMutex = nil
}
}
// reset global event notifier.
func resetGlobalEventNotifier() {
globalEventNotifier = nil
}
// reset Global event notifier.
func resetGlobalEventnotify() {
globalEventNotifier = nil
}
// Resets all the globals used modified in tests. // Resets all the globals used modified in tests.
// Resetting ensures that the changes made to globals by one test doesn't affect others. // Resetting ensures that the changes made to globals by one test doesn't affect others.
func resetTestGlobals() { func resetTestGlobals() {
@ -465,6 +482,10 @@ func resetTestGlobals() {
resetGlobalConfigPath() resetGlobalConfigPath()
// Reset Global server config. // Reset Global server config.
resetGlobalConfig() resetGlobalConfig()
// Reset global NSLock.
resetGlobalNSLock()
// Reset global event notifier.
resetGlobalEventnotify()
} }
// Configure the server for the test run. // Configure the server for the test run.
@ -1876,6 +1897,11 @@ func ExecObjectLayerAPINilTest(t TestErrHandler, bucketName, objectName, instanc
// ExecObjectLayerAPITest - executes object layer API tests. // ExecObjectLayerAPITest - executes object layer API tests.
// Creates single node and XL ObjectLayer instance, registers the specified API end points and runs test for both the layers. // Creates single node and XL ObjectLayer instance, registers the specified API end points and runs test for both the layers.
func ExecObjectLayerAPITest(t *testing.T, objAPITest objAPITestType, endpoints []string) { func ExecObjectLayerAPITest(t *testing.T, objAPITest objAPITestType, endpoints []string) {
// reset globals.
// this is to make sure that the tests are not affected by modified value.
resetTestGlobals()
// initialize NSLock.
initNSLock(false)
// initialize the server and obtain the credentials and root. // initialize the server and obtain the credentials and root.
// credentials are necessary to sign the HTTP request. // credentials are necessary to sign the HTTP request.
rootPath, err := newTestConfig("us-east-1") rootPath, err := newTestConfig("us-east-1")

Loading…
Cancel
Save