Changeset 3007 for branches/libc-0.6/src


Ignore:
Timestamp:
Apr 7, 2007, 6:00:51 AM (18 years ago)
Author:
bird
Message:

a quick tempnam testcase.

Location:
branches/libc-0.6/src/libctests/libc
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/libc-0.6/src/libctests/libc/Makefile

    r3000 r3007  
    8888        smoketests/socket-1.c \
    8989        smoketests/tls-1.c \
     90        smoketests/tempnam-1.c \
    9091        smoketests/tmpfile-1.c \
    9192        smoketests/usleep-1.c \
  • branches/libc-0.6/src/libctests/libc/smoketests/tempnam-1.c

    r3001 r3007  
    11#include <stdio.h>
    2 #include <locale.h>
    3 #include <ctype.h>
    42#include <errno.h>
    53#include <string.h>
     
    86
    97
    10 static int tst(const char *pszLocale)
    11 {
    12     char sz1[16];
    13     char sz2[16];
    14     unsigned i, j;
    15     int rc;
    16     int cErrors = 0;
    17 
    18     if (pszLocale)
    19     {
    20         const char *psz = setlocale(LC_ALL, pszLocale);
    21         if (!psz)
    22         {
    23             printf(TESTCASENAME ": FAILURE: setlocale(LC_ALL, %s) -> %s errno=%d\n", pszLocale, psz, errno);
    24             return 1;
    25         }
    26     }
    27 
    28     /* very basic test. */
    29     for (i = 0; i < 256; i++)
    30     {
    31         sz1[0] = sz2[0] = i;
    32         sz1[1] = sz2[1] = '\0';
    33         rc = strcoll(sz1, sz2);
    34         if (rc)
    35         {
    36             printf(TESTCASENAME ": FAILURE: %d != %d; rc=%d (locale=%s)\n", i, i, rc, pszLocale);
    37             return 1;
    38         }
    39     }
    40 
    41     /*  basic test. */
    42     for (i = 'A'; i <= 'Z' && cErrors < 32; i++)
    43     {
    44         sz2[0] = i;
    45         sz2[1] = sz1[1] = '\0';
    46 
    47         /* smaller */
    48         for (j = 'A'; j < i && cErrors < 32; j++)
    49         {
    50             sz1[0] = j;
    51             rc = strcoll(sz1, sz2);
    52             if (rc >= 0)
    53             {
    54                 printf(TESTCASENAME ": FAILURE: %s >= %s; rc=%d (locale=%s)\n", sz1, sz2, rc, pszLocale);
    55                 cErrors++;
    56             }
    57         }
    58 
    59         /* larger */
    60         for (j = i + 1; j <= 'Z' && cErrors < 32; j++)
    61         {
    62             sz1[0] = j;
    63             rc = strcoll(sz1, sz2);
    64             if (rc <= 0)
    65             {
    66                 printf(TESTCASENAME ": FAILURE: %s <= %s; rc=%d (locale=%s)\n", sz1, sz2, rc, pszLocale);
    67                 cErrors++;
    68             }
    69         }
    70 
    71     }
    72 
    73     for (i = 'a'; i <= 'z' && cErrors < 32; i++)
    74     {
    75         sz2[0] = i;
    76         sz2[1] = sz1[1] = '\0';
    77 
    78         /* smaller */
    79         for (j = 'a'; j < i && cErrors < 32; j++)
    80         {
    81             sz1[0] = j;
    82             rc = strcoll(sz1, sz2);
    83             if (rc >= 0)
    84             {
    85                 printf(TESTCASENAME ": FAILURE: %s >= %s; rc=%d (locale=%s)\n", sz1, sz2, rc, pszLocale);
    86                 cErrors++;
    87             }
    88         }
    89 
    90         /* larger */
    91         for (j = i + 1; j <= 'z' && cErrors < 32; j++)
    92         {
    93             sz1[0] = j;
    94             rc = strcoll(sz1, sz2);
    95             if (rc <= 0)
    96             {
    97                 printf(TESTCASENAME ": FAILURE: %s <= %s; rc=%d (locale=%s)\n", sz1, sz2, rc, pszLocale);
    98                 cErrors++;
    99             }
    100         }
    101 
    102     }
    103 
    104     return cErrors;
    105 }
    106 
    1078int main()
    1089{
    10910    int rc = 0;
     11    char *psz;
    11012
    111     rc += tst(NULL);
    112     rc += tst("POSIX");
    113     rc += tst("C");
    114 #ifdef OTHER
    115     rc += tst("en_US.IBM850");
    116 #else
    117     rc += tst("en_US.ISO8859-1");
    118 #endif
    119     rc += tst("C");
    120     rc += tst("en_US");
    121     rc += tst("de_DE");
    122     rc += tst("no_NO");
     13    errno = 0;
     14    psz = tempnam(NULL, NULL);
     15    if (psz && *psz)
     16        printf(TESTCASENAME ": tempnam(NULL, NULL) -> %s (errno=%d)\n", psz, errno);
     17    else
     18    {
     19        printf(TESTCASENAME ": FAILURE: tempnam(NULL, NULL) -> %p (%s) errno=%d\n", psz, psz, errno);
     20        rc++;
     21    }
    12322
    12423    /* .. done .. */
Note: See TracChangeset for help on using the changeset viewer.