43 std::cerr <<
"Usage: " << program <<
" tracker port thisslicenumber numslice\n";
46 #define DATA_LEN 80000
47 #define PIPE_ATTEMPTS 10
61 main(
int argc,
char *argv[])
73 const char *tracker = args.
argv(1);
74 int port = SYSatoi(args.
argv(2));
75 int thisslice = SYSatoi(args.
argv(3));
76 int numslice = SYSatoi(args.
argv(4));
78 std::cerr <<
"Building connection to tracker " << tracker <<
":" << port << std::endl;
79 std::cerr <<
"I am slice " << thisslice <<
" out of " << numslice << std::endl;
83 std::cerr <<
"Simple Exchange Test" << std::endl;
84 UT_NetExchange netxchg(tracker, port, thisslice, numslice,
"normalexchange");
86 for (
int peer = 0; peer < numslice; peer++)
101 std::cerr <<
"Failure to do traditional data exchange, got " << completed.
entries() << std::endl;
115 goalval =
i + thisslice;
121 std::cerr <<
"Error, got " << val <<
" at integer index " <<
i <<
" rather than expected " << goalval <<
", source slice was " << msg->
extractInt16(6) << std::endl;
133 std::cerr <<
"Message Pipe Tests" << std::endl;
140 std::cerr <<
"Failed to open message pipes" << std::endl;
147 std::cerr <<
"Starting pass " << j << std::endl;
148 for (
int peer = 0; peer < numslice; peer++)
157 for (
int i = 0;
i < datalen;
i++)
167 std::cerr <<
"Failed to push data across pipes!" << std::endl;
174 for (
int peer = 0; peer < numslice; peer++)
178 for (
int i = 0;
i < datalen;
i++)
180 int32 goalval =
i + thisslice + j;
185 std::cerr <<
"Error, got " << val <<
" at integer index " <<
i <<
" rather than expected " << goalval <<
", source slice was " << peer <<
" and this was pipe pass " << j << std::endl;
192 for (
int peer = 0; peer < numslice; peer++)
203 std::cerr <<
"Failed to close message pipes." << std::endl;
209 std::cerr <<
"All transferred successfully!" << std::endl;
int main(int argc, char *argv[])
const char * argv(unsigned i) const
int32 extractInt32(exint offset)
void overwriteInt32(exint offset, int32 val)
bool closePipes(int timeoutms=100)
Shuts down the pipes, returns true if successful.
void setWriteDataLength(exint bufsize)
UT_NetMessage * readPipe(int peer)
bool receiveDataLoop(UT_Array< UT_NetMessage * > &completed, int expectedmessages, int timeoutms=100)
exint entries() const
Alias of size(). size() is preferred.
GLsizeiptr const void GLenum usage
bool transferData(int timeoutms=100)
UT_NetMessage * writePipe(int peer)
void resetLength(TransmitState state, exint newlen)
Resizes, useful for pipe messages.
void initialize(int argc, const char *const argv[])
void sendData(int destpeer, const char *data, exint len)
GLbitfield GLuint program
int16 extractInt16(exint offset)
bool openPipes(int timeoutms=100)
Prepares the pipes, returns true if successful.