LCOV - GNU Libidn - tests/tst_strerror.c

LCOV - code coverage report
Current view: top level - tests - tst_strerror.c (source / functions) Hit Total Coverage
Test: GNU Libidn Lines: 74 101 73.3 %
Date: 2020年07月22日 17:53:13 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

 Line data Source code
 1  : /* tst_strerror.c --- Self tests for *_strerror().
 2  : * Copyright (C) 2004-2020 Simon Josefsson
 3  : *
 4  : * This file is part of GNU Libidn.
 5  : *
 6  : * This program is free software: you can redistribute it and/or modify
 7  : * it under the terms of the GNU General Public License as published by
 8  : * the Free Software Foundation, either version 3 of the License, or
 9  : * (at your option) any later version.
 10  : *
 11  : * This program is distributed in the hope that it will be useful,
 12  : * but WITHOUT ANY WARRANTY; without even the implied warranty of
 13  : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 14  : * GNU General Public License for more details.
 15  : *
 16  : * You should have received a copy of the GNU General Public License
 17  : * along with this program. If not, see <http://www.gnu.org/licenses/>.
 18  : *
 19  : */
 20  : 
 21  : #ifdef HAVE_CONFIG_H
 22  : # include "config.h"
 23  : #endif
 24  : 
 25  : #include <stdio.h>
 26  : #include <stdlib.h>
 27  : #include <stdarg.h>
 28  : #include <string.h>
 29  : 
 30  : #include <idna.h>
 31  : #include <pr29.h>
 32  : #include <punycode.h>
 33  : #include <stringprep.h>
 34  : #include <tld.h>
 35  : 
 36  : #include "utils.h"
 37  : 
 38  : #define SUCCESS "Success"
 39  : #define UNKNOWN "Unknown error"
 40  : 
 41  : void
 42  1 : doit (void)
 43  : {
 44  : const char *p;
 45  : 
 46  : /* Test success. */
 47  : 
 48  1 : p = idna_strerror (0);
 49  1 : if (strcmp (p, SUCCESS) != 0)
 50  0 : fail ("idna_strerror (0) failed: %s\n", p);
 51  1 : if (debug)
 52  0 : printf ("idna_strerror (0) OK\n");
 53  : 
 54  1 : p = pr29_strerror (0);
 55  1 : if (strcmp (p, SUCCESS) != 0)
 56  0 : fail ("pr29_strerror (0) failed: %s\n", p);
 57  1 : if (debug)
 58  0 : printf ("pr29_strerror (0) OK\n");
 59  : 
 60  1 : p = punycode_strerror (0);
 61  1 : if (strcmp (p, SUCCESS) != 0)
 62  0 : fail ("punycode_strerror (0) failed: %s\n", p);
 63  1 : if (debug)
 64  0 : printf ("punycode_strerror (0) OK\n");
 65  : 
 66  1 : p = stringprep_strerror (0);
 67  1 : if (strcmp (p, SUCCESS) != 0)
 68  0 : fail ("stringprep_strerror (0) failed: %s\n", p);
 69  1 : if (debug)
 70  0 : printf ("stringprep_strerror (0) OK\n");
 71  : 
 72  1 : p = tld_strerror (0);
 73  1 : if (strcmp (p, SUCCESS) != 0)
 74  0 : fail ("tld_strerror (0) failed: %s\n", p);
 75  1 : if (debug)
 76  0 : printf ("tld_strerror (0) OK\n");
 77  : 
 78  : /* Test unknown error. */
 79  : 
 80  1 : p = idna_strerror (42);
 81  1 : if (strcmp (p, UNKNOWN) != 0)
 82  0 : fail ("idna_strerror (42) failed: %s\n", p);
 83  1 : if (debug)
 84  0 : printf ("idna_strerror (42) OK\n");
 85  : 
 86  1 : p = pr29_strerror (42);
 87  1 : if (strcmp (p, UNKNOWN) != 0)
 88  0 : fail ("pr29_strerror (42) failed: %s\n", p);
 89  1 : if (debug)
 90  0 : printf ("pr29_strerror (42) OK\n");
 91  : 
 92  1 : p = punycode_strerror (42);
 93  1 : if (strcmp (p, UNKNOWN) != 0)
 94  0 : fail ("punycode_strerror (42) failed: %s\n", p);
 95  1 : if (debug)
 96  0 : printf ("punycode_strerror (42) OK\n");
 97  : 
 98  1 : p = stringprep_strerror (42);
 99  1 : if (strcmp (p, UNKNOWN) != 0)
 100  0 : fail ("stringprep_strerror (42) failed: %s\n", p);
 101  1 : if (debug)
 102  0 : printf ("stringprep_strerror (42) OK\n");
 103  : 
 104  1 : p = tld_strerror (42);
 105  1 : if (strcmp (p, UNKNOWN) != 0)
 106  0 : fail ("tld_strerror (42) failed: %s\n", p);
 107  1 : if (debug)
 108  0 : printf ("tld_strerror (42) OK\n");
 109  : 
 110  : /* Iterate through all error codes. */
 111  : 
 112  : {
 113  : unsigned i;
 114  1 : const char *last_p = NULL;
 115  : 
 116  1 : for (i = 0;; i++)
 117  : {
 118  16 : p = idna_strerror (i);
 119  16 : if (p == last_p)
 120  : {
 121  2 : if (i == 11)
 122  : {
 123  1 : i = 200;
 124  1 : continue;
 125  : }
 126  1 : break;
 127  : }
 128  14 : if (debug)
 129  0 : printf ("idna %u: %s\n", i, p);
 130  14 : last_p = p;
 131  : }
 132  : }
 133  : 
 134  : {
 135  : unsigned i;
 136  1 : const char *last_p = NULL;
 137  : 
 138  1 : for (i = 0;; i++)
 139  : {
 140  5 : p = pr29_strerror (i);
 141  5 : if (p == last_p)
 142  1 : break;
 143  4 : if (debug)
 144  0 : printf ("pr29 %u: %s\n", i, p);
 145  4 : last_p = p;
 146  : }
 147  : }
 148  : 
 149  : {
 150  : unsigned i;
 151  1 : const char *last_p = NULL;
 152  : 
 153  1 : for (i = 0;; i++)
 154  : {
 155  6 : p = punycode_strerror (i);
 156  6 : if (p == last_p)
 157  1 : break;
 158  5 : if (debug)
 159  0 : printf ("punycode %u: %s\n", i, p);
 160  5 : last_p = p;
 161  : }
 162  : }
 163  : 
 164  : {
 165  : unsigned i;
 166  1 : const char *last_p = NULL;
 167  : 
 168  1 : for (i = 0;; i++)
 169  : {
 170  15 : p = stringprep_strerror (i);
 171  15 : if (p == last_p)
 172  : {
 173  2 : if (i == 7)
 174  : {
 175  1 : i = 99;
 176  1 : continue;
 177  : }
 178  1 : else if (i == 105)
 179  : {
 180  0 : i = 199;
 181  0 : continue;
 182  : }
 183  1 : break;
 184  : }
 185  13 : if (debug)
 186  0 : printf ("stringprep %u: %s\n", i, p);
 187  13 : last_p = p;
 188  : }
 189  : }
 190  : 
 191  : {
 192  : unsigned i;
 193  1 : const char *last_p = NULL;
 194  : 
 195  1 : for (i = 0;; i++)
 196  : {
 197  8 : p = tld_strerror (i);
 198  8 : if (p == last_p)
 199  1 : break;
 200  7 : if (debug)
 201  0 : printf ("tld %u: %s\n", i, p);
 202  7 : last_p = p;
 203  : }
 204  : }
 205  1 : }

Generated by: LCOV version 1.13

AltStyle によって変換されたページ (->オリジナル) /