diff --git a/test/mca/ns/test_ns_replica.c b/test/mca/ns/test_ns_replica.c index 675b079795..c743160891 100644 --- a/test/mca/ns/test_ns_replica.c +++ b/test/mca/ns/test_ns_replica.c @@ -13,6 +13,7 @@ #include #include "ompi_config.h" +#include "support.h" #include "include/constants.h" #include "util/sys_info.h" @@ -21,6 +22,11 @@ #include "mca/base/base.h" #include "mca/ns/base/base.h" +/* output files needed by the test */ +static FILE *test_out=NULL; + +static char *cmd_str="diff ./test_ns_replica_out ./test_ns_replica_out_std"; + int main(int argc, char **argv) { ompi_process_name_t *test_name; @@ -30,104 +36,150 @@ int main(int argc, char **argv) bool multi, hidden; int i, j; char *tmp; + int result; /* result from system call */ + + test_init("test_ns_replica"); + + test_out = fopen( "test_ns_replica_out", "w+" ); + if( test_out == NULL ) { + test_failure("test_ns_replica couldn't open test file failed"); + test_finalize(); + exit(1); + } ompi_process_info.seed = true; /* startup the MCA */ if (OMPI_SUCCESS == mca_base_open()) { - fprintf(stderr, "MCA started\n"); + fprintf(test_out, "MCA started\n"); } else { - fprintf(stderr, "MCA could not start - please report error to bugs@open-mpi.org\n"); + fprintf(test_out, "MCA could not start - please report error to bugs@open-mpi.org\n"); exit (1); } /* open the name server */ if (OMPI_SUCCESS == mca_ns_base_open()) { - fprintf(stderr, "NS opened\n"); + fprintf(test_out, "NS opened\n"); + test_success(); } else { - fprintf(stderr, "NS could not open\n"); + fprintf(test_out, "NS could not open\n"); + test_failure("test_ns_replica mca_ns_base_open failed"); + test_finalize(); exit(1); } /* startup the name server */ if (OMPI_SUCCESS != mca_ns_base_select(&multi, &hidden)) { - fprintf(stderr, "NS could not start\n"); + fprintf(test_out, "NS could not start\n"); + test_failure("test_ns_replica mca_ns_base_select failed"); + test_finalize(); exit(1); } else { - fprintf(stderr, "NS started\n"); + fprintf(test_out, "NS started\n"); + test_success(); } /* create a name */ test_name = ompi_name_server.create_process_name(0, 1, 1); if (NULL == test_name) { /* got error */ - fprintf(stderr, "create process name failed\n"); + fprintf(test_out, "create process name failed\n"); + test_failure("test_ns_replica ompi_name_server create_process_name failed"); + test_finalize(); exit(1); } else { - fprintf(stderr, "got process name: %0X %0X %0X\n", test_name->cellid, test_name->jobid, test_name->vpid); + fprintf(test_out, "got process name: %0X %0X %0X\n", + test_name->cellid, test_name->jobid, test_name->vpid); + test_success(); } /* convert a string to a name */ tmp = strdup("1234.5678.9AEF"); test_name = ompi_name_server.convert_string_to_process_name(tmp); if (NULL == test_name) { /* got error */ - fprintf(stderr, "convert string to process name failed\n"); + fprintf(test_out, "convert string to process name failed\n"); + test_failure("test_ns_replica ompi_name_server convert_string_to_process_name failed"); + test_finalize(); exit(1); } else { - fprintf(stderr, "got process name: %0X(%ld) %0X(%ld) %0X(%ld)\n", test_name->cellid, test_name->cellid, - test_name->jobid, test_name->jobid, test_name->vpid, test_name->vpid); + fprintf(test_out, "got process name: %0X(%ld) %0X(%ld) %0X(%ld)\n", + (int)test_name->cellid, (long int)test_name->cellid, (int)test_name->jobid, + (long int)test_name->jobid, (unsigned int)test_name->vpid, + (long int)test_name->vpid); + test_success(); } /* create a cellid */ cell = ompi_name_server.create_cellid(); if (0 == cell) { /* got error */ - fprintf(stderr, "create cellid: error\n"); + test_failure("test_ns_replica ompi_name_server test create_cellid"); + fprintf(test_out, "create cellid: error\n"); + test_finalize(); exit(1); } else { - fprintf(stderr, "cellid created: %d\n", cell); + fprintf(test_out, "cellid created: %d\n", cell); + test_success(); } for (i=0; i<10; i++) { /* loop through */ /* create jobid */ job = ompi_name_server.create_jobid(); if (0 == job) { /* got error */ - fprintf(stderr, "create jobid: error\n"); + fprintf(test_out, "create jobid: error\n"); + test_failure("test_ns_replica ompi_name_server create_jobid failed"); + test_finalize(); exit(1); } else { - fprintf(stderr, "jobid created: %d\n", job); + fprintf(test_out, "jobid created: %d\n", job); + test_success(); } for (j=0; j<5; j++) { /* loop through several vpid ranges */ /* get range of vpids */ vpid = ompi_name_server.reserve_range(job, 250); if (0 == vpid) { /* got error */ - fprintf(stderr, "get range: error\n"); + fprintf(test_out, "get range: error\n"); + test_failure("test_ns_replica ompi_name_server reserve_range failed"); + test_finalize(); exit(1); } else { - fprintf(stderr, "range reserved: %d\n", vpid); + fprintf(test_out, "range reserved: %d\n", vpid); + test_success(); } /* create a name */ - test_name = ompi_name_server.create_process_name((mca_ns_base_cellid_t)i, job, vpid); + test_name = ompi_name_server.create_process_name((mca_ns_base_cellid_t)i, + job, vpid); /* get and print its string values */ tmp = ompi_name_server.get_proc_name_string(test_name); - fprintf(stderr, "(%d) strings: name - %s\n", i, tmp); + fprintf(test_out, "(%d) strings: name - %s\n", i, tmp); tmp = ompi_name_server.get_vpid_string(test_name); - fprintf(stderr, "\tvpid: %s\n", tmp); + fprintf(test_out, "\tvpid: %s\n", tmp); tmp = ompi_name_server.get_jobid_string(test_name); - fprintf(stderr, "\tjobid: %s\n", tmp); + fprintf(test_out, "\tjobid: %s\n", tmp); tmp = ompi_name_server.get_cellid_string(test_name); - fprintf(stderr, "\tcellid: %s\n", tmp); + fprintf(test_out, "\tcellid: %s\n", tmp); /* get and print its numeric values */ vpid = ompi_name_server.get_vpid(test_name); job = ompi_name_server.get_jobid(test_name); cell = ompi_name_server.get_cellid(test_name); - fprintf(stderr, "(%d) ints cell %0X(%ld) job %0X(%ld) vpid %0x(%ld)\n\n", i, - cell, cell, job, job, vpid, vpid); + fprintf(test_out, "(%d) ints cell %0X(%ld) job %0X(%ld) vpid %0x(%ld)\n\n", + i, cell, (long int)cell, job, (long int)job, vpid, (long int)vpid); } + } + fclose( test_out ); + result = system( cmd_str ); + if( result == 0 ) { + test_success(); + } + else { + test_failure( "test_ns_replica ompi_name_server get_proc_name_string, etc failed"); + } + + test_finalize(); return(0); } diff --git a/test/mca/ns/test_ns_replica_out_std b/test/mca/ns/test_ns_replica_out_std new file mode 100644 index 0000000000..0c5721faf0 --- /dev/null +++ b/test/mca/ns/test_ns_replica_out_std @@ -0,0 +1,366 @@ +MCA started +NS opened +NS started +got process name: 0 1 1 +got process name: 1234(4660) 5678(22136) 9AEF(39663) +cellid created: 1 +jobid created: 1 +range reserved: 1 +(0) strings: name - 0.1.1 + vpid: 1 + jobid: 1 + cellid: 0 +(0) ints cell 0(0) job 1(1) vpid 1(1) + +range reserved: 251 +(0) strings: name - 0.1.FB + vpid: FB + jobid: 1 + cellid: 0 +(0) ints cell 0(0) job 1(1) vpid fb(251) + +range reserved: 501 +(0) strings: name - 0.1.1F5 + vpid: 1F5 + jobid: 1 + cellid: 0 +(0) ints cell 0(0) job 1(1) vpid 1f5(501) + +range reserved: 751 +(0) strings: name - 0.1.2EF + vpid: 2EF + jobid: 1 + cellid: 0 +(0) ints cell 0(0) job 1(1) vpid 2ef(751) + +range reserved: 1001 +(0) strings: name - 0.1.3E9 + vpid: 3E9 + jobid: 1 + cellid: 0 +(0) ints cell 0(0) job 1(1) vpid 3e9(1001) + +jobid created: 2 +range reserved: 1 +(1) strings: name - 1.2.1 + vpid: 1 + jobid: 2 + cellid: 1 +(1) ints cell 1(1) job 2(2) vpid 1(1) + +range reserved: 251 +(1) strings: name - 1.2.FB + vpid: FB + jobid: 2 + cellid: 1 +(1) ints cell 1(1) job 2(2) vpid fb(251) + +range reserved: 501 +(1) strings: name - 1.2.1F5 + vpid: 1F5 + jobid: 2 + cellid: 1 +(1) ints cell 1(1) job 2(2) vpid 1f5(501) + +range reserved: 751 +(1) strings: name - 1.2.2EF + vpid: 2EF + jobid: 2 + cellid: 1 +(1) ints cell 1(1) job 2(2) vpid 2ef(751) + +range reserved: 1001 +(1) strings: name - 1.2.3E9 + vpid: 3E9 + jobid: 2 + cellid: 1 +(1) ints cell 1(1) job 2(2) vpid 3e9(1001) + +jobid created: 3 +range reserved: 1 +(2) strings: name - 2.3.1 + vpid: 1 + jobid: 3 + cellid: 2 +(2) ints cell 2(2) job 3(3) vpid 1(1) + +range reserved: 251 +(2) strings: name - 2.3.FB + vpid: FB + jobid: 3 + cellid: 2 +(2) ints cell 2(2) job 3(3) vpid fb(251) + +range reserved: 501 +(2) strings: name - 2.3.1F5 + vpid: 1F5 + jobid: 3 + cellid: 2 +(2) ints cell 2(2) job 3(3) vpid 1f5(501) + +range reserved: 751 +(2) strings: name - 2.3.2EF + vpid: 2EF + jobid: 3 + cellid: 2 +(2) ints cell 2(2) job 3(3) vpid 2ef(751) + +range reserved: 1001 +(2) strings: name - 2.3.3E9 + vpid: 3E9 + jobid: 3 + cellid: 2 +(2) ints cell 2(2) job 3(3) vpid 3e9(1001) + +jobid created: 4 +range reserved: 1 +(3) strings: name - 3.4.1 + vpid: 1 + jobid: 4 + cellid: 3 +(3) ints cell 3(3) job 4(4) vpid 1(1) + +range reserved: 251 +(3) strings: name - 3.4.FB + vpid: FB + jobid: 4 + cellid: 3 +(3) ints cell 3(3) job 4(4) vpid fb(251) + +range reserved: 501 +(3) strings: name - 3.4.1F5 + vpid: 1F5 + jobid: 4 + cellid: 3 +(3) ints cell 3(3) job 4(4) vpid 1f5(501) + +range reserved: 751 +(3) strings: name - 3.4.2EF + vpid: 2EF + jobid: 4 + cellid: 3 +(3) ints cell 3(3) job 4(4) vpid 2ef(751) + +range reserved: 1001 +(3) strings: name - 3.4.3E9 + vpid: 3E9 + jobid: 4 + cellid: 3 +(3) ints cell 3(3) job 4(4) vpid 3e9(1001) + +jobid created: 5 +range reserved: 1 +(4) strings: name - 4.5.1 + vpid: 1 + jobid: 5 + cellid: 4 +(4) ints cell 4(4) job 5(5) vpid 1(1) + +range reserved: 251 +(4) strings: name - 4.5.FB + vpid: FB + jobid: 5 + cellid: 4 +(4) ints cell 4(4) job 5(5) vpid fb(251) + +range reserved: 501 +(4) strings: name - 4.5.1F5 + vpid: 1F5 + jobid: 5 + cellid: 4 +(4) ints cell 4(4) job 5(5) vpid 1f5(501) + +range reserved: 751 +(4) strings: name - 4.5.2EF + vpid: 2EF + jobid: 5 + cellid: 4 +(4) ints cell 4(4) job 5(5) vpid 2ef(751) + +range reserved: 1001 +(4) strings: name - 4.5.3E9 + vpid: 3E9 + jobid: 5 + cellid: 4 +(4) ints cell 4(4) job 5(5) vpid 3e9(1001) + +jobid created: 6 +range reserved: 1 +(5) strings: name - 5.6.1 + vpid: 1 + jobid: 6 + cellid: 5 +(5) ints cell 5(5) job 6(6) vpid 1(1) + +range reserved: 251 +(5) strings: name - 5.6.FB + vpid: FB + jobid: 6 + cellid: 5 +(5) ints cell 5(5) job 6(6) vpid fb(251) + +range reserved: 501 +(5) strings: name - 5.6.1F5 + vpid: 1F5 + jobid: 6 + cellid: 5 +(5) ints cell 5(5) job 6(6) vpid 1f5(501) + +range reserved: 751 +(5) strings: name - 5.6.2EF + vpid: 2EF + jobid: 6 + cellid: 5 +(5) ints cell 5(5) job 6(6) vpid 2ef(751) + +range reserved: 1001 +(5) strings: name - 5.6.3E9 + vpid: 3E9 + jobid: 6 + cellid: 5 +(5) ints cell 5(5) job 6(6) vpid 3e9(1001) + +jobid created: 7 +range reserved: 1 +(6) strings: name - 6.7.1 + vpid: 1 + jobid: 7 + cellid: 6 +(6) ints cell 6(6) job 7(7) vpid 1(1) + +range reserved: 251 +(6) strings: name - 6.7.FB + vpid: FB + jobid: 7 + cellid: 6 +(6) ints cell 6(6) job 7(7) vpid fb(251) + +range reserved: 501 +(6) strings: name - 6.7.1F5 + vpid: 1F5 + jobid: 7 + cellid: 6 +(6) ints cell 6(6) job 7(7) vpid 1f5(501) + +range reserved: 751 +(6) strings: name - 6.7.2EF + vpid: 2EF + jobid: 7 + cellid: 6 +(6) ints cell 6(6) job 7(7) vpid 2ef(751) + +range reserved: 1001 +(6) strings: name - 6.7.3E9 + vpid: 3E9 + jobid: 7 + cellid: 6 +(6) ints cell 6(6) job 7(7) vpid 3e9(1001) + +jobid created: 8 +range reserved: 1 +(7) strings: name - 7.8.1 + vpid: 1 + jobid: 8 + cellid: 7 +(7) ints cell 7(7) job 8(8) vpid 1(1) + +range reserved: 251 +(7) strings: name - 7.8.FB + vpid: FB + jobid: 8 + cellid: 7 +(7) ints cell 7(7) job 8(8) vpid fb(251) + +range reserved: 501 +(7) strings: name - 7.8.1F5 + vpid: 1F5 + jobid: 8 + cellid: 7 +(7) ints cell 7(7) job 8(8) vpid 1f5(501) + +range reserved: 751 +(7) strings: name - 7.8.2EF + vpid: 2EF + jobid: 8 + cellid: 7 +(7) ints cell 7(7) job 8(8) vpid 2ef(751) + +range reserved: 1001 +(7) strings: name - 7.8.3E9 + vpid: 3E9 + jobid: 8 + cellid: 7 +(7) ints cell 7(7) job 8(8) vpid 3e9(1001) + +jobid created: 9 +range reserved: 1 +(8) strings: name - 8.9.1 + vpid: 1 + jobid: 9 + cellid: 8 +(8) ints cell 8(8) job 9(9) vpid 1(1) + +range reserved: 251 +(8) strings: name - 8.9.FB + vpid: FB + jobid: 9 + cellid: 8 +(8) ints cell 8(8) job 9(9) vpid fb(251) + +range reserved: 501 +(8) strings: name - 8.9.1F5 + vpid: 1F5 + jobid: 9 + cellid: 8 +(8) ints cell 8(8) job 9(9) vpid 1f5(501) + +range reserved: 751 +(8) strings: name - 8.9.2EF + vpid: 2EF + jobid: 9 + cellid: 8 +(8) ints cell 8(8) job 9(9) vpid 2ef(751) + +range reserved: 1001 +(8) strings: name - 8.9.3E9 + vpid: 3E9 + jobid: 9 + cellid: 8 +(8) ints cell 8(8) job 9(9) vpid 3e9(1001) + +jobid created: 10 +range reserved: 1 +(9) strings: name - 9.A.1 + vpid: 1 + jobid: A + cellid: 9 +(9) ints cell 9(9) job A(10) vpid 1(1) + +range reserved: 251 +(9) strings: name - 9.A.FB + vpid: FB + jobid: A + cellid: 9 +(9) ints cell 9(9) job A(10) vpid fb(251) + +range reserved: 501 +(9) strings: name - 9.A.1F5 + vpid: 1F5 + jobid: A + cellid: 9 +(9) ints cell 9(9) job A(10) vpid 1f5(501) + +range reserved: 751 +(9) strings: name - 9.A.2EF + vpid: 2EF + jobid: A + cellid: 9 +(9) ints cell 9(9) job A(10) vpid 2ef(751) + +range reserved: 1001 +(9) strings: name - 9.A.3E9 + vpid: 3E9 + jobid: A + cellid: 9 +(9) ints cell 9(9) job A(10) vpid 3e9(1001) +