update MPI tests
[scilab.git] / scilab / modules / mpi / tests / unit_tests / mpi_send_string.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2011 - DIGITEO - Sylvestre LEDRU
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- MPI TEST -->
9 //
10
11 MPI_Init();
12 rnk =    MPI_Comm_rank();
13 sizeNodes =    MPI_Comm_size();
14
15 assert_checkequal(MPI_Comm_size(), 2);
16
17 SLV = rnk;                // handy shortcuts, master is rank 0
18 Master = ~ SLV;            // slaves are all other
19
20 if Master
21
22     disp("MASTER: We have "+string(sizeNodes) + " processors")
23     for slaveId = 1:sizeNodes-1
24         value = ["test","of","MPI","!"]
25         MPI_Send(value, slaveId)
26     end
27
28     for slaveId = 1:sizeNodes-1
29         tag=0
30         valueBack=MPI_Recv(slaveId, tag);
31         assert_checkequal(size(valueBack), [1,1]);
32         assert_checkequal(valueBack, strcat(value))
33     end
34 else
35     disp("SLAVE: Processor "+string(rnk))
36     rankSource=0;
37     tag=0;
38     value=MPI_Recv(rankSource, tag)
39     value = strcat(value);
40     // Send back to the master
41     MPI_Send(value,0)
42 end
43
44 MPI_Finalize()
45 exit();