use RMAX= in test-random/bundles to test larger randomized values (default max limit is 128 bytes)
diff --git a/tests/tests-randomized/random-test-driver.c b/tests/tests-randomized/random-test-driver.c
index 0b93d96..cb7bda7 100644
--- a/tests/tests-randomized/random-test-driver.c
+++ b/tests/tests-randomized/random-test-driver.c
@@ -84,6 +84,7 @@
             "OPTIONS:\n"
             "  -c               Check encode-decode round-trip on random data\n"
             "  -g <dir>         Generate random data for selected encodings\n"
+            "  -s <size>        Approximate max random value size for -c and -g\n"
             "  -n <number>      Number of iterations for -c and -g\n"
             "  -e <encoding>    Encodings to test or generate random data for\n"
             "Encodings (ASN.1 Transfer Syntaxes):\n"
@@ -101,7 +102,7 @@
 }
 
 static void
-generate_random_data(enum asn_transfer_syntax syntax, const char *top_dirname, int iterations) {
+generate_random_data(enum asn_transfer_syntax syntax, const char *top_dirname, size_t max_random_value_size, int iterations, int debug) {
     char dirname[PATH_MAX];
     size_t dirname_len = 0;
     dirname[dirname_len] = '\0';
@@ -142,7 +143,9 @@
         snprintf(&dirname[dirname_len], sizeof(dirname) - dirname_len,
                  "/%03d.bin", i);
 
-        if(asn_random_fill(&asn_DEF_T, (void **)&structure, 128) == -1) {
+        if(asn_random_fill(&asn_DEF_T, (void **)&structure,
+                           max_random_value_size)
+           == -1) {
             assert(structure == 0);
             fprintf(stderr, "Can't generate %d'th value, skipping\n", i);
             continue;
@@ -169,11 +172,13 @@
             exit(EX_SOFTWARE);
         }
 
-        if(i < 5) {
-            fprintf(stderr, "[%s] ", &filename[dirname_len+1]);
-            asn_fprint(stderr, &asn_DEF_T, structure);
-        } else if(i == 5) {
-            fprintf(stderr, "... and so on\n");
+        if(debug) {
+            if(i < 5 || debug > 1) {
+                fprintf(stderr, "[%s] ", &filename[dirname_len+1]);
+                asn_fprint(stderr, &asn_DEF_T, structure);
+            } else if(i == 5) {
+                fprintf(stderr, "... and so on\n");
+            }
         }
 
         ASN_STRUCT_FREE(asn_DEF_T, structure);
@@ -189,7 +194,7 @@
 }
 
 static void
-check_random_roundtrip(enum asn_transfer_syntax syntax, int iterations) {
+check_random_roundtrip(enum asn_transfer_syntax syntax, size_t max_random_value_size, int iterations, int debug) {
     struct encoding_map enc;
 
     for(size_t i = 0; i < sizeof(encodings)/sizeof(encodings[0]); i++) {
@@ -208,7 +213,9 @@
         T_t *structure = 0;
         T_t *decoded_structure = 0;
 
-        if(asn_random_fill(&asn_DEF_T, (void **)&structure, 128) == -1) {
+        if(asn_random_fill(&asn_DEF_T, (void **)&structure,
+                           max_random_value_size)
+           == -1) {
             assert(structure == 0);
             fprintf(stderr, "Can't generate %d'th value, skipping\n", i);
             continue;
@@ -228,8 +235,12 @@
                 exit(EX_SOFTWARE);
             }
             if(er.encoded > buffer_size && buffer == tmp_buffer) {
-                fprintf(stderr, "Reallocate output buffer %zu -> %zu\n",
-                        buffer_size, er.encoded);
+                if(debug) {
+                    fprintf(
+                        stderr,
+                        "Reallocate output buffer %zu -> %zu (iteration %d)\n",
+                        buffer_size, er.encoded, i);
+                }
                 buffer = malloc(er.encoded + 1);
                 assert(buffer);
                 buffer[er.encoded] = '\0';
@@ -307,13 +318,18 @@
     } mode = MODE_UNKNOWN;
     const char *generate_into_dir = NULL;
     int iterations = 100;
+    size_t max_random_value_size = 128;
+    int debug = 0;
     int c;
 
-    while((c = getopt(argc, argv, "ce:g:hn:")) != -1) {
+    while((c = getopt(argc, argv, "cde:g:hn:s:")) != -1) {
         switch(c) {
         case 'c':
             mode = MODE_CHECK_RANDOM_ROUNDTRIP;
             break;
+        case 'd':
+            debug = 1;
+            break;
         case 'e':
             enabled_encodings |= 1 << lookup_syntax(optarg);
             if(enabled_encodings & (1 << ATS_INVALID)) {
@@ -336,6 +352,13 @@
                 exit(EX_DATAERR);
             }
             break;
+        case 's':
+            if(atoi(optarg) <= 0) {
+                fprintf(stderr, "-s %s: positive value expected\n", optarg);
+                exit(EX_DATAERR);
+            }
+            max_random_value_size = atoi(optarg);
+            break;
         default:
             usage(argv[0]);
             exit(2);
@@ -360,10 +383,12 @@
                 assert(mode != MODE_UNKNOWN);
                 break;
             case MODE_GENERATE_RANDOM_DATA:
-                generate_random_data(syntax, generate_into_dir, iterations);
+                generate_random_data(syntax, generate_into_dir,
+                                     max_random_value_size, iterations, debug);
                 break;
             case MODE_CHECK_RANDOM_ROUNDTRIP:
-                check_random_roundtrip(syntax, iterations);
+                check_random_roundtrip(syntax, max_random_value_size,
+                                       iterations, debug);
                 break;
             }
         }