BUG#: 8815
[tpot/pegasus/.git] / TestMakefile
index dcf79ff837dda6fcf1d0b45c0091da408cbfb521..d5ec9bafb9fb5178b734b4094a439ff900b27518 100644 (file)
+#//%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)
+
+
+##########################################################
+#
+# 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
+#
+############################################################
+
 ##
-## Test Makefile for Pegasus CIMOM
+## 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.
 ##
-## Options:
-##      rebuild            - Rebuild
-##      build              - Build
-##      prestarttests      - Execute functional tests
-##      poststarttests     - Execute poststarttests (No security, No SSL)
-##      tests              - Execute prestarttests and poststarttests
-##      standardtests      - Execute poststartests and a series of
-##                           posstarttests using multiple options.
+
+#######################
+#
+# 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
+       $(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
+ifeq ($(PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER),true)
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_Cmpi_Sub
+endif
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_idleConnectionTimeout1
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_idleConnectionTimeout2
+
+#####################
+#
+# 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
+OOPProvFail_TS1b_CONFIG_OPTIONS = forceProviderProcesses=true enableAuthentication=false
+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
 ##
-## Platform specific settings for several platforms.
+##  Configuration Options: forceProviderProcesses=true
+##                         enableAuthentication=true
 ##
-## NOTE: Please add platform specific environment variables as appropriate.
+##  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
 
-ifeq ($(PEGASUS_PLATFORM),WIN32_IX86_MSVC)
-    CIMSERVER_START_SERVICE = cimserver -start
-    CIMSERVER_STOP_SERVICE = cimserver -stop
-    SLEEP =
-    REMOVE_PEGASUS_DIRECTORY = mu rmdirhier pegasus
-    MUEXE = mu.exe
-    MKDIR = $(MUEXE) mkdirhier
-    TESTS = prestarttests poststarttests
+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
 
-ifeq ($(PEGASUS_PLATFORM),DARWIN_PPC_GNU)
-    CIMSERVER_START_SERVICE = cimserver
-    CIMSERVER_STOP_SERVICE = cimserver -s; true
-    SLEEP = sleep 5
-    MUEXE = mu
-    MKDIR = $(MUEXE) mkdirhier
-    TESTS = prestarttests poststarttests
+###############################################################################
+##  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
+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
+
+
+###############################################################################
+
+###############################################################################
+##  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
 
-ifeq ($(OS),HPUX)
-    CIMSERVER_START_SERVICE = cimserver
-    CIMSERVER_STOP_SERVICE = cimserver -s; true
-    SLEEP = sleep 5
-    MUEXE = mu
-    MKDIR = $(MUEXE) mkdirhier
-    TESTS = prestarttests poststarttests
+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
 
-ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
-    CIMSERVER_START_SERVICE = cimserver
-    CIMSERVER_STOP_SERVICE = cimserver -s; true
-    SLEEP = sleep 5
-    MUEXE = mu
-    MKDIR = $(MUEXE) mkdirhier
-    TESTS = prestarttests poststarttests
+###############################################################################
+##  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
 
-error:
-       @ $(ECHO) "Specify desired makefile option (i.e., build, rebuild)"
+###############################################################################
+##  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
 
-buildmu:
-       $(MAKE) --directory=$(PEGASUS_ROOT)/src/utils/mu -f Makefile
-       $(MKDIR) $(BIN_DIR)
+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"
 
-rebuild: clean buildmu all
+endif
 
-build: all
+############################################################################
+#
+# 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
 
-all: buildmu
-       $(MAKE)  -f Makefile depend
-       $(MAKE)  -f Makefile all
+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
 
-doc:
-       $(MAKE) --directory=$(PEGASUS_ROOT)/doc/ProviderSpec -f Makefile
-       $(MAKE) --directory=$(PEGASUS_ROOT)/doc/DevManual -f Makefile
+###############################################################################
+##  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
+
+###############################################################################
+
+
+
+###############################################################################
+##  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)"
+###############################################################################
 
-clean:
-       $(MAKE) -f Makefile clean
-
-repositoryServer:
-       $(CIMSERVER_STOP_SERVICE)
-       $(SLEEP)
-       $(RMDIRHIER) $(REPOSITORY_ROOT)
-       $(CIMSERVER_START_SERVICE)
-       $(SLEEP)
-       $(MAKE) -f Makefile repositoryServer
-       $(MAKE) -f Makefile testrepositoryServer
-
-prestarttests:
-       $(CIMSERVER_STOP_SERVICE)
-       $(SLEEP)
-       $(MAKE) -f Makefile repository
-       $(MAKE) -f Makefile testrepository
-       $(MAKE) -f Makefile tests
+###############################################################################
+##  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)"
+
+##############################################################################
+
+
+##############################################################################
+##
+## 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
 
-poststarttests:
-       $(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest -f Makefile clean
-       $(CIMSERVER_START_SERVICE)
-       $(SLEEP)
-       $(MAKE) -f Makefile poststarttests
+####
+#### 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"
 
-tests: $(TESTS)
-ifeq ($(PEGASUS_PLATFORM),WIN32_IX86_MSVC)
-       $(CIMSERVER_STOP_SERVICE)
-       $(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile uninstall
+###########################
+##
+## 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
-       @ $(ECHO) Finished Tests
+
+
+###########################
+##
+## 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)
+
+###############################################################################
+##
+## Trace Configuration - Old rules being deprecated
+##
 ## Options:
 ##      XMLTraceOn: Enables XML request and response tracing.
 ##      ProviderLoadTraceOn: Enables Provider load tracing.
@@ -148,131 +1230,293 @@ XML+ProviderLoadTraceOn:
        cimconfig -g traceComponents
        cimconfig -g traceLevel
 
-AllTraceOn:
-       cimconfig -s traceComponents=ALL
-       cimconfig -s traceLevel=3 -c
-       cimconfig -g traceComponents
-       cimconfig -g traceLevel
+AllTraceOn: traceon
 
-AllTraceOff:
-       cimconfig -s traceComponents=
-       cimconfig -g traceComponents
-       cimconfig -g traceLevel
+AllTraceOff: traceoff
 
-list:
-       cimconfig -g traceComponents
-       cimconfig -g traceLevel
-       cimconfig -g traceFilePath
+list: tracesettings
 
-# DO NOT DELETE
+#########################################################################
+# 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:
-       $(MAKE) -f TestMakefile -i DisableSecurity
-       $(MAKE) -f TestMakefile TestCimmof
-       $(MAKE) -f TestMakefile TestNoSecurity
-       $(MAKE) -f TestMakefile EnableAuthentication
-       $(MAKE) -f TestMakefile TestLocalSecurity
-       $(MAKE) -f TestMakefile TestRemoteSecurity
-       $(MAKE) -f TestMakefile EnableAuthorization
-       $(MAKE) -f TestMakefile TestAuthorization
+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 tests
-       $(MAKE) -f TestMakefile RunTestClientLocal
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile servertests
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile RunTestClientLocal
 
 TestLocalSecurity:
-       $(MAKE) -f TestMakefile RunTestClientLocal
+       $(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 guest -password guest $(system):5988
-       $(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest/static -f Makefile poststarttests HOSTNAME=-h$(system) USER=-uguest PASSWORD=-wguest SECURITY_ENABLED=true
+       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:
-       DeleteNamespace -a -user guest -password guest
-       $(MAKE) -f TestMakefile RunTestClientLocal
-       TestClient -user guest -password guest $(system):5988
-       $(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest/static -f Makefile poststarttests HOSTNAME=-h$(system) USER=-uguest PASSWORD=-wguest SECURITY_ENABLED=true
+       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) -f TestMakefile DisableSecurity
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile DisableSecurity
        $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repository
        $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepository
-       $(MAKE) -f TestMakefile startcimWithoutSSL
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
        $(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest/cimv2/Subscription -f Makefile poststarttests
-       $(MAKE) -f TestMakefile stopcim
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile cimstop
 
 TestCimmof:
-       $(MAKE) -f Testcimmof poststarttests
-
+        # 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) -f TestMakefile -i stopcim
+       $(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) -f TestMakefile -i stopcim
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
        cimconfig -s enableAuthentication=true -p
-       $(MAKE) -f TestMakefile startcimWithoutSSL
-       $(MAKE) -f TestMakefile ConfigureUsers
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile ConfigureUsers
 
 EnableAuthorization:
-       $(MAKE) -f TestMakefile -i stopcim
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
        cimconfig -s enableNamespaceAuthorization=true -p
-       $(MAKE) -f TestMakefile startcimWithoutSSL
-       $(MAKE) -f TestMakefile -i ConfigureAuthorizations
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
+       $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i ConfigureAuthorizations
 
 EnableSSL:
-       $(MAKE) -f TestMakefile -i stopcim
-       $(MAKE) -f TestMakefile startcimWithSSL
+       $(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 -a -u guest -w guest
+       -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 guest -n test/cimv2 -R -W
-       cimauth -a -u guest -n root/cimv2 -R -W
-       cimauth -a -u guest -n root/PG_Internal -R -W
-       cimauth -a -u guest -n root/PG_InterOp -R -W
-       cimauth -a -u guest -n root/benchmark -R -W
-       cimauth -a -u guest -n root/sampleprovider -R -W
-       cimauth -a -u guest -n test/static -R -W
-       cimauth -a -u guest -n root/SampleProvider -R -W
-       cimauth -a -u guest -n root -R -W
-       cimauth -a -u guest -n test1 -R -W
-       cimauth -a -u guest -n test2 -R -W
-       cimauth -a -u guest -n test3 -R -W
-       cimauth -a -u guest -n test4 -R -W
-       cimauth -a -u guest -n test5 -R -W
-       cimauth -a -u guest -n test6 -R -W
-       cimauth -a -u guest -n test1/test2 -R -W
-       cimauth -a -u guest -n test1/test2/test3 -R -W
-       cimauth -a -u guest -n test1/test2/test3/test4 -R -W
-       cimauth -a -u guest -n test1/test2/test3/test4/test5 -R -W
-       cimauth -a -u guest -n test1/test2/test3/test4/test5/test6 -R -W
-
-startcimWithoutSSL:
-       $(CIMSERVER_START_SERVICE)
-       $(SLEEP)
-
-startcimWithSSL:
-       $(CIMSERVER_START_SERVICE) enableHttpConnection=false enableHttpsConnection=true
-       $(SLEEP)
-
-stopcim:
-       $(CIMSERVER_STOP_SERVICE)
-       $(SLEEP)
-
-rebuild:
-       $(MAKE) -f TestMakefile -i stopcim
-       rm -f rebuild.txt
-       $(MAKE) -f TestMakefile pegasus >> rebuild.txt  2>&1
-
-pegasus:
-       $(MAKE) -f Makefile rebuild
+       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 root/PG_InterOp -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)"