(file) Return to TestMakefile CVS log (file) (dir) Up to [Pegasus] / pegasus

File: [Pegasus] / pegasus / TestMakefile (download)
Revision: 1.118, Thu Jan 15 19:57:57 2015 UTC (9 years, 3 months ago) by karl
Branch: MAIN
CVS Tags: RELEASE_2_14_1, RELEASE_2_14_0-RC2, RELEASE_2_14_0-RC1, RELEASE_2_14_0, RELEASE_2_14-root, RELEASE_2_14-branch, HEAD
Changes since 1.117: +75 -0 lines
BUG#: 10004
TITLE: EnumerationContext does not free instances on timeout

DESCRIPTION: rewrote timeout processing to clarify and cover more issues.
This patch fixes a couple of minor editoral issues in cimcli and also
adds a test suite to test to test if, at least under the test conditions,
it actually releases all of the enumerationContexts.

#//%LICENSE////////////////////////////////////////////////////////////////
#//
#// Licensed to The Open Group (TOG) under one or more contributor license
#// agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
#// this work for additional information regarding copyright ownership.
#// Each contributor licenses this file to you under the OpenPegasus Open
#// Source License; you may not use this file except in compliance with the
#// License.
#//
#// Permission is hereby granted, free of charge, to any person obtaining a
#// copy of this software and associated documentation files (the "Software"),
#// to deal in the Software without restriction, including without limitation
#// the rights to use, copy, modify, merge, publish, distribute, sublicense,
#// and/or sell copies of the Software, and to permit persons to whom the
#// Software is furnished to do so, subject to the following conditions:
#//
#// The above copyright notice and this permission notice shall be included
#// in all copies or substantial portions of the Software.
#//
#// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
#// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
#// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
#// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
#// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
#// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
#// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#//
#//////////////////////////////////////////////////////////////////////////
###############################################################################
##
## Test Makefile for Pegasus CIMOM
##
## see the usage rule for documentation of rules etc.
##
##
###############################################################################

error:
	@ $(ECHO) "Specify desired makefile option (i.e., unittests, usage )"

include $(PEGASUS_ROOT)/mak/config.mak
include $(PEGASUS_ROOT)/mak/test.mak
include $(PEGASUS_ROOT)/mak/commands.mak

system = localhost

.PHONY: FORCE

FORCE:

usage: FORCE
	$(USAGE)
	$(USAGE)"TestMakefile Primary Targets:"
	$(USAGE)
	$(USAGE)"The following are all standalone tests. They stop and start the server,"
	$(USAGE)"and build repositories as needed."
	$(USAGE)
	$(USAGE)"alltests           - Execute unittests and servertests"
	$(USAGE)"unittests          - Execute the unit functional tests - no repository"
	$(USAGE)"                     or active server is required"
	$(USAGE)"servertests        - Execute a basic server test suites (No security, No SSL)"
	$(USAGE)"standardtests      - Execute an extended server test suites "
	$(USAGE)"                     using multiple options."
	$(USAGE)"perftests          - Executes a brief server performance test"
	$(USAGE)
	$(USAGE)"usage2             - usage on secondary test targets"
	$(USAGE)"usagetrace         - usage on trace targets"
	$(USAGE)"stresstests        - Execute the default stress test suite"
	$(USAGE)

usage2: FORCE
	$(USAGE)
	$(USAGE)"TestMakefile Secondary Targets:"
	$(USAGE)
	$(USAGE)"The following are run as part of the Primary target test suites and may"
	$(USAGE)"also be invoked as standalone tests."
	$(USAGE)
	$(USAGE)"TestXMLRepository       - Executes poststarttests on XML repository"
	$(USAGE)"                          built with cimmofl."
	$(USAGE)"TestXMLRepositoryServer - Executes poststarttests on XML repository"
	$(USAGE)"                          built with cimmof."
	$(USAGE)"TestXMLCmpRepository    - Executes poststarttests on XML compressed"
	$(USAGE)"                          repository built with cimmofl."
	$(USAGE)"TestBinRepository       - Executes poststarttests on binary repository "
	$(USAGE)"                          built with cimmofl."
	$(USAGE)"TestBinRepositoryServer - Executes poststarttests on binary repository"
	$(USAGE)"                          built with cimmof."
	$(USAGE)"TestBinCmpRepository    - Executes poststarttests on binary compressed"
	$(USAGE)"                          repository built with cimmofl."
	$(USAGE)
	$(USAGE)"The following require the repository to be pre-built."
	$(USAGE)
	$(USAGE)"run_SSL_CBA_TS1         - Executes the Certificate based authentication test suite."
	$(USAGE)"run_SSL_IPV4_TS1        - Executes the IPv4 SSL connection test suite."
	$(USAGE)"run_SSL_IPV6_TS1        - Executes the IPv6 SSL connection test suite."
	$(USAGE)"run_OOP_TS1             - Executes the Out Of Process Provider tests"
	$(USAGE)"run_G11N_TS1            - Executes the Globalization tests"
	$(USAGE)
	$(USAGE)"The following require the repository to be pre-built and the server to be started."
	$(USAGE)
	$(USAGE)"serversuite             - the collection of test run by the servertests rule"
	$(USAGE)"run_STRESS_TS1          - Executes the stresstests"
	$(USAGE)"slptests                - Executes the slptests"
	$(USAGE)"run_Cmpi_Sub            - Executes the CMPI subscription tests"
	$(USAGE)
	$(USAGE)"The following requires wseventsink to be installed on the server and is not run"
	$(USAGE)"as part of Primary target tests suites."
	$(USAGE)"run_WSMAN_TS            - Executes the WSMAN indication deliver test"


##########################################################
#
# rules that are defined in Makefile
#
##########################################################

build: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile build

world: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile world

new: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile new

clean: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile clean

depend: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile depend

###############################################################################
#   mak/certificate_test.mak implements three key functions for
#   testing Certificate-Based Authentication (CBA).
#
#   setupCBATestCertificates is used to create a set of test certificates
#       make -f TestMakefile setupCBATestCertificates
#
#   runCBATestSuites is used to run a set of CBA tests
#       make -f TestMakefile runCBATestSuites
#
#   cleanupCBATestCertificates can be used to remove the test certificates
#       make -f TestMakefile cleanupCBATestCertificates
###############################################################################
include $(PEGASUS_ROOT)/mak/certificate_test.mak

############################################################
#
# rules defined here
#
############################################################

##
## Although the macros CIMSERVER_STOP_SERVICE and CIMSERVER_START_SERVICE
## are available and could be invoked directly, their direct usage is
## discouraged in favor of invoking the cimstop and the cimstart rules
## as this allows one place where additional checks, delays etc may be
## added in the future to control or further test the servers performance
## in executing these commands.
##

#######################
#
# doc
#
doc:
	$(MAKE) --directory=$(PEGASUS_ROOT)/doc/ProviderSpec -f Makefile
	$(MAKE) --directory=$(PEGASUS_ROOT)/doc/DevManual -f Makefile


#######################
#
# repositoryServer
#
repositoryServer: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	$(SLEEP) 5
	$(RMREPOSITORY) $(REPOSITORY_ROOT)
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart
	$(SLEEP) 5
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repositoryServer
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepositoryServer

######################
#
# prestarttests is being deprecated since poststarttest is being deprecated
# in favor of name more related to its intended functionality.
#
prestarttests: prestarttests_msg shortsleep unittests

prestarttests_msg: FORCE
	@$(ECHO) "=============================================================================="
	@$(ECHO) "TestMakefile: The \"prestarttests\" rule is being deprecated."
	@$(ECHO) "              Use \"make testusage\" for a description of the usage model."	
	@$(ECHO) "              The equivalent new rule is \"unittests\"."
	@$(ECHO) "              Invoking the \"unittests\" rule now."
	@$(ECHO) "=============================================================================="

####################
#
# poststarttests is being deprecated since it multiply defines a
# recursive make rule leading to ambuguity and confusion.
#
poststarttests: poststarttests_msg shortsleep servertests

poststarttests_msg: FORCE
	@$(ECHO) "==============================================================================="
	@$(ECHO) "TestMakefile: The \"posstarttests\" rule is being deprecated.."
	@$(ECHO) "              Use \"make testusage\" for a description of the usage model."	
	@$(ECHO) "              The equivalent new rule is \"servertests\"."
	@$(ECHO) "              Invoking the \"servertests\" rule now."
	@$(ECHO) "==============================================================================="

#####################
#
# tests is being deprecated since it multiply defines a
# recursive make rule leading to ambuguity and confusion.
#
tests: tests_msg shortsleep alltests

tests_msg: FORCE
	@$(ECHO) "==================================================================="
	@$(ECHO) "TestMakefile: The \"tests\" rule is being deprecated."
	@$(ECHO) "              Use \"make testusage\" for a description of the usage model."	
	@$(ECHO) "              The equivalent new rule is \"alltests\"."
	@$(ECHO) "              Invoking the \"alltests\" rule now."
	@$(ECHO) "==================================================================="


shortsleep: FORCE
	@$(SLEEP) 5

####################
#
# unittests
#
unittests: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile tests
	@ $(ECHO) "+++++ TestMakefile unittests complete"

#####################
#
# servertests
#

servertestsclean: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	$(MAKE) --directory=$(PEGASUS_ROOT)/src/Pegasus/CQL/tests/Queries -f Makefile clean
	$(MAKE) --directory=$(PEGASUS_ROOT)/src/Pegasus/Query/QueryExpression/tests/Queries -f Makefile clean
	$(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest -f Makefile clean

servertestssetup: FORCE
ifdef PEGASUS_HAS_SSL
#
# The association between user names and certificates is stored in the
# repository.  If the repository is recreated, we also need to re-initialize
# the trust store directories. Otherwise, the truststore content will be
# out-of-sync with the mapping stored in the repository.
#
#  NOTE: Tests that require their own test namespaces to run poststarttests
#  should add their namespace creation make commands to pegasus/Makefile
#  under the testrepository tag.
#
	$(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile removeSSLTrustDirectories
	$(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile createSSLTrustDirectories
endif
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repository
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepository
	@$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile \
            cleanupCBATestCertificates
	@$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile \
            setupCBATestCertificates
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile cimstart
	$(SLEEP) 5
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile ConfigureUsers
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile Create_SSL_Certificate
ifeq ($(PEGASUS_TEST_SDK),true)
	$(MAKE) --directory=$(PEGASUS_ROOT)/src/SDK/samples -f Makefile setupSDK
endif
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile cimstop

# slptests are run under separate target because these testcases require that
# both the cimserver and SLP are running. There is no need for special options
# while starting cimserver.
slptests:
	$(MAKE) --directory=$(PEGASUS_ROOT)/src/slp/tests/slptests -f Makefile slptests
	@ $(ECHO) "+++++ TestMakefile slp test suite completed"

servertests: servertestsclean servertestssetup serversuite
	@ $(ECHO) "+++++ TestMakefile servertests suites complete"

serversuite: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT)/src/Pegasus/Server/tests -f Makefile commandtests
ifeq ($(PEGASUS_ENABLE_SLP),true)
	$(MAKE) --directory=$(PEGASUS_ROOT)/src/slp/tests/srv_reg/ -f Makefile tests
endif
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile cimstart
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile poststarttests
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestBinRepository
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_Cimsub_InterOp
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_OOP_TS1
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_IndInit_TS1
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_OOPProvFail_TS1
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_OOPProvFail_TS2
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_OOPProvFail_TS3
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_INDSSL_TS1
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_SSL_IPV4_TS1
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_SSL_IPV6_TS1
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_SSL_CBA_TS1
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_G11N_TS1
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile runCBATestSuites
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_SDK_TS1
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_ExportClientSSL_TS1
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_Cimserver_Availability
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_sslCipherSuiteTests
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_TLSv1_2_tests
ifeq ($(PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER),true)
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_Cmpi_Sub
endif
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile cimprovagt32tests
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile chgdhoststests
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_idleConnectionTimeout1
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_idleConnectionTimeout2
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_providerLifecycleIndicationTests
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimListenAddress
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_interfaceRestrictionTest
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_providerReregisterTests 
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_ENUMCTXT_TS1
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_ENUMCTXT_TS2

#####################
#
# stresstests
#
stresstests:
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_STRESS_TS1

####################
#
# perftests - simple performance test until we have better
#
# - Turns statistics on (uses TestInterop until we have better)
# - runs poststarttests suite and TestBenchmark
# - runs cimperf to displat the statistics
# - turns statistics off
#
perftests: servertestsclean servertestssetup perfsuite

perfsuite: FORCE
	$(PEGASUS_HOME)/bin/TestInterop on
	$(TIME_CMD) $(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest -f Makefile poststarttests
	@ $(ECHO) " "
	$(TIME_CMD) $(PEGASUS_HOME)/bin/TestClient
	@ $(ECHO) " "
	$(TIME_CMD) $(PEGASUS_HOME)/bin/TestBenchmark
	@ $(ECHO) " "
	@ $(ECHO) " "
	$(TIME_CMD) $(PEGASUS_HOME)/bin/cimperf
	@ $(ECHO) " "
	$(PEGASUS_HOME)/bin/TestInterop off


####################
#
# alltests
#
alltests: unittests servertests
ifeq ($(OS_TYPE),windows)
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	$(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile uninstall
endif
	@ $(ECHO) "+++++ TestMakefile alltests Complete"

###############################################################################
##  Test Suite Definitions
###############################################################################

###############################################################################
##  OOP Test Suite 1: "Out-of-Process"(OOP) Provider Tests
##
##  Configuration Options: forceProviderProcesses=true
##
##  If PEGASUS_DEFAULT_ENABLE_OOP is set, then tests are run with OOP disabled
##  since tests have already been run with OOP enabled.
##
##
###############################################################################
ifeq ($(PEGASUS_DEFAULT_ENABLE_OOP),true)
OOP_TS1_CONFIG_OPTIONS = forceProviderProcesses=false
else
OOP_TS1_CONFIG_OPTIONS = forceProviderProcesses=true
endif

ifeq ($(PEGASUS_ENABLE_PRIVILEGE_SEPARATION),true)
    # When privilege separation is enabled, most providers run out of process
    # regardless of the forceProviderProcesses setting.  The exception is
    # providers that register with UserContext = 5 (CIM Server).  The only
    # case of this in the automated tests is the UserContextTestProvider.
    OOP_TS1_TEST_CMDS = \
        $(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/UserContextTestProvider/testclient@@poststarttests
else
    OOP_TS1_TEST_CMDS = \
        $(MAKE)@@--directory=$(PEGASUS_ROOT)@@-f@@Makefile@@poststarttests
endif

run_OOP_TS1:
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(OOP_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(OOP_TS1_TEST_CMDS)"

###############################################################################

###############################################################################
##  IndInit Test Suite 1: IndicationService Initialization Tests
##
##  Configuration Options: (none)
##
###############################################################################
IndInit_TS1_CONFIG_OPTIONS =
IndInit_TS1a_TEST_CMDS = \
	$(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Pegasus/IndicationService/tests/ProcessIndication@@IndInit_TS1a
IndInit_TS1b_TEST_CMDS = \
	$(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Pegasus/IndicationService/tests/ProcessIndication@@IndInit_TS1b

run_IndInit_TS1:
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(IndInit_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(IndInit_TS1a_TEST_CMDS)"
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(IndInit_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(IndInit_TS1b_TEST_CMDS)"

###############################################################################
##  OOPProvFail Test Suite 1: OOP Provider Module Failure Tests
##
##  Configuration Options: forceProviderProcesses=true
##  enableAuthentication=true, enableAuthentication=false
##
##  NOTE: Regardless of the setting of PEGASUS_DEFAULT_ENABLE_OOP, this test
##  suite is always run with OOP enabled.  This test suite causes a provider to
##  exit.  Running this test suite with OOP disabled would cause the cimserver
##  to exit and the test suite to fail.
##
##  NOTE: The test is run once with authentication enabled, and once without
##  authentication enabled.
##
###############################################################################
OOPProvFail_TS1a_CONFIG_OPTIONS = forceProviderProcesses=true enableAuthentication=true maxFailedProviderModuleRestarts=0
OOPProvFail_TS1b_CONFIG_OPTIONS = forceProviderProcesses=true enableAuthentication=false maxFailedProviderModuleRestarts=0
OOPProvFail_TS1_TEST_CMDS = \
	$(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/OOPModuleFailureProvider/testclient@@OOPProvFail_TS1

ifndef PEGASUS_DISABLE_PRIVILEGED_TESTS
run_OOPProvFail_TS1:
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(OOPProvFail_TS1a_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(OOPProvFail_TS1_TEST_CMDS)"
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(OOPProvFail_TS1b_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(OOPProvFail_TS1_TEST_CMDS)"
else
run_OOPProvFail_TS1: FORCE
	@ $(ECHO) "+++++ PEGASUS_DISABLE_PRIVILEGED_TESTS defined: Skipping run_OOPProvFail_TS1"
endif

###############################################################################
##  OOPProvFail Test Suite 2: OOP Provider Module Failure on IndicationService
##                            Initialization Tests
##
##  Configuration Options: forceProviderProcesses=true
##                         enableAuthentication=true
##
##  NOTE: Regardless of the setting of PEGASUS_DEFAULT_ENABLE_OOP, this test
##  suite is always run with OOP enabled.  This test suite causes a provider to
##  exit.  Running this test suite with OOP disabled would cause the cimserver
##  to exit and the test suite to fail.
##
###############################################################################
OOPProvFail_TS2_CONFIG_OPTIONS = forceProviderProcesses=true enableAuthentication=true
OOPProvFail_TS2a_TEST_CMDS = \
	$(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/OOPModuleFailureProvider/testclient@@OOPProvFail_TS2a
OOPProvFail_TS2b_TEST_CMDS = \
	$(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/OOPModuleFailureProvider/testclient@@OOPProvFail_TS2b

ifndef PEGASUS_DISABLE_PRIVILEGED_TESTS
run_OOPProvFail_TS2:
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(OOPProvFail_TS2_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(OOPProvFail_TS2a_TEST_CMDS)"
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(OOPProvFail_TS2_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(OOPProvFail_TS2b_TEST_CMDS)"
else
run_OOPProvFail_TS2: FORCE
	@ $(ECHO) "+++++ PEGASUS_DISABLE_PRIVILEGED_TESTS defined: Skipping run_OOPProvFail_TS2"
endif

###############################################################################
##  OOPProvFail Test Suite 3: OOP Provider Module Failure CIM Server restart
##                            Tests
##
##  Configuration Options: forceProviderProcesses=true
##                         enableAuthentication=true
##
##  NOTE: Regardless of the setting of PEGASUS_DEFAULT_ENABLE_OOP, this test
##  suite is always run with OOP enabled.  This test suite causes a provider to
##  exit.  Running this test suite with OOP disabled would cause the cimserver
##  to exit and the test suite to fail.
##
###############################################################################
OOPProvFail_TS3_CONFIG_OPTIONS = forceProviderProcesses=true enableAuthentication=true maxFailedProviderModuleRestarts=0
OOPProvFail_TS3a_TEST_CMDS = \
	$(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/OOPModuleFailureProvider/testclient@@OOPProvFail_TS3a
OOPProvFail_TS3b_TEST_CMDS = \
	$(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/OOPModuleFailureProvider/testclient@@OOPProvFail_TS3b

ifndef PEGASUS_DISABLE_PRIVILEGED_TESTS
run_OOPProvFail_TS3:
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(OOPProvFail_TS3_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(OOPProvFail_TS3a_TEST_CMDS)"
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(OOPProvFail_TS3_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(OOPProvFail_TS3b_TEST_CMDS)"
else
run_OOPProvFail_TS3: FORCE
	@ $(ECHO) "+++++ PEGASUS_DISABLE_PRIVILEGED_TESTS defined: Skipping run_OOPProvFail_TS3"
endif

###############################################################################
##  Indication SSL Test Suite 1: Indication Testing over HTTPS
##
##  Configuration Options: (none)
##
###############################################################################
INDSSL_TS1a_CONFIG_OPTIONS = enableHttpsConnection=true enableAuthentication=false
INDSSL_TS1a_TEST_CMDS = \
	$(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/IndicationStressTestProvider/testclient@@-f@@Makefile@@run_TS1_AuthenticationDisabled

INDSSL_TS1b_CONFIG_OPTIONS = enableHttpsConnection=true enableAuthentication=true sslClientVerificationMode=required
INDSSL_TS1b_TEST_CMDS = \
	$(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/IndicationStressTestProvider/testclient@@-f@@Makefile@@run_TS1_AuthenticationEnabled


ifdef PEGASUS_HAS_SSL
ifndef PEGASUS_DISABLE_PRIVILEGED_TESTS
run_INDSSL_TS1: EnableUsers Create_SSL_Certificate_ignore
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(INDSSL_TS1a_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(INDSSL_TS1a_TEST_CMDS)"
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(INDSSL_TS1b_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(INDSSL_TS1b_TEST_CMDS)"
else
run_INDSSL_TS1: FORCE
	@ $(ECHO) "+++++ PEGASUS_DISABLE_PRIVILEGED_TESTS defined: Skipping run_INDSSL_TS1"	
endif
else
run_INDSSL_TS1: FORCE
	@ $(ECHO) "+++++ PEGASUS_HAS_SSL not defined: Skipping run_INDSSL_TS1"
endif


###############################################################################
##  WSMAN Indication test suite : WSMAN Indication Testing over HTTPS
##
##  Configuration Options:  (none for cimserver)
##     wsevensink should be installed as the wsman listner.
##
##  There is no WSMAN listner in OP as of now. Therefore, wseventsink of
##  openwsman is used. This is available only on Linux. On other OSes, the
##  destination of the subcription/indication should be changed to a Linux
##  system where wseventsink is running.
##  Once we have a wsman listner in OP we include this test in Nigthly tests.
##  As of now, this has to be run explicitly. 
##
###############################################################################
ifeq ($(OS),linux) 
ifeq ($(PEGASUS_ENABLE_PROTOCOL_WSMAN),true)
INDWSMAN_CONFIG_OPTIONS = enableHttpsConnection=true enableAuthentication=false
INDWSMAN_TS1a_TEST_CMDS = \
	$(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/IndicationTestProvider/wsmanTestClient@@-f@@Makefile@@runWSMANtests

run_WSMAN_TS: FORCE
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(INDWSMAN_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(INDWSMAN_TS1a_TEST_CMDS)"
endif
endif

###############################################################################

###############################################################################
##  SSL IPv4 Test Suite : Tests SSL connections for IPv4
##
##  Configuration Options: enableHttpsConnection=true
##  NOTE : Authentication is not enabled as we are only verifying
##         if SSL based IPv6 connections are working correctly. The osinfo
##         client requires a password to be passed for a remote connection
##         otherwise it will prompt for one. As a work around,
##         we are providing a dummy password.
##
###############################################################################
SSL_IPV4_TS1_CONFIG_OPTIONS = enableHttpsConnection=true \
      enableAuthentication=false
SSL_IPV4_TS1_CMD_1 = \
        osinfo -s -w notapassword -h 127.0.0.1 -p 5989
SSL_IPV4_TS1_CMD_2 = \
        osinfo -s -w notapassword -h localhost -p 5989

ifdef PEGASUS_HAS_SSL
    run_SSL_IPV4_TS1: FORCE
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(SSL_IPV4_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(SSL_IPV4_TS1_CMD_1)"
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(SSL_IPV4_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(SSL_IPV4_TS1_CMD_2)"
else
    run_SSL_IPV4_TS1: FORCE
	@ $(ECHO) "+++++ PEGASUS_HAS_SSL not defined: Skipping run_SSL_IPV4_TS1"
endif

###############################################################################
##  SSL IPv6 Test Suite : Tests SSL connections for IPv6
##
##  Configuration Options: enableHttpsConnection=true
##  NOTE : Authentication is not enabled as we are only verifying
##         if SSL based IPv6 connections are working correctly. The osinfo
##         client requires a password to be passed for a remote connection
##         otherwise it will prompt for one. As a work around,
##         we are providing a dummy password.
##
##         The IPv4-mapped IPv6 address test is only enabled for unix
##         platforms as Windows does not support IPv4-mapped IPv6 addresses
##         on certain versions.
##
###############################################################################
SSL_IPV6_TS1_CONFIG_OPTIONS = enableHttpsConnection=true \
      enableAuthentication=false
SSL_IPV6_TS1_CMD_1 = \
        osinfo -s -w notapassword -h ::1 -p 5989
SSL_IPV6_TS1_CMD_2 = \
        osinfo -s -w notapassword -h ::ffff:127.0.0.1 -p 5989

ifdef PEGASUS_HAS_SSL
    run_SSL_IPV6_TS1: FORCE
    ifeq ($(PEGASUS_TEST_IPV6), true)
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(SSL_IPV6_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(SSL_IPV6_TS1_CMD_1)"
      ifeq ($(OS_TYPE), unix)
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(SSL_IPV6_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(SSL_IPV6_TS1_CMD_2)"
      endif
    else
	@ $(ECHO) "+++++ PEGASUS_TEST_IPV6 not defined: Skipping run_SSL_IPV6_TS1"
    endif
else
    run_SSL_IPV6_TS1: FORCE
	@ $(ECHO) "+++++ PEGASUS_HAS_SSL not defined: Skipping run_SSL_IPV6_TS1"
endif

###############################################################################
##  CBA SSL Test Suite 1: Certificate based authentication Tests
##
##  Configuration Options: enableAuthentication=true
##                         enableHttpsConnection=true
##                         sslClientVerificationMode=optional
##                         sslTrustStoreUserName=$(CURRENT_USER)
##
###############################################################################
SSL_CBA_TS1_CONFIG_OPTIONS = enableHttpsConnection=true enableAuthentication=true \
       sslClientVerificationMode=optional sslTrustStoreUserName=$(CURRENT_USER)
SSL_CBA_TS1_TEST_CMD_1 = \
       $(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Clients/cimtrust/tests@@SSLCertificateTest1
SSL_CBA_TS1_TEST_CMD_2 = \
       $(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Clients/cimcrl/tests@@SSLCRLTest1

ifdef PEGASUS_HAS_SSL
ifndef PEGASUS_DISABLE_PRIVILEGED_TESTS
run_SSL_CBA_TS1: FORCE
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(SSL_CBA_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(SSL_CBA_TS1_TEST_CMD_1)"
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(SSL_CBA_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(SSL_CBA_TS1_TEST_CMD_2)"
else
run_SSL_CBA_TS1: FORCE
	@ $(ECHO) "+++++ PEGASUS_DISABLE_PRIVILEGED_TESTS defined: Skipping run_SSL_CBA_TS1"	
endif
else
run_SSL_CBA_TS1: FORCE
	@ $(ECHO) "+++++ PEGASUS_HAS_SSL not defined: Skipping run_SSL_CBA_TS1"

endif

############################################################################
#
# Create_SSL_Certificate
#
# create a certificate that can be used for certification testing.
# It is currently used by the following tests:
#            -run_INDSSL_TS1
#
Create_SSL_Certificate_ignore: FORCE
	-$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile Create_SSL_Certificate

Create_SSL_Certificate: FORCE
ifdef PEGASUS_HAS_SSL
ifdef PEGASUS_TEST_USER_DEFINED
	$(ECHO) "Creating SSL certificate for test"
	cimtrust -a -U $(PEGASUS_TEST_USER_ID) -f $(PEGASUS_HOME)/server.pem -Ts
endif
else
	$(ECHO) "PEGASUS_HAS_SSL not defined - Not Creating SSL certificate for test"
endif

############################################################################
##
##  run_sslCipherSuiteTests
##
##  Configuration Options: enableHttpsConnection=true
##                         sslCipherSuite=HIGH
##
############################################################################

SSL_CIPHER_SUITE_TEST_CONFIG_OPTIONS= enableHttpsConnection=true sslCipherSuite=HIGH
SSL_CIPHER_SUITE_TEST_CMDS= \
	$(MAKE)@@--directory \
            $(PEGASUS_ROOT)/src/Pegasus/Client/tests/SSLCipherVerification/ \
            -f@@Makefile@@sslCipherSuiteTests

ifdef PEGASUS_HAS_SSL
run_sslCipherSuiteTests:
	@$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
             CIMSERVER_CONFIG_OPTIONS="$(SSL_CIPHER_SUITE_TEST_CONFIG_OPTIONS)" \
             TESTSUITE_CMDS="$(SSL_CIPHER_SUITE_TEST_CMDS)"
else
run_sslCipherSuiteTests: FORCE
	@ $(ECHO) "+++++ PEGASUS_HAS_SSL not defined: Skipping run_sslCipherSuiteTests"
endif


###############################################################################
##  G11N Test Suite 1: Globalization Tests
##
##  Configuration Options: forceProviderProcesses=false
##
###############################################################################
G11N_TS1_CONFIG_OPTIONS = forceProviderProcesses=false
G11N_TS1_TEST_CMDS = \
        $(MAKE) --directory $(PEGASUS_ROOT)/src/Clients/g11ntest \
            -f Makefile g11ntest

run_G11N_TS1:
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(G11N_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(G11N_TS1_TEST_CMDS)"

###############################################################################
##  Stress Test Suite 1:  Default Stress Tests
##
##  Configuration Options: (none)
##
###############################################################################
STRESS_TS1_CONFIG_OPTIONS =
STRESS_TS1_TEST_CMDS = \
        TestStressTestController

run_STRESS_TS1:
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(STRESS_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(STRESS_TS1_TEST_CMDS)"
###############################################################################

###############################################################################
##  SDK Test Suite 1:  SDK Tests
##
##  Configuration Options: (none)
##
###############################################################################
SDK_TS1_CONFIG_OPTIONS =
SDK_TS1_TEST_CMDS = \
        $(MAKE) --directory $(PEGASUS_ROOT)/src/SDK/samples \
            -f Makefile testSDK

ifeq ($(PEGASUS_TEST_SDK),true)
run_SDK_TS1: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT)/mak \
            -f $(PEGASUS_ROOT)/mak/SDKMakefile stageINCLUDE \
            PEGASUS_STAGING_DIR=$(PEGASUS_HOME) \
            PEGASUS_INCLUDE_DIR=/include
	$(MAKE) --directory=$(PEGASUS_ROOT)/src/SDK/samples \
            -f Makefile clean
	$(MAKE) --directory=$(PEGASUS_ROOT)/src/SDK/samples \
            -f Makefile PEGASUS_INCLUDE_DIR=$(PEGASUS_HOME)/include
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(SDK_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(SDK_TS1_TEST_CMDS)"
else
run_SDK_TS1: FORCE
	@ $(ECHO) "+++++ PEGASUS_TEST_SDK is not true: Skipping run_SDK_TS1"	
endif
###############################################################################

###############################################################################
##  Export Client SSL Test Suite 1:
##
##  Configuration Options: enableHttpsConnection=true
##
###############################################################################
ExportClientSSL_TS1_CONFIG_OPTIONS = enableHttpsConnection=true
ExportClientSSL_TS1_TEST_CMDS = \
	$(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Pegasus/ExportClient/tests/ExportClient@@-f@@Makefile@@runExportClientSSL_TS1

ifdef PEGASUS_HAS_SSL
run_ExportClientSSL_TS1:
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(ExportClientSSL_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(ExportClientSSL_TS1_TEST_CMDS)"
else
run_ExportClientSSL_TS1: FORCE
	@ $(ECHO) "+++++ PEGASUS_HAS_SSL not defined: Skipping run_ExportClientSSL_TS1"
endif

###############################################################################


###############################################################################
##  TLS v 1.2 support test as per NIST 800-131a
##
##  Configuration Options: enableHttpsConnection=true sslCipherSuite = TLSv1.2
##
###############################################################################
TLS_1_2_SUPPORT_CONFIG = enableHttpsConnection=true sslCipherSuite=TLSv1.2
TLSv1_2_support_tests = \
	$(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Pegasus/Server/tests/TLSv_1_2_Support@@-f@@Makefile@@test_TLSv1_2

ifdef PEGASUS_HAS_SSL
run_TLSv1_2_tests:
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(TLS_1_2_SUPPORT_CONFIG)" \
            TESTSUITE_CMDS="$(TLSv1_2_support_tests)"
else
run_TLSv1_2_tests: FORCE
	@ $(ECHO) "+++++ PEGASUS_HAS_SSL not defined: Skipping TLSv 1.2 support tests"
endif

###############################################################################


###############################################################################
##  idleConnectionTimeout Test Suite 1:  uses ChunkingStressProvider Tests
##
##  Configuration Options: idleConnectionTime=55
##
###############################################################################
IDLE_CONNECTION_TIMEOUT_1_CONFIG_OPTIONS = idleConnectionTimeout=55
IDLE_CONNECTION_TIMEOUT_1_TEST_CMDS = \
	$(MAKE)@@--directory \
            $(PEGASUS_ROOT)/src/Providers/TestProviders/ChunkingStressProvider/testclient \
            -f@@Makefile@@poststarttests

run_idleConnectionTimeout1: FORCE
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(IDLE_CONNECTION_TIMEOUT_1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(IDLE_CONNECTION_TIMEOUT_1_TEST_CMDS)"
###############################################################################

###############################################################################
##  idleConnectionTimeout Test Suite 2:  uses IdleConnectionTimeout client test
##
##  Configuration Options: idleConnectionTime=6
##
###############################################################################
IDLE_CONNECTION_TIMEOUT_2_CONFIG_OPTIONS = idleConnectionTimeout=6
IDLE_CONNECTION_TIMEOUT_2_TEST_CMDS = \
	$(MAKE)@@--directory \
            $(PEGASUS_ROOT)/src/Pegasus/Client/tests/IdleConnectionTimeout/ \
            -f@@Makefile@@timeoutTest@@IDLETIME=10
run_idleConnectionTimeout2: FORCE
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(IDLE_CONNECTION_TIMEOUT_2_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(IDLE_CONNECTION_TIMEOUT_2_TEST_CMDS)"
###############################################################################

###############################################################################
##  cimserver thread limit test:
##
##  Configuration Options: none
##
###############################################################################
CIMSERVER_THREAD_LIMIT_TEST_CONFIG_OPTIONS = forceProviderProcesses=true
CIMSERVER_THREAD_LIMIT_TEST_CMDS = \
       $(MAKE)@@--directory \
            $(PEGASUS_ROOT)/src/Providers/TestProviders/FaultyInstanceProvider/testclient \
            -f@@Makefile@@runAvailabilityTest
run_Cimserver_Availability: FORCE
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(CIMSERVER_THREAD_LIMIT_TEST_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(CIMSERVER_THREAD_LIMIT_TEST_CMDS)"
###############################################################################

###############################################################################
##  cimsub CLI Test Suite 1:  PG_InterOp Tests
##
##  Configuration Options: (none)
##
###############################################################################
CIMSUB_INTEROP_CONFIG_OPTIONS =
CIMSUB_INTEROP_TEST_CMDS = \
	$(MAKE) --directory \
            $(PEGASUS_ROOT)/src/Clients/cimsub/tests/testscriptInterOp \
            -f Makefile cimsubTest_InterOp
run_Cimsub_InterOp: FORCE
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(CIMSUB_INTEROP_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(CIMSUB_INTEROP_TEST_CMDS)"
###############################################################################

###############################################################################
## CMPI subscription activation Test Suite 1:
##
## Configuration Options: (none)
##
###############################################################################
CMPI_SUB_TEST_CONFIG_OPTIONS=
CMPI_SUBa_TEST_CMDS = \
	TestIndicationStressTest TestCMPI_IndicationStressTestClass test/TestProvider setup WQL
CMPI_SUBb_TEST_CMDS = \
	TestIndicationStressTest TestCMPI_IndicationStressTestClass test/TestProvider getSubscriptionCount
CMPI_SUBc_TEST_CMDS =  \
	TestIndicationStressTest TestCMPI_IndicationStressTestClass test/TestProvider cleanup
run_Cmpi_Sub: FORCE
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(CMPI_SUB_TEST_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(CMPI_SUBa_TEST_CMDS)"
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(CMPI_SUB_TEST_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(CMPI_SUBb_TEST_CMDS)"
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(CMPI_SUB_TEST_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(CMPI_SUBc_TEST_CMDS)"

##############################################################################

###############################################################################
##  EnumerationContext Black Box test 1
##
##  Configuration Options: Run with trace on and at least EnumContext compent
##                         set.  Trace output used to diagnose results
##                         Run with forceProviderProcesses=true
##  Runs a test of pull operations and tests the trace output to determine if
##  it includes an equal number of create and remove trace entries indicating
##  that all enumerations contexts completed. Note that today the code that
##  tests the trace results is a sh script and grep so this runs only on
##  systems that have these tools
##  This test was added in OpenPegasus 2.14 when the pull operations were 
##  added
##
###############################################################################
ENUMCTXT_TS1_CONFIG_OPTIONS = traceComponents=EnumContext traceLevel=4 forceProviderProcesses=true

ENUMCTXT_TS1A_TEST_CMDS = \
	$(MAKE)@@--directory \
            $(PEGASUS_ROOT)/src/Pegasus/Client/tests/pullop -f@@Makefile poststarttests

ENUMCTXT_TS1B_TEST_CMDS = \
	$(MAKE)@@--directory \
            $(PEGASUS_ROOT)/src/Pegasus/Client/tests/PullErrors -f@@Makefile poststarttests

ENUMCTXT_POSTTEST_CMD = $(PEGASUS_ROOT)/src/Pegasus/Client/tests/pullop/testContextTraceOutput

run_ENUMCTXT_TS1:
ifeq ($(findstring LINUX_, $(PEGASUS_PLATFORM)), LINUX_)
	$(RM) $(PEGASUS_HOME)/trace/*
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(ENUMCTXT_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(ENUMCTXT_TS1A_TEST_CMDS)"
	$(ENUMCTXT_POSTTEST_CMDS)

	$(RM) $(PEGASUS_HOME)/trace/*
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(ENUMCTXT_TS1_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(ENUMCTXT_TS1B_TEST_CMDS)"
	$(ENUMCTXT_POSTTEST_CMD)
else
	@ $(ECHO) "+++++ run_ENUMCTXT_TS1 runs only in certain environments"
endif
###############################################################################

###############################################################################
##  EnumerationContext Black Box test 2
##  Parallel to ENUMCTXT_TS1 except with forceProviderProcesses=false
##
###############################################################################
ENUMCTXT_TS2_CONFIG_OPTIONS = traceComponents=EnumContext traceLevel=4 forceProviderProcesses=false

## uses the test commands from run_ENUMCTXT_TS1

run_ENUMCTXT_TS2:
ifeq ($(findstring LINUX_, $(PEGASUS_PLATFORM)), LINUX_)
	$(RM) $(PEGASUS_HOME)/trace/*
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(ENUMCTXT_TS2_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(ENUMCTXT_TS1A_TEST_CMDS)"
	$(ENUMCTXT_POSTTEST_CMDS)

	$(RM) $(PEGASUS_HOME)/trace/*
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(ENUMCTXT_TS2_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(ENUMCTXT_TS1B_TEST_CMDS)"
	$(ENUMCTXT_POSTTEST_CMD)
else
	@ $(ECHO) "+++++ run_ENUMCTXT_TS1 runs only in certain environments"
endif
###############################################################################

#############################################################################
##
## 32-bit provider tests on 64-bit CIMServer
##
#############################################################################

TEST_32BIT_CONFIG_OPTIONS = providerDir=lib32:lib
TEST_32BIT_CMDS = \
       $(MAKE)@@--directory \
            $(PEGASUS_ROOT)/src/Providers/TestProviders -f@@Makefile.cimprovagt32tests@@cimprovagt32tests
cimprovagt32tests: FORCE
ifdef PEGASUS_PLATFORM_FOR_32BIT_PROVIDER_SUPPORT
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS="$(TEST_32BIT_CONFIG_OPTIONS)" \
            TESTSUITE_CMDS="$(TEST_32BIT_CMDS)"
else
	@$(ECHO) "PEGASUS_PLATFORM_FOR_32BIT_PROVIDER_SUPPORT not defined, skipping 32-bit tests..."
endif

#############################################################################
##
## CIMServer with overridden hostnames testing
##
#############################################################################

TEST_CHGD_HOSTS_OPTIONS = "hostname=hugo fullyQualifiedHostName=hugo.bert"
TEST_CHGD_HOSTS_CMDS = \
       $(MAKE)@@--directory \
            $(PEGASUS_ROOT)/src/Pegasus/Config/tests/ChgdHosts@@chgdhoststest
chgdhoststests: FORCE
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
            CIMSERVER_CONFIG_OPTIONS=$(TEST_CHGD_HOSTS_OPTIONS) \
            TESTSUITE_CMDS="$(TEST_CHGD_HOSTS_CMDS)"


#############################################################################
##
## provider lifecycle indications tests
##
#############################################################################
run_providerLifecycleIndicationTests: FORCE
	$(MAKE) --directory $(PEGASUS_ROOT)/src/Providers/TestProviders/TestProviderLifecycleIndications/testclient -f Makefile setupLogFile
	-$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart CIMSERVER_CONFIG_OPTIONS="forceProviderProcesses=true maxFailedProviderModuleRestarts=1"
	$(MAKE) --directory $(PEGASUS_ROOT)/src/Providers/TestProviders/TestProviderLifecycleIndications/testclient -f Makefile createPLISubscription
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart CIMSERVER_CONFIG_OPTIONS="forceProviderProcesses=true maxFailedProviderModuleRestarts=1"
	$(MAKE) --directory $(PEGASUS_ROOT)/src/Providers/TestProviders/TestProviderLifecycleIndications/testclient -f Makefile testPLI
	$(MAKE) --directory $(PEGASUS_ROOT)/src/Providers/TestProviders/TestProviderLifecycleIndications/testclient -f Makefile deletePLISubscription
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	$(MAKE) --directory $(PEGASUS_ROOT)/src/Providers/TestProviders/TestProviderLifecycleIndications/testclient -f Makefile testLogFile


#############################################################################
#
# Provider reregistration tests.
#
##############################################################################
run_providerReregisterTests:FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart
	$(MAKE) --directory $(PEGASUS_ROOT)/src/Providers/TestProviders/IndicationStressTestProvider/testclient -f Makefile createSubscriptions
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart
	$(MAKE) --directory $(PEGASUS_ROOT)/src/Providers/TestProviders/IndicationStressTestProvider/testclient -f Makefile reregister_providerTests
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	

#############################################################################
##
## Network Interface restriction tests
##
##  Configuration Options: enableHttpsConnection=true
##                         enableHttpConnection=true
##                         listenAddress=x.y.x.z
##
#############################################################################
startcimListenAddress: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart CIMSERVER_CONFIG_OPTIONS="enableHttpConnection=true enableHttpsConnection=true listenAddress=::1,127.0.0.1"
	$(SLEEP) 5



#Hardcoding the addess 127.0.0.1,
RESTRICT_INTRFC_TEST_CONFIG_OPTIONS= enableHttpConnection=true enableHttpsConnection=true listenAddress=127.0.0.1
RESTRICT_INTRFC_TEST_CMDS=$(MAKE)@@--directory $(PEGASUS_ROOT)/src/Pegasus/Server/tests/InterfaceRestriction@@-f@@Makefile@@RestrictionTest

run_interfaceRestrictionTest:FORCE
	$(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
	    CIMSERVER_CONFIG_OPTIONS="$(RESTRICT_INTRFC_TEST_CONFIG_OPTIONS)" \
	    TESTSUITE_CMDS="$(RESTRICT_INTRFC_TEST_CMDS)"


##############################################################################
##
## TestXMLRepository rule is used to run the poststarttests suite on
## the XML Repository built using cimmofl
##
## TestXMLRepositoryServer rule is used to run the poststarttests suite on
## the XML Repository built using cimmof
##
## TestXMLCmpRepository rule is used to run the poststarttest suite on
## the XML Compressed Repository built using cimmofl
##

############################
##
## TestXMLRepository
##

TestXMLRepository: TestXMLClean TestXMLBuildRepo  TestXMLRepo
	@ $(ECHO) TestXMLRepository +++++ passed all test

############################
##
## TestXMLRepositoryServer
##
TestXMLRepositoryServer: TestXMLClean  TestXMLBuildRepoServ TestXMLRepo
	@ $(ECHO) TestXMLRepositoryServer +++++ passed all test

############################
##
## TestXMLCmpRepository -  run poststarttest on Compressed BIN Repository
##
ifdef PEGASUS_ENABLE_COMPRESSED_REPOSITORY
TestXMLCmpRepository: FORCE
	@ $(ECHO) TestXMLCmpRepository +++++ Repository compressed by default - nothing more to test.
	@ $(ECHO) TestXMLCmpRepository +++++ passed all test
else

ifdef PEGASUS_ENABLE_COMPRESSED_REPOSITORY_TEST

TestXMLCmpRepository: TestXMLClean  TestCmpBuild TestXMLBuildRepo TestXMLRepo TestRegBuild
	@ $(ECHO) TestXMLCmpRepository +++++ passed all test
else
TestXMLCmpRepository: FORCE
	@ $(ECHO) TestXMLCmpRepository +++++ Not tested
	@ $(ECHO) TestXMLCmpRepository +++++ refer to readme.compressed_repository
	@ $(ECHO) TestXMLCmpRepository +++++ to enable: set PEGASUS_ENABLE_COMPRESSED_REPOSITORY_TEST=true
endif
endif

###########################
##
## TestXMLClean
##
TestXMLClean: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repositoryclean REPOSITORY_NAME=repository_xml


###########################
##
## TestXMLStartServer
##
TestXMLStartServer: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile install_run
	- $(MKDIRHIER) $(PEGASUS_HOME)/repository_xml
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart CIMSERVER_CONFIG_OPTIONS="repositoryDir=$(PEGASUS_HOME)/repository_xml"
	$(SLEEP) 5

####
#### The following caused the cimserver to fail on startup
####
####	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart CIMSERVER_CONFIG_OPTIONS="enableBinRepository=false repositoryDir=$(PEGASUS_HOME)/repository_xml"

###########################
##
## TestXMLBuildRepo
##
TestXMLBuildRepo: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repository REPOSITORY_NAME=repository_xml REPOSITORY_MODE=XML
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepository REPOSITORY_NAME=repository_xml REPOSITORY_MODE=XML


###########################
##
## TestXMLBuildRepoServ
##
TestXMLBuildRepoServ: TestXMLStartServer
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repositoryServer REPOSITORY_NAME=repository_xml REPOSITORY_MODE=XML
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepositoryServer REPOSITORY_NAME=repository_xml REPOSITORY_MODE=XML
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop


###########################
##
## TestXMLRepo
##
TestXMLRepo: servertestsclean
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestXMLStartServer
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile poststarttests REPOSITORY_NAME=repository_xml REPOSITORY_MODE=XML
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop






##############################################################################
##
## TestBinRepository rule is used to run the poststarttests suite on
## the Binary Repository built using cimmofl
##
## TestBinRepositoryServer rule is used to run the poststarttests suite on
## the Binary Repository built using cimmof
##
## TestBinCmpRepository rule is used to run the poststarttest suite on
## the Binry Compressed Repository built using cimmofl
##

############################
##
## TestBinRepository
##
### bug 3011 disabled Binary Repository testing on LINUX_IA64 to allow
### the nightly tests to run

TestBinRepository: TestBinClean TestBinBuildRepo  TestBinRepo
	@ $(ECHO) TestBinRepository +++++ passed all test


############################
##
## TestBinRepositoryServer
##
TestBinRepositoryServer: TestBinClean  TestBinBuildRepoServ TestBinRepo
	@ $(ECHO) TestBinRepositoryServer +++++ passed all test

############################
##
## TestBinCmpRepository -  run poststarttest on Compressed BIN Repository
##
ifdef PEGASUS_ENABLE_COMPRESSED_REPOSITORY
TestBinCmpRepository: FORCE
	@ $(ECHO) TestBinCmpRepository +++++ Repository compressed by default - nothing more to test.
	@ $(ECHO) TestBinCmpRepository +++++ passed all test
else

ifdef PEGASUS_ENABLE_COMPRESSED_REPOSITORY_TEST

TestBinCmpRepository: TestBinClean  TestCmpBuild TestBinBuildRepo TestBinRepo TestRegBuild
	@ $(ECHO) TestBinCmpRepository +++++ passed all test
else
TestBinCmpRepository: FORCE
	@ $(ECHO) TestBinCmpRepository +++++ Not tested
	@ $(ECHO) TestBinCmpRepository +++++ refer to readme.compressed_repository
	@ $(ECHO) TestBinCmpRepository +++++ to enable: set PEGASUS_ENABLE_COMPRESSED_REPOSITORY_TEST=true
endif
endif


###########################
##
## TestBinClean
##
TestBinClean: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repositoryclean REPOSITORY_NAME=repository_bin


###########################
##
## TestBinStartServer
##
TestBinStartServer: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile install_run
	- $(MKDIRHIER) $(PEGASUS_HOME)/repository_bin
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart CIMSERVER_CONFIG_OPTIONS="enableBinaryRepository=true repositoryDir=$(PEGASUS_HOME)/repository_bin"
	$(SLEEP) 5

###########################
##
## TestBinBuildRepo
##
TestBinBuildRepo: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repository REPOSITORY_NAME=repository_bin REPOSITORY_MODE=BIN
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepository REPOSITORY_NAME=repository_bin REPOSITORY_MODE=BIN


###########################
##
## TestBinBuildRepoServ
##
TestBinBuildRepoServ: TestBinStartServer
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repositoryServer REPOSITORY_NAME=repository_bin REPOSITORY_MODE=BIN
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepositoryServer REPOSITORY_NAME=repository_bin REPOSITORY_MODE=BIN
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop


###########################
##
## TestBinRepo
##
TestBinRepo: servertestsclean
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestBinStartServer
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile poststarttests REPOSITORY_NAME=repository_bin REPOSITORY_MODE=BIN
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop




############################
##
## TestCmpBuild - used to compile the repository for compression
##
TestCmpBuild: FORCE
	@ $(MAKE) "-SC" $(ROOT)/src/Pegasus/Repository clean
	@ $(MAKE) "-SC" $(ROOT)/src/Pegasus/Repository depend PEGASUS_ENABLE_COMPRESSED_REPOSITORY=1
	@ $(MAKE) "-SC" $(ROOT)/src/Pegasus/Repository PEGASUS_ENABLE_COMPRESSED_REPOSITORY=1


############################
##
## TestRegBuild - used to compile the repository for no compression
##
TestRegBuild: FORCE
	@ $(MAKE) "-SC" $(ROOT)/src/Pegasus/Repository clean
	@ $(MAKE) "-SC" $(ROOT)/src/Pegasus/Repository depend
	@ $(MAKE) "-SC" $(ROOT)/src/Pegasus/Repository

###############################################################################
##
## Trace Configuration
##
## Options: see usagetrace rule
##
###############################################################################

usagetrace: FORCE
	$(USAGE)
	$(USAGE)"TestMakefile Trace Commands: "
	$(USAGE)"  The cimserver must be running when using W=c which is the default for W"
	$(USAGE)
	$(USAGE)" traceon  W=[current/planned(c,p):   Enables all tracing."
	$(USAGE)" traceoff W=[current/planned(c,p):   Disables all tracing."
	$(USAGE)" tracesettings:                      Displays all trace settings."
	$(USAGE)" tracecomp:                          Displays a trace componenets list."
	$(USAGE)" traceon-CL C=[comp] L=[level(1,2,3,4)] W=[current/planned(c,p): "
	$(USAGE)"                           Enables tracing on component C at trace level L."
	$(USAGE)
	$(USAGE)" W defaults to c in the above commands where W can be specified"
	$(USAGE)
	$(USAGE)"  Usage examples:"
	$(USAGE)"   traceon       turns on trace in current server config"
	$(USAGE)"   traceon W=c   turns on trace in current server config"
	$(USAGE)"   traceon W=p   turns on trace in planned server config"
	$(USAGE)"   traceoff      turns on trace in current server config"
	$(USAGE)"   traceoff W=c  turns on trace in current server config"
	$(USAGE)"   traceoff W=p  turns on trace in planned server config"
	$(USAGE)
	$(USAGE)"   traceon-CL C=DiscardedData L=3 W=c"
	$(USAGE)"     Turns on trace for DiscardedData at level 3 in current server config"
	$(USAGE)"   traceon-CL C=DiscardedData L=3 W=p"
	$(USAGE)"     Turns on trace for DiscardedData at level 3 in planned server config"
	$(USAGE)
	$(USAGE)

traceon: FORCE
	@ cimconfig -s traceComponents=ALL -$W
	@ cimconfig -s traceLevel=3 -$W
	$(MAKE) -f $(ROOT)/TestMakefile tracesettings


traceoff: FORCE
	@ cimconfig -s traceComponents=  -$W
	$(MAKE) -f $(ROOT)/TestMakefile tracesettings


tracesettings: FORCE
	@ $(ECHO) " "
	cimconfig -g traceComponents -c -p
	@ $(ECHO) " "
	cimconfig -g traceLevel -c -p
	@ $(ECHO) " "
	cimconfig -g traceFilePath -c -p
	@ $(ECHO) " "

traceon-CL: FORCE
	@ cimconfig -s traceComponents=$C -$W
	@ cimconfig -s traceLevel=$L -$W
	$(MAKE) -f $(ROOT)/TestMakefile tracesettings

tracecomp: FORCE
	$(USAGE)
	$(USAGE)"Trace component list:"
	$(USAGE)
	$(USAGE)"Channel"
	$(USAGE)"XmlParser"
	$(USAGE)"XmlWriter"
	$(USAGE)"XmlReader"
	$(USAGE)"XmlIO"
	$(USAGE)"Http"
	$(USAGE)"CimData"
	$(USAGE)"ProvManager"
	$(USAGE)"Repository"
	$(USAGE)"Dispatcher"
	$(USAGE)"OsAbstraction"
	$(USAGE)"Config"
	$(USAGE)"IndDelivery"
	$(USAGE)"IndHandler"
	$(USAGE)"Authentication"
	$(USAGE)"Authorization"
	$(USAGE)"UserManager"
	$(USAGE)"SubscriptionService"
	$(USAGE)"Registration"
	$(USAGE)"Shutdown"
	$(USAGE)"Server"
	$(USAGE)"IndicationService"
	$(USAGE)"IndicationServiceInternal"
	$(USAGE)"ConfigurationManager"
	$(USAGE)"MessageQueueService"
	$(USAGE)"ProviderManager"
	$(USAGE)"ObjectResolution"
	$(USAGE)"WQL"
	$(USAGE)"CQL"
	$(USAGE)"Thread"
	$(USAGE)"MetaDispatcher"
	$(USAGE)"IPC"
	$(USAGE)"IndicationHandlerService"
	$(USAGE)"CIMExportRequestDispatcher"
	$(USAGE)"Memory"
	$(USAGE)"SSL"
	$(USAGE)"ControlProvider"
	$(USAGE)"AsyncOpNode"
	$(USAGE)"CIMOMHandle"
	$(USAGE)"L10N"
	$(USAGE)"ExportClient"
	$(USAGE)"Listener"
	$(USAGE)"DiscardedData"
	$(USAGE)"ProviderAgent"
	$(USAGE)"EnumContext"
	$(USAGE)

###############################################################################
##
## Trace Configuration - Old rules being deprecated
##
## Options:
##      XMLTraceOn: Enables XML request and response tracing.
##      ProviderLoadTraceOn: Enables Provider load tracing.
##      XML+ProviderLoadTraceOn: Enables both XML request/response and Provider
##                                 load tracing.
##      AllTraceOn: Enables all tracing.
##      AllTraceOff: Disables all tracing.
##      list: Lists trace settings.
##
###############################################################################

XMLTraceOn:
	cimconfig -s traceComponents=XmlIO -c
	cimconfig -s traceLevel=3 -c
	cimconfig -g traceComponents
	cimconfig -g traceLevel

ProviderLoadTraceOn:
	cimconfig -s traceComponents=ProvManager,OsAbstraction
	cimconfig -s traceLevel=3 -c
	cimconfig -g traceComponents
	cimconfig -g traceLevel

XML+ProviderLoadTraceOn:
	cimconfig -s traceComponents=XmlIO,ProvManager,OsAbstraction
	cimconfig -s traceLevel=3 -c
	cimconfig -g traceComponents
	cimconfig -g traceLevel

AllTraceOn: traceon

AllTraceOff: traceoff

list: tracesettings

#########################################################################
# standardtests
#
# More testing options...
#
# The standard test seem to contain additional test that may not be able
# to run on all platforms so they have been grouped here for now rather than
# being included in the serversuite rule.
#
# The test are:
#      TestCimmof
#      TestNoSecurity
#      TestLocalSecurity
#      TestRemoteSecurity
#      TestAuthorization
#
# NOTE: The TestsNoSecurity test is comprised of DisableSecurity and
#       TestNoSecurity.
#
# NOTE: The TestNoSecurity step runs the servertests which builds the
#       the repository that is then left in place for the remaining tests.
#       The cimof test must be before the TestNosecurity step as it removes
#       the repository builds a new one with cimmofl and another one with
#       cimmof and then compares them.
#
# NOTE: The Authentication test is comprised of EnableAuthentication,
#       TestLocalSecurity and TestRemoteSecurity.
#
# NOTE: The Authorization test is comprised of EnableAuthorization and
#       TestAuthorization.
#
# NOTE: The EnableAuthentication and EnableAuthorization steps require
#       root access. Pegasus doesn't currently have the infrastructure
#       in place to run the server as root and run the test as non-root.
#       Rather than run everything, server, tests, providers, clients etc.
#       as root many testers prefer to run the tests as non-root. Setting
#       PEGASUS_DISABLE_PRIVILEGED_TESTS in the environment helps to
#       facilitate that.
#

standardtests: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i DisableSecurity
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestCimmof
#	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestNoSecurity
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repository testrepository
ifndef PEGASUS_DISABLE_PRIVILEGED_TESTS
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile EnableAuthentication
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestLocalSecurity
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestRemoteSecurity
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile EnableAuthorization
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestAuthorization
else
	@ $(ECHO) "+++++ PEGASUS_DISABLE_PRIVILEGED_TESTS defined: Skipping EnableAuthentication, TestLocalSecurity, and TestRemoteSecurity "
	@ $(ECHO) "+++++ PEGASUS_DISABLE_PRIVILEGED_TESTS defined: Skipping EnableAuthorization and TestAuthorization "	
endif
        # Reset the security options to the defaults
	cimconfig -u enableNamespaceAuthorization -p
	cimconfig -u enableAuthentication -p
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	@ $(ECHO) "+++++ TestMakefile standardtests complete"

TestNoSecurity:
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile servertests
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile RunTestClientLocal

TestLocalSecurity:
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile RunTestClientLocal
	$(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest -f Makefile poststarttests HOSTNAME= PORT= USER= PASSWORD= SECURITY_ENABLED=true

TestRemoteSecurity:
	TestClient -user $(PEGASUS_TEST_USER_ID) -password $(PEGASUS_TEST_USER_PASS) $(system):5988
	$(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest/static -f Makefile poststarttests HOSTNAME=-h$(system) USER=-u$(PEGASUS_TEST_USER_ID) PASSWORD=-w$(PEGASUS_TEST_USER_PASS) SECURITY_ENABLED=true

TestAuthorization:
	TestPegClientDeleteNamespace -a -user $(PEGASUS_TEST_USER_ID) -password $(PEGASUS_TEST_USER_PASS)
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile RunTestClientLocal
	TestClient -user $(PEGASUS_TEST_USER_ID) -password $(PEGASUS_TEST_USER_PASS) $(system):5988
	$(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest/static -f Makefile poststarttests HOSTNAME=-h$(system) USER=-u$(PEGASUS_TEST_USER_ID) PASSWORD=-w$(PEGASUS_TEST_USER_PASS) SECURITY_ENABLED=true

TestSubscriptions:
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile DisableSecurity
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repository
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepository
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
	$(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest/cimv2/Subscription -f Makefile poststarttests
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile cimstop

TestCimmof:
        # Build the repository with cimmofl and cimmof and compare them.
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	-@$(MOVE) $(REPOSITORY_DIR)/repository $(REPOSITORY_DIR)/repository-save
	@$(RMREPOSITORY) $(REPOSITORY_DIR)/repository-cimmofl
	@$(RMREPOSITORY) $(REPOSITORY_DIR)/repository-cimmof
	@$(ECHO) $(CIM_SCHEMA_DIR)
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repository
	@$(MOVE) $(REPOSITORY_DIR)/repository $(REPOSITORY_DIR)/repository-cimmofl
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile cimstart
	@$(ECHO) $(CIM_SCHEMA_DIR)
	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repositoryServer
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile cimstop
	@$(MOVE) $(REPOSITORY_DIR)/repository $(REPOSITORY_DIR)/repository-cimmof
	-@$(MOVE) $(REPOSITORY_DIR)/repository-save $(REPOSITORY_DIR)/repository
	TestCompareRepositories $(REPOSITORY_DIR)/repository-cimmofl $(REPOSITORY_DIR)/repository-cimmof
	@$(RMREPOSITORY) $(REPOSITORY_DIR)/repository-cimmofl
	@$(RMREPOSITORY) $(REPOSITORY_DIR)/repository-cimmof

RunTestClientLocal:
	TestClient -local

DisableSecurity:
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	cimconfig -s enableAuthentication=false -p
	cimconfig -s enableNamespaceAuthorization=false -p

EnableUsers:
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile ConfigureUsers

EnableAuthentication:
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	cimconfig -s enableAuthentication=true -p
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile ConfigureUsers

EnableAuthorization:
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	cimconfig -s enableNamespaceAuthorization=true -p
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i ConfigureAuthorizations

EnableSSL:
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithSSL

#
# ConfigureUsers
#
# The server must be running prior to invoking this rule
#
ConfigureUsers:
ifndef PEGASUS_PAM_AUTHENTICATION
	-cimuser -l
	-cimuser -a -u $(PEGASUS_TEST_USER_ID) -w $(PEGASUS_TEST_USER_PASS)
endif

#
# ConfigureAuthorizations rule
#
# The server must be running prior to invoking this rule
#
ConfigureAuthorizations:
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test/cimv2 -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/cimv2 -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/PG_Internal -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n $(PEGASUS_INTEROP_NAMESPACE) -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/benchmark -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/sampleprovider -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test/static -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/SampleProvider -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/MCCAtest/A -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/MCCAtest/B -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test/TestProvider -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test1 -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test2 -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test3 -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test4 -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test5 -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test6 -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test1/test2 -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test1/test2/test3 -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test1/test2/test3/test4 -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test1/test2/test3/test4/test5 -R -W
	cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test1/test2/test3/test4/test5/test6 -R -W
ifeq ($(PEGASUS_ENABLE_PRIVILEGE_SEPARATION),true)
	cimauth -a -u $(PEGASUS_CIMSERVERMAIN_USER) -n root/cimv2 -R -W
endif

startcimWithoutSSL: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart
	$(SLEEP) 5

startcimWithSSL: FORCE
	$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart CIMSERVER_CONFIG_OPTIONS="enableHttpConnection=false enableHttpsConnection=true"
	$(SLEEP) 5

###############################################################################
##
## check_for_cores - used to search for core files in the build environment.
##
## This option will search (1) each source directory, (2) the PEGASUS_CORE_DIR
## if it is defined and (3) the PEGASUS_TMP directory.
##
###############################################################################
CORE_FILE_LIST = $(PEGASUS_HOME)/CoreFileList

check_core_search_results:
ifneq ($(wildcard $(CORE_FILE_LIST)), )
	@$(ECHO) "*** One or more core files found. ***"
	@$(CAT) $(CORE_FILE_LIST)
	@exit 1
endif

ifdef PEGASUS_CORE_DIR
   CORE_FILES_IN_CORE_DIR = \
       $(wildcard $(PEGASUS_CORE_DIR)/$(PLATFORM_CORE_PATTERN))
endif
ifdef PEGASUS_TMP
   CORE_FILES_IN_TMP_DIR = \
       $(wildcard $(PEGASUS_TMP)/$(PLATFORM_CORE_PATTERN))
endif

generate_core_file_list:
	@$(RM) $(CORE_FILE_LIST)
	@$(MAKE) -s directory=$(PEGASUS_ROOT) general OPTION=CORE_SEARCH \
            CORE_FILE_LIST=$(CORE_FILE_LIST)
ifdef PEGASUS_CORE_DIR
   ifneq ($(CORE_FILES_IN_CORE_DIR), )
	@$(ECHO) $(CORE_FILES_IN_CORE_DIR) >> $(CORE_FILE_LIST)
   endif
endif
ifdef PEGASUS_TMP
   ifneq ($(CORE_FILES_IN_TMP_DIR), )
	@$(ECHO) $(CORE_FILES_IN_TMP_DIR) >> $(CORE_FILE_LIST)
   endif
endif

check_for_cores:
	@$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile \
            generate_core_file_list
	@$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile \
            check_core_search_results

###############################################################################
##
## option_summary - used to generate a concise list of build options for use in
## a nightly build status report.  This is not intended to be a complete list,
## so it is likely that some options are omitted.  New options may be added
## here as needs dictate.
##
###############################################################################

OPTION_SUMMARY =
ifeq ($(PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER),true)
    OPTION_SUMMARY += "+CMPI"
endif
ifeq ($(PEGASUS_ENABLE_CQL),true)
    OPTION_SUMMARY += "+CQL"
endif
ifeq ($(PEGASUS_HAS_ICU),true)
    OPTION_SUMMARY += "+ICU"
endif
ifeq ($(PEGASUS_ENABLE_IPV6),true)
    OPTION_SUMMARY += "+IPv6"
endif
ifeq ($(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER),true)
    OPTION_SUMMARY += "+JMPI"
endif
ifeq ($(PEGASUS_ENABLE_PRIVILEGE_SEPARATION),true)
    OPTION_SUMMARY += "+PrivSep"
endif
ifdef PEGASUS_ENABLE_EXECQUERY
    OPTION_SUMMARY += "+Query"
endif
ifdef PEGASUS_ENABLE_REMOTE_CMPI
    OPTION_SUMMARY += "+RCMPI"
endif
ifeq ($(PEGASUS_ENABLE_SLP),true)
    OPTION_SUMMARY += "+SLP"
endif
ifeq ($(PEGASUS_USE_SQLITE_REPOSITORY),true)
    OPTION_SUMMARY += "+SQLite"
endif
ifdef PEGASUS_HAS_SSL
    OPTION_SUMMARY += "+SSL"
endif
ifeq ($(PEGASUS_ENABLE_PROTOCOL_WSMAN),true)
    OPTION_SUMMARY += "+WSMan"
endif

option_summary:
	@$(ECHO) "$(OPTION_SUMMARY)"

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2