Avoid generating zero-length packets

I used the construct like f_rnd_octstring(f_rnd_int(100)) in a number
of places to generate random-length packets with randomized length.

The problem I didn't realize is that f_rnd_int() of course can also
return '0', which would generate zero-length packets.  This may be
permitted in some protocols, but it leads to problems e.g. when trying
to send a UDP packet of zero length (which the kernel will not do).

So let's introduce
* f_rnd_int_nonzero() for returning non-zero randomized integers
* f_rnd_octstring_rnd_len() for returning a random-length random payload
  octet string
* replace all f_rnd_octstring(f_rnd_int()) call sites with the new
  function.

Change-Id: I818a113ff8d2a2f7cab2ec7d9c8661607c6331d6
Closes: OS#5528
diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn
index 31bab93..08fc9c9 100644
--- a/stp/STP_Tests_M3UA.ttcn
+++ b/stp/STP_Tests_M3UA.ttcn
@@ -407,7 +407,7 @@
 				integer idx_rx, template (omit) OCT4 rctx_receiver, OCT4 pc_rx,
 				OCT1 si := '23'O, OCT1 ni := '00'O, OCT1 mp := '00'O, OCT1 sls := '00'O)
 runs on RAW_M3UA_CT {
-	var octetstring data := f_rnd_octstring(f_rnd_int(100));
+	var octetstring data := f_rnd_octstring_rnd_len(100);
 	f_M3UA_send(idx_tx, ts_M3UA_DATA(rctx_sender,
 					 ts_M3UA_protocol_data(pc_tx, pc_rx, si, ni, mp, sls, data)), 1);
 	f_M3UA_exp(idx_rx, tr_M3UA_DATA(rctx_receiver,
@@ -482,7 +482,7 @@
 	const integer iter_per_asp := 5;
 	var integer num_rx[NR_M3UA] := { 0, 0, 0 };
 	for (i := 0; i < 2*iter_per_asp; i := i+1) {
-		var octetstring data := f_rnd_octstring(f_rnd_int(100));
+		var octetstring data := f_rnd_octstring_rnd_len(100);
 		var template (value) M3UA_Protocol_Data tx_pd;
 		var template (present) M3UA_Protocol_Data rx_pd;
 		tx_pd := ts_M3UA_protocol_data(pc_sender, pc_receiver, '23'O, '00'O, '00'O, '00'O, data);
@@ -533,7 +533,7 @@
 
 	/* verify traffic is routed from sender to new receiver */
 	for (i := 0; i < 10; i := i+1) {
-		var octetstring data := f_rnd_octstring(f_rnd_int(100));
+		var octetstring data := f_rnd_octstring_rnd_len(100);
 		var template (value) M3UA_Protocol_Data tx_pd;
 		var template (present) M3UA_Protocol_Data rx_pd;
 		tx_pd := ts_M3UA_protocol_data(pc_sender, pc_receiver, '23'O, '00'O, '00'O, '00'O, data);