16 #define RUN_TEST_ARG2( A, B ) run_test( &( A ), #A, B )
20 #define CHECKRC( rc, message ) \
23 printf( "Error: %s\n", message ); \
30 int err = MPI_Allreduce( &is_my_error, &result, 1, MPI_INT, MPI_MAX,
MPI_COMM_WORLD );
34 int run_test(
ErrorCode ( *func )(
const char* ),
const char* func_name,
const char* file_name )
36 ErrorCode result = ( *func )( file_name );
43 std::cout << func_name <<
" : FAILED!!" << std::endl;
45 std::cout << func_name <<
" : success" << std::endl;
71 int main(
int argc,
char* argv[] )
73 MPI_Init( &argc, &argv );
81 filename = TestDir +
"unittest/field1.h5m";
101 std::cout <<
"All tests passed" << std::endl;
103 std::cout << num_errors <<
" TESTS FAILED!" << std::endl;
106 MPI_Group_free( &
jgroup );
107 MPI_Comm_free( &
jcomm );
117 MPI_Group group1, group2;
131 int tagcomm1 = 1, tagcomm2 = 2;
132 MPI_Comm comm1, comm2;
133 ierr = MPI_Comm_create_group(
jcomm, group1, tagcomm1, &comm1 );
136 ierr = MPI_Comm_create_group(
jcomm, group2, tagcomm2, &comm2 );
153 if( comm1 != MPI_COMM_NULL )
158 if( comm2 != MPI_COMM_NULL )
165 if( comm1 != MPI_COMM_NULL )
168 std::string
readopts(
"PARALLEL=READ_PART;PARTITION=PARALLEL_PARTITION;PARALLEL_RESOLVE_SHARED_ENTS" );
178 if( comm2 != MPI_COMM_NULL )
183 wopts =
"PARALLEL=WRITE_PART;";
188 MPI_Barrier(
jcomm );
191 if( comm1 != MPI_COMM_NULL )
ierr = iMOAB_FreeSenderBuffers( pid1, &context_id );
198 int tagIndex2 = 0, tagIndex1 = 0;
200 std::string fileAfterTagMigr(
outfile );
201 int sizen = fileAfterTagMigr.length();
202 fileAfterTagMigr.erase( sizen - 4, 4 );
203 fileAfterTagMigr = fileAfterTagMigr +
"_tag.h5m";
206 if( comm2 != MPI_COMM_NULL )
209 CHECKRC(
ierr,
"failed to get tag element_field " );
216 ierr = iMOAB_SendElementTag( pid2,
"element_field", &
jcomm, &context_id );
220 if( comm1 != MPI_COMM_NULL )
225 ierr = iMOAB_ReceiveElementTag( pid1,
"element_field", &
jcomm, &context_id );
228 wopts =
"PARALLEL=WRITE_PART;";
233 MPI_Barrier(
jcomm );
236 if( comm2 != MPI_COMM_NULL )
ierr = iMOAB_FreeSenderBuffers( pid2, &context_id );
238 if( comm2 != MPI_COMM_NULL )
241 CHECKRC(
ierr,
"cannot deregister app 2 receiver" )
244 if( comm1 != MPI_COMM_NULL )
253 if( MPI_COMM_NULL != comm1 ) MPI_Comm_free( &comm1 );
254 if( MPI_COMM_NULL != comm2 ) MPI_Comm_free( &comm2 );
256 MPI_Group_free( &group1 );
257 MPI_Group_free( &group2 );