nsprpub/pr/tests/prftest1.c

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 /*
     7 ** File:	prftest1.c
     8 ** Description:
     9 **     This is a simple test of the PR_snprintf() function defined
    10 **     in prprf.c.
    11 **
    12 ** Modification History:
    13 ** 14-May-97 AGarcia- Converted the test to accomodate the debug_mode flag.
    14 **	         The debug mode will print all of the printfs associated with this test.
    15 **			 The regress mode will be the default mode. Since the regress tool limits
    16 **           the output to a one line status:PASS or FAIL,all of the printf statements
    17 **			 have been handled with an if (debug_mode) statement. 
    18 ***********************************************************************/
    19 /***********************************************************************
    20 ** Includes
    21 ***********************************************************************/
    22 /* Used to get the command line option */
    23 #include "plgetopt.h"
    24 #include "prttools.h"
    26 #include "prinit.h"
    27 #include "prlong.h"
    28 #include "prprf.h"
    30 #include <string.h>
    32 #define BUF_SIZE 128
    34 /***********************************************************************
    35 ** PRIVATE FUNCTION:    Test_Result
    36 ** DESCRIPTION: Used in conjunction with the regress tool, prints out the
    37 **				status of the test case.
    38 ** INPUTS:      PASS/FAIL
    39 ** OUTPUTS:     None
    40 ** RETURN:      None
    41 ** SIDE EFFECTS:
    42 **      
    43 ** RESTRICTIONS:
    44 **      None
    45 ** MEMORY:      NA
    46 ** ALGORITHM:   Determine what the status is and print accordingly.
    47 **      
    48 ***********************************************************************/
    51 static void Test_Result (int result)
    52 {
    53 	if (result == PASS)
    54 		printf ("PASS\n");
    55 	else
    56 		printf ("FAIL\n");
    57 }
    59 int main(int argc, char **argv)
    60 {
    61     PRInt16 i16;
    62     PRIntn n;
    63     PRInt32 i32;
    64     PRInt64 i64;
    65     char buf[BUF_SIZE];
    66     char answer[BUF_SIZE];
    67     int i;
    69 	/* The command line argument: -d is used to determine if the test is being run
    70 	in debug mode. The regress tool requires only one line output:PASS or FAIL.
    71 	All of the printfs associated with this test has been handled with a if (debug_mode)
    72 	test.
    73 	Usage: test_name -d
    74 	*/
    75 	PLOptStatus os;
    76 	PLOptState *opt = PL_CreateOptState(argc, argv, "d:");
    77 	while (PL_OPT_EOL != (os = PL_GetNextOpt(opt)))
    78     {
    79 		if (PL_OPT_BAD == os) continue;
    80         switch (opt->option)
    81         {
    82         case 'd':  /* debug mode */
    83 			debug_mode = 1;
    84             break;
    85          default:
    86             break;
    87         }
    88     }
    89 	PL_DestroyOptState(opt);
    91 	/* main test */
    92     PR_STDIO_INIT();
    94     i16 = -1;
    95     n = -1;
    96     i32 = -1;
    97     LL_I2L(i64, i32);
    99     PR_snprintf(buf, BUF_SIZE, "%hx %x %lx %llx", i16, n, i32, i64);
   100     strcpy(answer, "ffff ");
   101     for (i = PR_BYTES_PER_INT * 2; i; i--) {
   102 	strcat(answer, "f");
   103     }
   104     strcat(answer, " ffffffff ffffffffffffffff");
   106     if (!strcmp(buf, answer)) {
   107 	if (debug_mode) printf("PR_snprintf test 1 passed\n");
   108 	else Test_Result (PASS);
   109     } else {
   110 		if (debug_mode) {
   111 			printf("PR_snprintf test 1 failed\n");
   112 			printf("Converted string is %s\n", buf);
   113 			printf("Should be %s\n", answer);
   114 		}
   115 		else
   116 			Test_Result (FAIL);
   117     }
   119     return 0;
   120 }

mercurial