mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-06 17:16:12 +00:00
7ed5654089
The Initial Developer of the Original Code is Michael J. Fromberger <sting@linguist.dartmouth.edu>
130 lines
4.3 KiB
Perl
Executable File
130 lines
4.3 KiB
Perl
Executable File
#!/usr/linguist/bin/perl
|
|
|
|
#
|
|
# make-test-arrays
|
|
#
|
|
# Given a test-arrays file, which specifies the test suite names, the
|
|
# names of the functions which perform those test suites, and
|
|
# descriptive comments, this script generates C structures for the
|
|
# mpi-test program. The input consists of lines of the form:
|
|
#
|
|
# suite-name:function-name:comment
|
|
#
|
|
# The output is written to the standard output. Blank lines are
|
|
# ignored, and comments beginning with '#' are stripped.
|
|
#
|
|
## The contents of this file are subject to the Mozilla Public
|
|
## License Version 1.1 (the "License"); you may not use this file
|
|
## except in compliance with the License. You may obtain a copy of
|
|
## the License at http://www.mozilla.org/MPL/
|
|
##
|
|
## Software distributed under the License is distributed on an "AS
|
|
## IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
## implied. See the License for the specific language governing
|
|
## rights and limitations under the License.
|
|
##
|
|
## The Original Code is the MPI Arbitrary Precision Integer Arithmetic
|
|
## library.
|
|
##
|
|
## The Initial Developer of the Original Code is
|
|
## Michael J. Fromberger <sting@linguist.dartmouth.edu>
|
|
##
|
|
## Portions created by Michael J. Fromberger are
|
|
## Copyright (C) 1998, 2000 Michael J. Fromberger. All Rights Reserved
|
|
##
|
|
## Contributor(s):
|
|
##
|
|
## Alternatively, the contents of this file may be used under the
|
|
## terms of the GNU General Public License Version 2 or later (the
|
|
## "GPL"), in which case the provisions of the GPL are applicable
|
|
## instead of those above. If you wish to allow use of your
|
|
## version of this file only under the terms of the GPL and not to
|
|
## allow others to use your version of this file under the MPL,
|
|
## indicate your decision by deleting the provisions above and
|
|
## replace them with the notice and other provisions required by
|
|
## the GPL. If you do not delete the provisions above, a recipient
|
|
## may use your version of this file under either the MPL or the GPL.
|
|
##
|
|
# $Id: make-test-arrays,v 1.1 2000/07/14 00:44:19 nelsonb%netscape.com Exp $
|
|
#
|
|
|
|
# Read parameters from the environment, if available
|
|
$NAMEVAR = $ENV{'NAMEVAR'} || "g_names";
|
|
$COUNTVAR = $ENV{'COUNTVAR'} || "g_count";
|
|
$FUNCVAR = $ENV{'FUNCVAR'} || "g_tests";
|
|
$DESCVAR = $ENV{'DESCVAR'} || "g_descs";
|
|
$FUNCLEN = 13;
|
|
$NAMELEN = 18;
|
|
$DESCLEN = 45;
|
|
|
|
#------------------------------------------------------------------------
|
|
# Suck in input from the files on the command line, or standard input
|
|
while(<>) {
|
|
chomp;
|
|
s/\#.*$//;
|
|
next if /^\s*$/;
|
|
|
|
($suite, $func, $desc) = split(/:/, $_);
|
|
|
|
$tmp = { "suite" => $suite,
|
|
"func" => $func,
|
|
"desc" => $desc };
|
|
|
|
push(@item, $tmp);
|
|
}
|
|
$count = scalar(@item);
|
|
$last = pop(@item);
|
|
|
|
#------------------------------------------------------------------------
|
|
# Output the table of names
|
|
print "/* Table mapping test suite names to index numbers */\n";
|
|
printf("const int %s = %d;\n", $COUNTVAR, $count);
|
|
printf("const char *%s[] = {\n", $NAMEVAR);
|
|
|
|
foreach $elt (@item) {
|
|
printf(" \"%s\",%s/* %s%s */\n", $elt->{"suite"},
|
|
" " x ($NAMELEN - length($elt->{"suite"})),
|
|
$elt->{"desc"},
|
|
" " x ($DESCLEN - length($elt->{"desc"})));
|
|
}
|
|
printf(" \"%s\" %s/* %s%s */\n", $last->{"suite"},
|
|
" " x ($NAMELEN - length($last->{"suite"})),
|
|
$last->{"desc"},
|
|
" " x ($DESCLEN - length($last->{"desc"})));
|
|
print "};\n\n";
|
|
|
|
#------------------------------------------------------------------------
|
|
# Output the driver function prototypes
|
|
print "/* Test function prototypes */\n";
|
|
foreach $elt (@item, $last) {
|
|
printf("int %s(void);\n", $elt->{"func"});
|
|
}
|
|
print "\n";
|
|
|
|
#------------------------------------------------------------------------
|
|
# Output the table of functions
|
|
print "/* Table mapping index numbers to functions */\n";
|
|
printf("int (*%s[])(void) = {\n ", $FUNCVAR);
|
|
$brk = 0;
|
|
|
|
foreach $elt (@item) {
|
|
print($elt->{"func"}, ", ",
|
|
" " x ($FUNCLEN - length($elt->{"func"})));
|
|
$brk = ($brk + 1) & 3;
|
|
print "\n " unless($brk);
|
|
}
|
|
print $last->{"func"}, "\n};\n\n";
|
|
|
|
#------------------------------------------------------------------------
|
|
# Output the table of descriptions
|
|
print "/* Table mapping index numbers to descriptions */\n";
|
|
printf("const char *%s[] = {\n", $DESCVAR);
|
|
|
|
foreach $elt (@item) {
|
|
printf(" \"%s\",\n", $elt->{"desc"});
|
|
}
|
|
printf(" \"%s\"\n};\n\n", $last->{"desc"});
|
|
|
|
exit 0;
|
|
|