1 #//%2006////////////////////////////////////////////////////////////////////////
3 #// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
4 #// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
5 #// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
6 #// IBM Corp.; EMC Corporation, The Open Group.
7 #// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 #// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
9 #// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 #// EMC Corporation; VERITAS Software Corporation; The Open Group.
11 #// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 #// EMC Corporation; Symantec Corporation; The Open Group.
14 #// Permission is hereby granted, free of charge, to any person obtaining a copy
15 #// of this software and associated documentation files (the "Software"), to
16 #// deal in the Software without restriction, including without limitation the
17 #// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
18 #// sell copies of the Software, and to permit persons to whom the Software is
19 #// furnished to do so, subject to the following conditions:
21 #// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 #// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
23 #// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 #// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25 #// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 #// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
27 #// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 #// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 #//==============================================================================
31 ###############################################################################
33 ## Test Makefile for Pegasus CIMOM
35 ## see the usage rule for documentation of rules etc.
38 ###############################################################################
41 @ $(ECHO) "Specify desired makefile option (i.e., unittests, usage )"
43 include $(PEGASUS_ROOT)/mak/config.mak
44 include $(PEGASUS_ROOT)/mak/test.mak
45 include $(PEGASUS_ROOT)/mak/commands.mak
55 $(USAGE)"TestMakefile Primary Targets:"
57 $(USAGE)"The following are all standalone tests. They stop and start the server,"
58 $(USAGE)"and build repositories as needed."
60 $(USAGE)"alltests - Execute unittests and servertests"
61 $(USAGE)"unittests - Execute the unit functional tests - no repository"
62 $(USAGE)" or active server is required"
63 $(USAGE)"servertests - Execute a basic server test suites (No security, No SSL)"
64 $(USAGE)"standardtests - Execute an extended server test suites "
65 $(USAGE)" using multiple options."
66 $(USAGE)"serverquicktests - Executes a brief server test"
67 $(USAGE)"perftests - Executes a brief server performance test"
69 $(USAGE)"usage2 - usage on secondary test targets"
70 $(USAGE)"usagetrace - usage on trace targets"
71 $(USAGE)"stresstests - Execute the default stress test suite"
76 $(USAGE)"TestMakefile Secondary Targets:"
78 $(USAGE)"The following are run as part of the Primary target test suites and may"
79 $(USAGE)"also be invoked as standalone tests."
81 $(USAGE)"TestXMLRepository - Executes poststarttests on XML repository"
82 $(USAGE)" built with cimmofl."
83 $(USAGE)"TestXMLRepositoryServer - Executes poststarttests on XML repository"
84 $(USAGE)" built with cimmof."
85 $(USAGE)"TestXMLCmpRepository - Executes poststarttests on XML compressed"
86 $(USAGE)" repository built with cimmofl."
87 $(USAGE)"TestBinRepository - Executes poststarttests on binary repository "
88 $(USAGE)" built with cimmofl."
89 $(USAGE)"TestBinRepositoryServer - Executes poststarttests on binary repository"
90 $(USAGE)" built with cimmof."
91 $(USAGE)"TestBinCmpRepository - Executes poststarttests on binary compressed"
92 $(USAGE)" repository built with cimmofl."
94 $(USAGE)"The following require the repository to be pre-built."
96 $(USAGE)"run_SSL_TS1 - Executes the SSL tests"
97 $(USAGE)"run_OOP_TS1 - Executes the Out Of Process Provider tests"
98 $(USAGE)"run_G11N_TS1 - Executes the Globalization tests"
100 $(USAGE)"The following require the repository to be pre-built and the server to be started."
102 $(USAGE)"serversuite - the collection of test run by the servertests rule"
103 $(USAGE)"serverquicksuite - The collection of test run by the serverquicktests rule"
104 $(USAGE)"run_STRESS_TS1 - Executes the stresstests"
108 ##########################################################
110 # rules that are defined in Makefile
112 ##########################################################
115 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile build
118 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile world
121 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile new
124 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile clean
127 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile depend
130 ############################################################
134 ############################################################
137 ## Although the macros CIMSERVER_STOP_SERVICE and CIMSERVER_START_SERVICE
138 ## are available and could be invoked directly, their direct usage is
139 ## discouraged in favor of invoking the cimstop and the cimstart rules
140 ## as this allows one place where additional checks, delays etc may be
141 ## added in the future to control or further test the servers performance
142 ## in executing these commands.
145 #######################
150 $(MAKE) --directory=$(PEGASUS_ROOT)/doc/ProviderSpec -f Makefile
151 $(MAKE) --directory=$(PEGASUS_ROOT)/doc/DevManual -f Makefile
154 #######################
158 repositoryServer: FORCE
159 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
161 $(RMDIRHIER) $(REPOSITORY_ROOT)
162 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart
164 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repositoryServer
165 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepositoryServer
167 ######################
169 # prestarttests is being deprecated since poststarttest is being deprecated
170 # in favor of name more related to its intended functionality.
172 prestarttests: prestarttests_msg shortsleep unittests
174 prestarttests_msg: FORCE
175 @$(ECHO) "=============================================================================="
176 @$(ECHO) "TestMakefile: The \"prestarttests\" rule is being deprecated."
177 @$(ECHO) " Use \"make testusage\" for a description of the usage model."
178 @$(ECHO) " The equivalent new rule is \"unittests\"."
179 @$(ECHO) " Invoking the \"unittests\" rule now."
180 @$(ECHO) "=============================================================================="
184 # poststarttests is being deprecated since it multiply defines a
185 # recursive make rule leading to ambuguity and confusion.
187 poststarttests: poststarttests_msg shortsleep servertests
189 poststarttests_msg: FORCE
190 @$(ECHO) "==============================================================================="
191 @$(ECHO) "TestMakefile: The \"posstarttests\" rule is being deprecated.."
192 @$(ECHO) " Use \"make testusage\" for a description of the usage model."
193 @$(ECHO) " The equivalent new rule is \"servertests\"."
194 @$(ECHO) " Invoking the \"servertests\" rule now."
195 @$(ECHO) "==============================================================================="
197 #####################
199 # tests is being deprecated since it multiply defines a
200 # recursive make rule leading to ambuguity and confusion.
202 tests: tests_msg shortsleep alltests
205 @$(ECHO) "==================================================================="
206 @$(ECHO) "TestMakefile: The \"tests\" rule is being deprecated."
207 @$(ECHO) " Use \"make testusage\" for a description of the usage model."
208 @$(ECHO) " The equivalent new rule is \"alltests\"."
209 @$(ECHO) " Invoking the \"alltests\" rule now."
210 @$(ECHO) "==================================================================="
221 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile tests
222 @ $(ECHO) "+++++ TestMakefile unittests complete"
224 #####################
229 servertestsclean: FORCE
230 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
231 $(MAKE) --directory=$(PEGASUS_ROOT)/src/Pegasus/CQL/tests/Queries -f Makefile clean
232 $(MAKE) --directory=$(PEGASUS_ROOT)/src/Pegasus/Query/QueryExpression/tests/Queries -f Makefile clean
233 $(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest -f Makefile clean
235 servertestssetup: FORCE
236 ifdef PEGASUS_HAS_SSL
238 # The association between user names and certificates is stored in the
239 # repository. If the repository is recreated, we also need to re-initialize
240 # the trust store directories. Otherwise, the truststore content will be
241 # out-of-sync with the mapping stored in the repository.
243 $(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile removeSSLTrustDirectories
244 $(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile createSSLTrustDirectories
246 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repository
247 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepository
248 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile cimstart
250 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile ConfigureUsers
251 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile Create_SSL_Certificate
254 servertests: servertestsclean servertestssetup serversuite
255 @ $(ECHO) "+++++ TestMakefile servertests suites complete"
258 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile poststarttests
259 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestBinRepository
260 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_OOP_TS1
261 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_IndInit_TS1
262 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_OOPProvFail_TS1
263 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_OOPProvFail_TS2
264 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_INDSSL_TS1
265 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_SSL_TS1
266 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_G11N_TS1
268 #####################
273 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile run_STRESS_TS1
279 serverquicktests: servertestsclean servertestssetup serverquicksuite
280 @ $(ECHO) "+++++ TestMakefile serverquicktests complete"
282 serverquicksuite: FORCE
283 $(PEGASUS_HOME)/bin/Client
284 $(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest -f Makefile poststarttests
285 $(PEGASUS_HOME)/bin/TestClient
289 # perftests - simple performance test until we have better
291 # - Turns statistics on (uses TestInterop until we have better)
292 # - runs and times serverquicktests suite
293 # - runs cimperf to displat the statistics
294 # - turns statistics off
296 perftests: servertestsclean servertestssetup perfsuite
299 $(PEGASUS_HOME)/bin/TestInterop on
300 $(TIME_CMD) $(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest -f Makefile poststarttests
302 $(TIME_CMD) $(PEGASUS_HOME)/bin/TestClient
304 $(TIME_CMD) $(PEGASUS_HOME)/bin/benchmarkTest
307 $(TIME_CMD) $(PEGASUS_HOME)/bin/cimperf
309 $(PEGASUS_HOME)/bin/TestInterop off
316 alltests: unittests servertests
317 ifeq ($(PEGASUS_PLATFORM),WIN32_IX86_MSVC)
318 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
319 $(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile uninstall
321 @ $(ECHO) "+++++ TestMakefile alltests Complete"
323 ###############################################################################
324 ## Test Suite Definitions
325 ###############################################################################
327 ###############################################################################
328 ## OOP Test Suite 1: "Out-of-Process"(OOP) Provider Tests
330 ## Configuration Options: forceProviderProcesses=true
332 ## If PEGASUS_DEFAULT_ENABLE_OOP is set, then tests are run with OOP disabled
333 ## since tests have already been run with OOP enabled.
336 ###############################################################################
337 ifeq ($(PEGASUS_DEFAULT_ENABLE_OOP),true)
338 OOP_TS1_CONFIG_OPTIONS = forceProviderProcesses=false
340 OOP_TS1_CONFIG_OPTIONS = forceProviderProcesses=true
343 OOP_TS1_TEST_CMDS = \
344 $(MAKE)@@--directory=$(PEGASUS_ROOT)@@Makefile@@-s@@poststarttests
347 $(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
348 CIMSERVER_CONFIG_OPTIONS="$(OOP_TS1_CONFIG_OPTIONS)" \
349 TESTSUITE_CMDS="$(OOP_TS1_TEST_CMDS)"
351 ###############################################################################
353 ###############################################################################
354 ## IndInit Test Suite 1: IndicationService Initialization Tests
356 ## Configuration Options: (none)
358 ###############################################################################
359 IndInit_TS1_CONFIG_OPTIONS =
360 IndInit_TS1a_TEST_CMDS = \
361 $(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Pegasus/IndicationService/tests/ProcessIndication@@IndInit_TS1a
362 IndInit_TS1b_TEST_CMDS = \
363 $(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Pegasus/IndicationService/tests/ProcessIndication@@IndInit_TS1b
366 $(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
367 CIMSERVER_CONFIG_OPTIONS="$(IndInit_TS1_CONFIG_OPTIONS)" \
368 TESTSUITE_CMDS="$(IndInit_TS1a_TEST_CMDS)"
369 $(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
370 CIMSERVER_CONFIG_OPTIONS="$(IndInit_TS1_CONFIG_OPTIONS)" \
371 TESTSUITE_CMDS="$(IndInit_TS1b_TEST_CMDS)"
373 ###############################################################################
374 ## OOPProvFail Test Suite 1: OOP Provider Module Failure Tests
376 ## Configuration Options: forceProviderProcesses=true
377 ## enableAuthentication=true, enableAuthentication=false
379 ## NOTE: Regardless of the setting of PEGASUS_DEFAULT_ENABLE_OOP, this test
380 ## suite is always run with OOP enabled. This test suite causes a provider to
381 ## exit. Running this test suite with OOP disabled would cause the cimserver
382 ## to exit and the test suite to fail.
384 ## NOTE: The test is run once with authentication enabled, and once without
385 ## authentication enabled.
387 ###############################################################################
388 OOPProvFail_TS1a_CONFIG_OPTIONS = forceProviderProcesses=true enableAuthentication=true
389 OOPProvFail_TS1b_CONFIG_OPTIONS = forceProviderProcesses=true enableAuthentication=false
390 OOPProvFail_TS1_TEST_CMDS = \
391 $(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/OOPModuleFailureProvider/testclient@@OOPProvFail_TS1
393 ifndef PEGASUS_DISABLE_PRIVILEGED_TESTS
395 $(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
396 CIMSERVER_CONFIG_OPTIONS="$(OOPProvFail_TS1a_CONFIG_OPTIONS)" \
397 TESTSUITE_CMDS="$(OOPProvFail_TS1_TEST_CMDS)"
398 $(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
399 CIMSERVER_CONFIG_OPTIONS="$(OOPProvFail_TS1b_CONFIG_OPTIONS)" \
400 TESTSUITE_CMDS="$(OOPProvFail_TS1_TEST_CMDS)"
402 run_OOPProvFail_TS1: FORCE
403 @ $(ECHO) "+++++ PEGASUS_DISABLE_PRIVILEGED_TESTS defined: Skipping run_OOPProvFail_TS1"
406 ###############################################################################
407 ## OOPProvFail Test Suite 2: OOP Provider Module Failure on IndicationService
408 ## Initialization Tests
410 ## Configuration Options: forceProviderProcesses=true
411 ## enableAuthentication=true
413 ## NOTE: Regardless of the setting of PEGASUS_DEFAULT_ENABLE_OOP, this test
414 ## suite is always run with OOP enabled. This test suite causes a provider to
415 ## exit. Running this test suite with OOP disabled would cause the cimserver
416 ## to exit and the test suite to fail.
418 ###############################################################################
419 OOPProvFail_TS2_CONFIG_OPTIONS = forceProviderProcesses=true enableAuthentication=true
420 OOPProvFail_TS2a_TEST_CMDS = \
421 $(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/OOPModuleFailureProvider/testclient@@OOPProvFail_TS2a
422 OOPProvFail_TS2b_TEST_CMDS = \
423 $(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/OOPModuleFailureProvider/testclient@@OOPProvFail_TS2b
425 ifndef PEGASUS_DISABLE_PRIVILEGED_TESTS
427 $(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
428 CIMSERVER_CONFIG_OPTIONS="$(OOPProvFail_TS2_CONFIG_OPTIONS)" \
429 TESTSUITE_CMDS="$(OOPProvFail_TS2a_TEST_CMDS)"
430 $(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
431 CIMSERVER_CONFIG_OPTIONS="$(OOPProvFail_TS2_CONFIG_OPTIONS)" \
432 TESTSUITE_CMDS="$(OOPProvFail_TS2b_TEST_CMDS)"
434 run_OOPProvFail_TS2: FORCE
435 @ $(ECHO) "+++++ PEGASUS_DISABLE_PRIVILEGED_TESTS defined: Skipping run_OOPProvFail_TS2"
438 ###############################################################################
439 ## Indication SSL Test Suite 1: Indication Testing over HTTPS
441 ## Configuration Options: (none)
443 ###############################################################################
444 INDSSL_TS1a_CONFIG_OPTIONS = enableHttpsConnection=true enableAuthentication=false
445 INDSSL_TS1a_TEST_CMDS = \
446 $(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/IndicationStressTestProvider/testclient@@-f@@Makefile@@run_TS1_AuthenticationDisabled
448 INDSSL_TS1b_CONFIG_OPTIONS = enableHttpsConnection=true enableAuthentication=true sslClientVerificationMode=required
449 INDSSL_TS1b_TEST_CMDS = \
450 $(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Providers/TestProviders/IndicationStressTestProvider/testclient@@-f@@Makefile@@run_TS1_AuthenticationEnabled
453 ifdef PEGASUS_HAS_SSL
454 ifndef PEGASUS_DISABLE_PRIVILEGED_TESTS
455 run_INDSSL_TS1: EnableUsers Create_SSL_Certificate_ignore
456 $(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
457 CIMSERVER_CONFIG_OPTIONS="$(INDSSL_TS1a_CONFIG_OPTIONS)" \
458 TESTSUITE_CMDS="$(INDSSL_TS1a_TEST_CMDS)"
459 $(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
460 CIMSERVER_CONFIG_OPTIONS="$(INDSSL_TS1b_CONFIG_OPTIONS)" \
461 TESTSUITE_CMDS="$(INDSSL_TS1b_TEST_CMDS)"
463 run_INDSSL_TS1: FORCE
464 @ $(ECHO) "+++++ PEGASUS_DISABLE_PRIVILEGED_TESTS defined: Skipping run_INDSSL_TS1"
467 run_INDSSL_TS1: FORCE
468 @ $(ECHO) "+++++ PEGASUS_HAS_SSL not defined: Skipping run_INDSSL_TS1"
472 ###############################################################################
474 ###############################################################################
475 ## SSL Test Suite 1: SSL Tests
477 ## Configuration Options: enableAuthentication=true
478 ## enableHttpsConnection=true
479 ## sslClientVerificationMode=optional
480 ## sslTrustStoreUserName=$(CURRENT_USER)
482 ###############################################################################
483 SSL_TS1_CONFIG_OPTIONS = enableHttpsConnection=true enableAuthentication=true \
484 sslClientVerificationMode=optional sslTrustStoreUserName=$(CURRENT_USER)
485 SSL_TS1_TEST_CMDS = \
486 $(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Clients/ssltrustmgr/tests@@SSLCertificateTest1
488 ifdef PEGASUS_HAS_SSL
489 ifndef PEGASUS_DISABLE_PRIVILEGED_TESTS
491 $(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
492 CIMSERVER_CONFIG_OPTIONS="$(SSL_TS1_CONFIG_OPTIONS)" \
493 TESTSUITE_CMDS="$(SSL_TS1_TEST_CMDS)"
496 @ $(ECHO) "+++++ PEGASUS_DISABLE_PRIVILEGED_TESTS defined: Skipping run_SSL_TS1"
500 @ $(ECHO) "+++++ PEGASUS_HAS_SSL not defined: Skipping run_SSL_TS1 poststarttest"
504 ############################################################################
506 # Create_SSL_Certificate
508 # create a certificate that can be used for certification testing.
509 # It is currently used by the following tests:
512 Create_SSL_Certificate_ignore: FORCE
513 -$(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile Create_SSL_Certificate
515 Create_SSL_Certificate: FORCE
516 ifdef PEGASUS_HAS_SSL
517 ifdef PEGASUS_TEST_USER_DEFINED
518 $(ECHO) "Creating SSL certificate for test"
519 ssltrustmgr -a -c $(PEGASUS_TEST_USER_ID) -f $(PEGASUS_HOME)/server.pem
522 $(ECHO) "PEGASUS_HAS_SSL not defined - Not Creating SSL certificate for test"
525 ###############################################################################
526 ## G11N Test Suite 1: Globalization Tests
528 ## Configuration Options: forceProviderProcesses=false
530 ###############################################################################
531 G11N_TS1_CONFIG_OPTIONS = forceProviderProcesses=false
532 G11N_TS1_TEST_CMDS = \
533 $(MAKE) --directory $(PEGASUS_ROOT)/src/Clients/g11ntest \
537 $(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
538 CIMSERVER_CONFIG_OPTIONS="$(G11N_TS1_CONFIG_OPTIONS)" \
539 TESTSUITE_CMDS="$(G11N_TS1_TEST_CMDS)"
541 ###############################################################################
542 ## Stress Test Suite 1: Default Stress Tests
544 ## Configuration Options: (none)
546 ###############################################################################
547 STRESS_TS1_CONFIG_OPTIONS =
548 STRESS_TS1_TEST_CMDS = \
549 TestStressTestController
552 $(MAKE) -f $(PEGASUS_ROOT)/TestMakefile runTestSuite \
553 CIMSERVER_CONFIG_OPTIONS="$(STRESS_TS1_CONFIG_OPTIONS)" \
554 TESTSUITE_CMDS="$(STRESS_TS1_TEST_CMDS)"
555 ###############################################################################
558 ###############################################################################
562 ##############################################################################
564 ## TestXMLRepository rule is used to run the poststarttests suite on
565 ## the XML Repository built using cimmofl
567 ## TestXMLRepositoryServer rule is used to run the poststarttests suite on
568 ## the XML Repository built using cimmof
570 ## TestXMLCmpRepository rule is used to run the poststarttest suite on
571 ## the XML Compressed Repository built using cimmofl
574 ############################
579 TestXMLRepository: TestXMLClean TestXMLBuildRepo TestXMLRepo
580 @ $(ECHO) TestXMLRepository +++++ passed all test
582 ############################
584 ## TestXMLRepositoryServer
586 TestXMLRepositoryServer: TestXMLClean TestXMLBuildRepoServ TestXMLRepo
587 @ $(ECHO) TestXMLRepositoryServer +++++ passed all test
589 ############################
591 ## TestXMLCmpRepository - run poststarttest on Compressed BIN Repository
593 ifdef PEGASUS_ENABLE_COMPRESSED_REPOSITORY
594 TestXMLCmpRepository: FORCE
595 @ $(ECHO) TestXMLCmpRepository +++++ Repository compressed by default - nothing more to test.
596 @ $(ECHO) TestXMLCmpRepository +++++ passed all test
599 ifdef PEGASUS_ENABLE_COMPRESSED_REPOSITORY_TEST
601 TestXMLCmpRepository: TestXMLClean TestCmpBuild TestXMLBuildRepo TestXMLRepo TestRegBuild
602 @ $(ECHO) TestXMLCmpRepository +++++ passed all test
604 TestXMLCmpRepository: FORCE
605 @ $(ECHO) TestXMLCmpRepository +++++ Not tested
606 @ $(ECHO) TestXMLCmpRepository +++++ refer to readme.compressed_repository
607 @ $(ECHO) TestXMLCmpRepository +++++ to enable: set PEGASUS_ENABLE_COMPRESSED_REPOSITORY_TEST=true
611 ###########################
616 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
617 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repositoryclean REPOSITORY_NAME=repository_xml
620 ###########################
622 ## TestXMLStartServer
624 TestXMLStartServer: FORCE
625 $(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile install_run
626 - $(MKDIRHIER) $(PEGASUS_HOME)/repository_xml
627 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart CIMSERVER_CONFIG_OPTIONS="repositoryDir=$(PEGASUS_HOME)/repository_xml"
631 #### The following caused the cimserver to fail on startup
633 #### $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart CIMSERVER_CONFIG_OPTIONS="enableBinRepository=false repositoryDir=$(PEGASUS_HOME)/repository_xml"
635 ###########################
639 TestXMLBuildRepo: FORCE
640 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repository REPOSITORY_NAME=repository_xml REPOSITORY_MODE=XML
641 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepository REPOSITORY_NAME=repository_xml REPOSITORY_MODE=XML
644 ###########################
646 ## TestXMLBuildRepoServ
648 TestXMLBuildRepoServ: TestXMLStartServer
649 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repositoryServer REPOSITORY_NAME=repository_xml REPOSITORY_MODE=XML
650 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepositoryServer REPOSITORY_NAME=repository_xml REPOSITORY_MODE=XML
651 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
654 ###########################
658 TestXMLRepo: servertestsclean
659 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestXMLStartServer
660 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile poststarttests REPOSITORY_NAME=repository_xml REPOSITORY_MODE=XML
661 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
668 ##############################################################################
670 ## TestBinRepository rule is used to run the poststarttests suite on
671 ## the Binary Repository built using cimmofl
673 ## TestBinRepositoryServer rule is used to run the poststarttests suite on
674 ## the Binary Repository built using cimmof
676 ## TestBinCmpRepository rule is used to run the poststarttest suite on
677 ## the Binry Compressed Repository built using cimmofl
680 ############################
684 ### bug 3011 disabled Binary Repository testing on LINUX_IA64 to allow
685 ### the nightly tests to run
687 TestBinRepository: TestBinClean TestBinBuildRepo TestBinRepo
688 @ $(ECHO) TestBinRepository +++++ passed all test
691 ############################
693 ## TestBinRepositoryServer
695 TestBinRepositoryServer: TestBinClean TestBinBuildRepoServ TestBinRepo
696 @ $(ECHO) TestBinRepositoryServer +++++ passed all test
698 ############################
700 ## TestBinCmpRepository - run poststarttest on Compressed BIN Repository
702 ifdef PEGASUS_ENABLE_COMPRESSED_REPOSITORY
703 TestBinCmpRepository: FORCE
704 @ $(ECHO) TestBinCmpRepository +++++ Repository compressed by default - nothing more to test.
705 @ $(ECHO) TestBinCmpRepository +++++ passed all test
708 ifdef PEGASUS_ENABLE_COMPRESSED_REPOSITORY_TEST
710 TestBinCmpRepository: TestBinClean TestCmpBuild TestBinBuildRepo TestBinRepo TestRegBuild
711 @ $(ECHO) TestBinCmpRepository +++++ passed all test
713 TestBinCmpRepository: FORCE
714 @ $(ECHO) TestBinCmpRepository +++++ Not tested
715 @ $(ECHO) TestBinCmpRepository +++++ refer to readme.compressed_repository
716 @ $(ECHO) TestBinCmpRepository +++++ to enable: set PEGASUS_ENABLE_COMPRESSED_REPOSITORY_TEST=true
721 ###########################
726 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
727 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repositoryclean REPOSITORY_NAME=repository_bin
730 ###########################
732 ## TestBinStartServer
734 TestBinStartServer: FORCE
735 $(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile install_run
736 - $(MKDIRHIER) $(PEGASUS_HOME)/repository_bin
737 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart CIMSERVER_CONFIG_OPTIONS="enableBinaryRepository=true repositoryDir=$(PEGASUS_HOME)/repository_bin"
740 ###########################
744 TestBinBuildRepo: FORCE
745 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repository REPOSITORY_NAME=repository_bin REPOSITORY_MODE=BIN
746 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepository REPOSITORY_NAME=repository_bin REPOSITORY_MODE=BIN
749 ###########################
751 ## TestBinBuildRepoServ
753 TestBinBuildRepoServ: TestBinStartServer
754 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repositoryServer REPOSITORY_NAME=repository_bin REPOSITORY_MODE=BIN
755 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepositoryServer REPOSITORY_NAME=repository_bin REPOSITORY_MODE=BIN
756 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
759 ###########################
763 TestBinRepo: servertestsclean
764 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestBinStartServer
765 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile poststarttests REPOSITORY_NAME=repository_bin REPOSITORY_MODE=BIN
766 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
771 ############################
773 ## TestCmpBuild - used to compile the repository for compression
776 @ $(MAKE) "-SC" $(ROOT)/src/Pegasus/Repository clean
777 @ $(MAKE) "-SC" $(ROOT)/src/Pegasus/Repository depend PEGASUS_ENABLE_COMPRESSED_REPOSITORY=1
778 @ $(MAKE) "-SC" $(ROOT)/src/Pegasus/Repository PEGASUS_ENABLE_COMPRESSED_REPOSITORY=1
781 ############################
783 ## TestRegBuild - used to compile the repository for no compression
786 @ $(MAKE) "-SC" $(ROOT)/src/Pegasus/Repository clean
787 @ $(MAKE) "-SC" $(ROOT)/src/Pegasus/Repository depend
788 @ $(MAKE) "-SC" $(ROOT)/src/Pegasus/Repository
791 ###############################################################################
793 ## Trace Configuration
795 ## Options: see usagetrace rule
797 ###############################################################################
801 $(USAGE)"TestMakefile Trace Commands: "
802 $(USAGE)" The cimserver must be running when using W=c which is the default for W"
804 $(USAGE)" traceon W=[current/planned(c,p): Enables all tracing."
805 $(USAGE)" traceoff W=[current/planned(c,p): Disables all tracing."
806 $(USAGE)" tracesettings: Displays all trace settings."
807 $(USAGE)" tracecomp: Displays a trace componenets list."
808 $(USAGE)" traceon-CL C=[comp] L=[level(1,2,3,4)] W=[current/planned(c,p): "
809 $(USAGE)" Enables tracing on component C at trace level L."
811 $(USAGE)" W defaults to c in the above commands where W can be specified"
813 $(USAGE)" Usage examples:"
814 $(USAGE)" traceon turns on trace in current server config"
815 $(USAGE)" traceon W=c turns on trace in current server config"
816 $(USAGE)" traceon W=p turns on trace in planned server config"
817 $(USAGE)" traceoff turns on trace in current server config"
818 $(USAGE)" traceoff W=c turns on trace in current server config"
819 $(USAGE)" traceoff W=p turns on trace in planned server config"
821 $(USAGE)" traceon-CL C=DiscardedData L=3 W=c"
822 $(USAGE)" Turns on trace for DiscardedData at level 3 in current server config"
823 $(USAGE)" traceon-CL C=DiscardedData L=3 W=p"
824 $(USAGE)" Turns on trace for DiscardedData at level 3 in planned server config"
829 @ cimconfig -s traceComponents=ALL -$W
830 @ cimconfig -s traceLevel=3 -$W
831 $(MAKE) -f $(ROOT)/TestMakefile tracesettings
835 @ cimconfig -s traceComponents= -$W
836 $(MAKE) -f $(ROOT)/TestMakefile tracesettings
841 cimconfig -g traceComponents -c -p
843 cimconfig -g traceLevel -c -p
845 cimconfig -g traceFilePath -c -p
849 @ cimconfig -s traceComponents=$C -$W
850 @ cimconfig -s traceLevel=$L -$W
851 $(MAKE) -f $(ROOT)/TestMakefile tracesettings
855 $(USAGE)"Trace component list:"
864 $(USAGE)"ProvManager"
867 $(USAGE)"OsAbstraction"
869 $(USAGE)"IndDelivery"
871 $(USAGE)"Authentication"
872 $(USAGE)"Authorization"
873 $(USAGE)"UserManager"
874 $(USAGE)"SubscriptionService"
875 $(USAGE)"Registration"
878 $(USAGE)"IndicationService"
879 $(USAGE)"IndicationServiceInternal"
880 $(USAGE)"ConfigurationManager"
881 $(USAGE)"MessageQueueService"
882 $(USAGE)"ProviderManager"
883 $(USAGE)"ObjectResolution"
887 $(USAGE)"MetaDispatcher"
889 $(USAGE)"IndicationHandlerService"
890 $(USAGE)"CIMExportRequestDispatcher"
893 $(USAGE)"ControlProvider"
894 $(USAGE)"AsyncOpNode"
895 $(USAGE)"CIMOMHandle"
896 $(USAGE)"BinaryMessageHandler"
898 $(USAGE)"ExportClient"
900 $(USAGE)"DiscardedData"
901 $(USAGE)"ProviderAgent"
904 ###############################################################################
906 ## Trace Configuration - Old rules being deprecated
909 ## XMLTraceOn: Enables XML request and response tracing.
910 ## ProviderLoadTraceOn: Enables Provider load tracing.
911 ## XML+ProviderLoadTraceOn: Enables both XML request/response and Provider
913 ## AllTraceOn: Enables all tracing.
914 ## AllTraceOff: Disables all tracing.
915 ## list: Lists trace settings.
917 ###############################################################################
920 cimconfig -s traceComponents=XmlIO -c
921 cimconfig -s traceLevel=3 -c
922 cimconfig -g traceComponents
923 cimconfig -g traceLevel
926 cimconfig -s traceComponents=ProvManager,OsAbstraction
927 cimconfig -s traceLevel=3 -c
928 cimconfig -g traceComponents
929 cimconfig -g traceLevel
931 XML+ProviderLoadTraceOn:
932 cimconfig -s traceComponents=XmlIO,ProvManager,OsAbstraction
933 cimconfig -s traceLevel=3 -c
934 cimconfig -g traceComponents
935 cimconfig -g traceLevel
939 AllTraceOff: traceoff
943 #########################################################################
946 # More testing options...
948 # The standard test seem to contain additional test that may not be able
949 # to run on all platforms so they have been grouped here for now rather than
950 # being included in the serversuite rule.
959 # NOTE: The TestsNoSecurity test is comprised of DisableSecurity and
962 # NOTE: The TestNoSecurity step runs the servertests which builds the
963 # the repository that is then left in place for the remaining tests.
964 # The cimof test must be before the TestNosecurity step as it removes
965 # the repository builds a new one with cimmofl and another one with
966 # cimmof and then compares them.
968 # NOTE: The Authentication test is comprised of EnableAuthentication,
969 # TestLocalSecurity and TestRemoteSecurity.
971 # NOTE: The Authorization test is comprised of EnableAuthorization and
974 # NOTE: The EnableAuthentication and EnableAuthorization steps require
975 # root access. Pegasus doesn't currently have the infrastructure
976 # in place to run the server as root and run the test as non-root.
977 # Rather than run everything, server, tests, providers, clients etc.
978 # as root many testers prefer to run the tests as non-root. Setting
979 # PEGASUS_DISABLE_PRIVILEGED_TESTS in the environment helps to
984 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i DisableSecurity
985 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestCimmof
986 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestNoSecurity
987 ifndef PEGASUS_DISABLE_PRIVILEGED_TESTS
988 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile EnableAuthentication
989 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestLocalSecurity
990 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestRemoteSecurity
991 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile EnableAuthorization
992 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile TestAuthorization
994 @ $(ECHO) "+++++ PEGASUS_DISABLE_PRIVILEGED_TESTS defined: Skipping EnableAuthentication, TestLocalSecurity, and TestRemoteSecurity "
995 @ $(ECHO) "+++++ PEGASUS_DISABLE_PRIVILEGED_TESTS defined: Skipping EnableAuthorization and TestAuthorization "
997 @ $(ECHO) "+++++ TestMakefile standardtests complete"
1000 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile servertests
1001 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
1002 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile RunTestClientLocal
1005 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile RunTestClientLocal
1006 $(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest -f Makefile poststarttests HOSTNAME= PORT= USER= PASSWORD= SECURITY_ENABLED=true
1009 TestClient -user $(PEGASUS_TEST_USER_ID) -password $(PEGASUS_TEST_USER_PASS) $(system):5988
1010 $(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
1013 TestPegClientDeleteNamespace -a -user $(PEGASUS_TEST_USER_ID) -password $(PEGASUS_TEST_USER_PASS)
1014 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile RunTestClientLocal
1015 TestClient -user $(PEGASUS_TEST_USER_ID) -password $(PEGASUS_TEST_USER_PASS) $(system):5988
1016 $(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
1019 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile DisableSecurity
1020 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile repository
1021 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile testrepository
1022 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
1023 $(MAKE) --directory=$(PEGASUS_ROOT)/test/wetest/cimv2/Subscription -f Makefile poststarttests
1024 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile cimstop
1027 $(MAKE) --directory=$(PEGASUS_ROOT) -f Testcimmof poststarttests
1033 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
1034 cimconfig -s enableAuthentication=false -p
1035 cimconfig -s enableNamespaceAuthorization=false -p
1038 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
1039 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
1040 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile ConfigureUsers
1042 EnableAuthentication:
1043 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
1044 cimconfig -s enableAuthentication=true -p
1045 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
1046 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile ConfigureUsers
1048 EnableAuthorization:
1049 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
1050 cimconfig -s enableNamespaceAuthorization=true -p
1051 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithoutSSL
1052 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i ConfigureAuthorizations
1055 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstop
1056 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile startcimWithSSL
1061 # The server must be running prior to invoking this rule
1064 ifndef PEGASUS_PAM_AUTHENTICATION
1066 -cimuser -a -u $(PEGASUS_TEST_USER_ID) -w $(PEGASUS_TEST_USER_PASS)
1070 # ConfigureAuthorizations rule
1072 # The server must be running prior to invoking this rule
1074 ConfigureAuthorizations:
1075 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test/cimv2 -R -W
1076 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/cimv2 -R -W
1077 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/PG_Internal -R -W
1078 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/PG_InterOp -R -W
1079 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/benchmark -R -W
1080 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/sampleprovider -R -W
1081 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test/static -R -W
1082 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/SampleProvider -R -W
1083 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root -R -W
1084 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/test/A -R -W
1085 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n root/test/B -R -W
1086 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test/TestProvider -R -W
1087 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test1 -R -W
1088 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test2 -R -W
1089 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test3 -R -W
1090 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test4 -R -W
1091 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test5 -R -W
1092 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test6 -R -W
1093 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test1/test2 -R -W
1094 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test1/test2/test3 -R -W
1095 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test1/test2/test3/test4 -R -W
1096 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test1/test2/test3/test4/test5 -R -W
1097 cimauth -a -u $(PEGASUS_TEST_USER_ID) -n test1/test2/test3/test4/test5/test6 -R -W
1099 startcimWithoutSSL: FORCE
1100 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart
1103 startcimWithSSL: FORCE
1104 $(MAKE) --directory=$(PEGASUS_ROOT) -f TestMakefile -i cimstart CIMSERVER_CONFIG_OPTIONS="enableHttpConnection=false enableHttpsConnection=true"