make-test-arrays

来自「支持SSL v2/v3, TLS, PKCS #5, PKCS #7, PKCS」· 代码 · 共 130 行

TXT
130
字号
#!/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 inputwhile(<>) {    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 namesprint "/* 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 prototypesprint "/* Test function prototypes */\n";foreach $elt (@item, $last) {    printf("int  %s(void);\n", $elt->{"func"});}print "\n";#------------------------------------------------------------------------# Output the table of functionsprint "/* 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 descriptionsprint "/* 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;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?