--- /dev/null
+Bottom: 73ebe2ff1ff06d4ecc24c5fe35c8f54b8ad98f9f
+Top: 6143dc261a8c3107f32a4bd74443fd381b89d52e
+Author: Sean Hefty <sean.hefty@intel.com>
+Date: 2012-05-17 10:38:53 -0700
+
+Refresh of rs-fulltest
+
+---
+
+diff --git a/examples/rstream.c b/examples/rstream.c
+index ec9b4ff..3e6d8d5 100644
+--- a/examples/rstream.c
++++ b/examples/rstream.c
+@@ -45,11 +45,29 @@
+ #include <rdma/rdma_cma.h>
+ #include <rdma/rsocket.h>
+
+-static int test_size[] = {
+- 64,
+- 4096,
+- 65536,
+- 1048576
++struct test_size_param {
++ int size;
++ int option;
++};
++
++static struct test_size_param test_size[] = {
++ { 1 << 6, 0 },
++ { 1 << 7, 1 }, { 1 << 7 + 1 << 6, 1},
++ { 1 << 8, 1 }, { 1 << 8 + 1 << 7, 1},
++ { 1 << 9, 1 }, { 1 << 9 + 1 << 8, 1},
++ { 1 << 10, 1 }, { 1 << 10 + 1 << 9, 1},
++ { 1 << 11, 1 }, { 1 << 11 + 1 << 10, 1},
++ { 1 << 12, 0 }, { 1 << 12 + 1 << 11, 1},
++ { 1 << 13, 1 }, { 1 << 13 + 1 << 12, 1},
++ { 1 << 14, 1 }, { 1 << 14 + 1 << 13, 1},
++ { 1 << 15, 1 }, { 1 << 15 + 1 << 14, 1},
++ { 1 << 16, 0 }, { 1 << 16 + 1 << 15, 1},
++ { 1 << 17, 1 }, { 1 << 17 + 1 << 16, 1},
++ { 1 << 18, 1 }, { 1 << 18 + 1 << 17, 1},
++ { 1 << 19, 1 }, { 1 << 19 + 1 << 18, 1},
++ { 1 << 20, 0 }, { 1 << 20 + 1 << 19, 1},
++ { 1 << 21, 1 }, { 1 << 21 + 1 << 20, 1},
++ { 1 << 22, 1 }, { 1 << 22 + 1 << 21, 1},
+ };
+ #define TEST_CNT (sizeof test_size / sizeof test_size[0])
+
+@@ -59,6 +77,7 @@ static int verify;
+ static int flags = MSG_DONTWAIT;
+ static int poll_timeout = 0;
+ static int custom;
++static int size_option;
+ static int iterations = 1;
+ static int transfer_size = 1000;
+ static int transfer_count = 1000;
+@@ -457,7 +476,7 @@ static int run(void)
+ {
+ int i, rs, ret = 0;
+
+- buf = malloc(!custom ? test_size[TEST_CNT - 1] : transfer_size);
++ buf = malloc(!custom ? test_size[TEST_CNT - 1].size : transfer_size);
+ if (!buf) {
+ perror("malloc");
+ return -1;
+@@ -472,11 +491,15 @@ static int run(void)
+ printf("name \tbytes \txfers \titers \ttotal \ttime \tGb/sec \tusec/xfer\n");
+ if (!custom) {
+ for (i = 0; i < TEST_CNT; i++) {
+- init_latency_test(test_size[i]);
++ if (test_size[i] > size_option)
++ continue;
++ init_latency_test(test_size[i].size);
+ run_test(rs);
+ }
+ for (i = 0; i < TEST_CNT; i++) {
+- init_bandwidth_test(test_size[i]);
++ if (test_size[i] > size_option)
++ continue;
++ init_bandwidth_test(test_size[i].size);
+ run_test(rs);
+ }
+ } else {
+@@ -551,8 +574,12 @@ int main(int argc, char **argv)
+ transfer_count = atoi(optarg);
+ break;
+ case 'S':
+- custom = 1;
+- transfer_size = atoi(optarg);
++ if (strncasecmp("all", optarg, 3) {
++ size_option = 1;
++ } else {
++ custom = 1;
++ transfer_size = atoi(optarg);
++ }
+ break;
+ case 'p':
+ port = optarg;
+@@ -567,7 +594,7 @@ int main(int argc, char **argv)
+ printf("\t[-b bind_address]\n");
+ printf("\t[-I iterations]\n");
+ printf("\t[-C transfer_count]\n");
+- printf("\t[-S transfer_size]\n");
++ printf("\t[-S transfer_size or all]\n");
+ printf("\t[-p port_number]\n");
+ printf("\t[-T test_option]\n");
+ printf("\t s|sockets - use standard tcp/ip sockets\n");