3 # $Id: mpx-gen,v 1.1 1999/11/14 13:53:44 mdw Exp $
5 # Generate test vectors for MPX testing
7 # --- Generate an `l'-byte hex number ---
13 for (i =
0; i
< l
; i
++) {
14 x = int
(rand
() * 256);
15 s = s
sprintf("%02X", x
);
24 # --- Initialization ---
27 if (i in
ARGV) len =
ARGV[i
++]; else len =
32;
28 if (i in
ARGV) op =
ARGV[i
++]; else op =
"+";
29 if (i in
ARGV) rep =
ARGV[i
++]; else rep =
1;
31 # --- Output filters ---
33 bc =
"bc | sed 'y/ABCDEF/abcdef/; \
34 s/^[0-9a-f]\\([0-9a-f][0-9a-f]\\)*$/0&/; \
37 out =
"sed 'y/ABCDEF/abcdef/; s/^/ /'"
46 print "obase = 16" | bc
;
47 print "ibase = 16" | bc
;
49 # --- Shifting operations ---
51 if (op ==
"<<" || op ==
">>") {
52 y = int
(rand
() * len
* 4) + int
(rand
() * len
* 4);
53 rop =
(op ==
"<<" ?
"*" : "/");
56 print x
, rop
, "(2 ^ " z
")" | bc
;
62 ylen = int
(rand
() * len
) + 1;
77 # --- Other operations ---
81 if (op == "-" && x < y) {