![]() ![]() |
![]() |
File: [Pegasus] / pegasus / src / Executor / tests / Process / TestExecutorProcess.c
(download)
Revision: 1.5, Wed Sep 5 18:35:31 2007 UTC (16 years, 10 months ago) by kumpf Branch: MAIN CVS Tags: TASK-PEP305_VXWORKS-root, TASK-PEP305_VXWORKS-branch-pre-solaris-port, TASK-PEP305_VXWORKS-branch-post-solaris-port, TASK-PEP305_VXWORKS-branch-beta2, TASK-PEP305_VXWORKS-branch, TASK-PEP305_VXWORKS-2008-10-23, TASK-BUG7146_SqlRepositoryPrototype-root, TASK-BUG7146_SqlRepositoryPrototype-merged_out_to_branch, TASK-BUG7146_SqlRepositoryPrototype-merged_out_from_trunk, TASK-BUG7146_SqlRepositoryPrototype-merged_in_to_trunk, TASK-BUG7146_SqlRepositoryPrototype-merged_in_from_branch, TASK-BUG7146_SqlRepositoryPrototype-branch, RELEASE_2_7_3-RC1, RELEASE_2_7_3, RELEASE_2_7_2-RC1, RELEASE_2_7_2, RELEASE_2_7_1-RC1, RELEASE_2_7_1, RELEASE_2_7_0-RC1, RELEASE_2_7_0, RELEASE_2_7-root, RELEASE_2_7-branch Changes since 1.4: +18 -15 lines BUG#: 6859 TITLE: Incorrect use of assert() in Executor tests DESCRIPTION: Allow the Executor tests to run correctly when asserts are disabled. |
/* //%2006//////////////////////////////////////////////////////////////////////// // // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.; // IBM Corp.; EMC Corporation, The Open Group. // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; // EMC Corporation; VERITAS Software Corporation; The Open Group. // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.; // EMC Corporation; Symantec Corporation; The Open Group. // // 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. // //============================================================================== // //%///////////////////////////////////////////////////////////////////////////// */ #include <Executor/Process.h> #include <Executor/tests/TestAssert.h> #include <stdio.h> #include <string.h> #include <sys/types.h> #include <unistd.h> #define TEST_PID_FILE "testpidfile" void testGetProcessName(void) { char name[EXECUTOR_BUFFER_SIZE]; PEGASUS_TEST_ASSERT(GetProcessName(getpid(), name) == 0); PEGASUS_TEST_ASSERT(strcmp(name, "TestExProcess") == 0); } void testReadPidFile(void) { FILE* pidFile; int pid; /* Test non-existent PID file */ unlink(TEST_PID_FILE); PEGASUS_TEST_ASSERT(ReadPidFile(TEST_PID_FILE, &pid) != 0); /* Test empty PID file */ pidFile = fopen(TEST_PID_FILE, "a"); PEGASUS_TEST_ASSERT(pidFile != 0); fclose(pidFile); PEGASUS_TEST_ASSERT(ReadPidFile(TEST_PID_FILE, &pid) != 0); /* Test PID file with invalid content */ pidFile = fopen(TEST_PID_FILE, "a"); PEGASUS_TEST_ASSERT(pidFile != 0); fprintf(pidFile, "%s", "A"); fclose(pidFile); PEGASUS_TEST_ASSERT(ReadPidFile(TEST_PID_FILE, &pid) != 0); /* Test PID file with valid content */ unlink(TEST_PID_FILE); pidFile = fopen(TEST_PID_FILE, "a"); PEGASUS_TEST_ASSERT(pidFile != 0); fprintf(pidFile, "%s", "1234"); fclose(pidFile); PEGASUS_TEST_ASSERT(ReadPidFile(TEST_PID_FILE, &pid) == 0); PEGASUS_TEST_ASSERT(pid == 1234); unlink(TEST_PID_FILE); } void testTestProcessRunning(void) { FILE* pidFile; /* Test with non-existent PID file */ unlink(TEST_PID_FILE); PEGASUS_TEST_ASSERT( TestProcessRunning(TEST_PID_FILE, "TestExProcess") != 0); /* Test with our process ID in PID file but incorrect process name */ unlink(TEST_PID_FILE); pidFile = fopen(TEST_PID_FILE, "a"); PEGASUS_TEST_ASSERT(pidFile != 0); fprintf(pidFile, "%d", (int)getpid()); fclose(pidFile); PEGASUS_TEST_ASSERT( TestProcessRunning(TEST_PID_FILE, "NotOurProcess") != 0); /* Test with our process ID in PID file and correct process name */ PEGASUS_TEST_ASSERT( TestProcessRunning(TEST_PID_FILE, "TestExProcess") == 0); unlink(TEST_PID_FILE); } int main() { testGetProcessName(); testReadPidFile(); testTestProcessRunning(); printf("+++++ passed all tests\n"); return 0; }
No CVS admin address has been configured |
Powered by ViewCVS 0.9.2 |