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 + -
显示快捷键?