Return to README CVS log | Up to [Pegasus] / pegasus / test / TestProviders / MultithreadingTests |
File: [Pegasus] / pegasus / test / TestProviders / MultithreadingTests / README
(download)
Revision: 1.1, Tue Feb 17 15:16:59 2004 UTC (20 years, 4 months ago) by s.soni Branch: MAIN CVS Tags: pegasus25BeforeLicenseUpdate, STABLE, SLPPERFINST-root, SLPPERFINST-branch, RELEASE_2_5_0-RC1, RELEASE_2_5_0, RELEASE_2_4_FC_CANDIDATE_1, RELEASE_2_4_3, RELEASE_2_4_2, RELEASE_2_4_1-BETA3, RELEASE_2_4_1-BETA2, RELEASE_2_4_1-BETA1, RELEASE_2_4_1, RELEASE_2_4_0-RC3, RELEASE_2_4_0-RC2, RELEASE_2_4_0, RELEASE_2_4-root, RELEASE_2_4-branch, RELEASE_2_3_2-branch-freeze, PEP244_ServerProfile-root, PEP244_ServerProfile-branch, PEP233_EmbeddedInstSupport-root, PEP217_PRE_BRANCH, PEP217_POST_BRANCH, PEP217_BRANCH, PEP214ROOT, PEP214BRANCH, PEP214-root, PEP214-branch, PEP213_SIZE_OPTIMIZATIONS, PEP-214B-root, PEGASUS_2_5_0_PerformanceDev-string-end, PEGASUS_2_5_0_PerformanceDev-rootlt, PEGASUS_2_5_0_PerformanceDev-root, PEGASUS_2_5_0_PerformanceDev-r2, PEGASUS_2_5_0_PerformanceDev-r1, PEGASUS_2_5_0_PerformanceDev-lit-end, PEGASUS_2_5_0_PerformanceDev-buffer-end, PEGASUS_2_5_0_PerformanceDev-branch, PEGASUS_2_5_0_PerformanceDev-AtomicInt-branch, PEG25_IBM_5_16_05, NPEGASUS_2_5_0_PerformanceDev-String-root, NNPEGASUS_2_5_0_PerformanceDev-String-branch, MONITOR_CONSOLIDATION_2_5_BRANCH, IBM_241_April1405, CQL_2_5_BRANCH, CHUNKTESTDONE_PEP140, BUG_4225_PERFORMANCE_VERSION_1_DONE Branch point for: PEP233_EmbeddedInstSupport-branch Test provider for pegasus as explained in PEP#121 |
Multiple threads creation Test ------------------------------ The source files present in this directory implements a test case for checking provider behaviour when new sub-processes are created from inside the provider methods. Source programs included: MultithreadingSampleProviderMain.cpp MultithreadingSampleProvider.cpp MultithreadingSampleProvider.h MultithreadingSampleProvider.mof - MultithreadSampleClass MOF MultithreadingSampleProviderR.mof - Provider Registration MOF build ----- This script builds the MultithreadingSample provider sources, registers the classes into the CIM repository and registers the provider(by compiling the 2 mof files using cimmofl). It also stops and restarts the cimserver in order to re-read the repository to make sure that new classes are registered. ------------------------------------------------------------------------------- The implementation is done in the following manner: 1. MultithreadingSampleProviderMain.cpp is the source file which contains the provider entry point routine. 2. MultithreadingSampleProvider.cpp [h] are the main provider sources that implement the MultithreadingSampleClass. 3. The Base class has 3 derived classes called ThreadSampleOne, ThreadSampleTwo and ThreadSampleThree. 4. ThreadSampleOne class instances are created inside the enumerateInstances method of the provider. After the instances creation this method calls explicitly the CreateThread function, which spawns a new sub-process and executes the command line cim client CLI. 5. The additional functions added in the provider source program other than the standard methods are: CreateThread() - Function creating the sub-process (by using fork()) reader() - child process reads from the input stream writer() - Parent process writing to the output stream This test program is currently tested only on Linux and AIX (on x86 arch.). It might not be working on non-unix platforms because of the usage of platform specific system calls like fork(), and sleep(); The parent process after writing to the output stream sleeps in the function writer() which makes the CLI command give a timeout error. TEST the Provider Working ------------------------- 1. Run the following command for checking the working of this provider: CLI niall -n root/SampleProvider ThreadSampleOne 2. Run "TestClient" program present in the pegasus sources (to check for the new classes registered by any new providers) as follows: TestClient --n root/SampleProvider [You need to make sure that the TestClient is run for the SampleProvider repository because by default it runs only for root/cimv2]
No CVS admin address has been configured |
Powered by ViewCVS 0.9.2 |