1
#line 1 "test-strcasecmp.c"
2
/*===========================================================================
3
* Filename : test-strcasecmp.c
4
* About : unit test for scm_strcasecmp()
6
* Copyright (C) 2006 YAMAMOTO Kengo <yamaken AT bp.iij4u.or.jp>
7
* Copyright (c) 2007 SigScheme Project <uim AT freedesktop.org>
11
* Redistribution and use in source and binary forms, with or without
12
* modification, are permitted provided that the following conditions
15
* 1. Redistributions of source code must retain the above copyright
16
* notice, this list of conditions and the following disclaimer.
17
* 2. Redistributions in binary form must reproduce the above copyright
18
* notice, this list of conditions and the following disclaimer in the
19
* documentation and/or other materials provided with the distribution.
20
* 3. Neither the name of authors nor the names of its contributors
21
* may be used to endorse or promote products derived from this software
22
* without specific prior written permission.
24
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
25
* IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
26
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
27
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
28
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
30
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
31
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
32
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
33
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
34
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35
===========================================================================*/
37
#include "sscm-test.h"
38
#include "sigschemeinternal.h"
40
int scm_strcasecmp(const char *s1, const char *s2);
42
#include "strcasecmp.c"
44
TST_CASE(tst_1, "strcasecmp ==")
46
TST_TN_TRUE (0 == scm_strcasecmp("", ""));
47
TST_TN_TRUE (0 == scm_strcasecmp("a", "a"));
48
TST_TN_TRUE (0 == scm_strcasecmp("a", "A"));
49
TST_TN_TRUE (0 == scm_strcasecmp("A", "a"));
50
TST_TN_TRUE (0 == scm_strcasecmp("A", "A"));
51
TST_TN_FALSE(0 == scm_strcasecmp("", "a"));
52
TST_TN_FALSE(0 == scm_strcasecmp("a", ""));
54
TST_TN_TRUE (0 == scm_strcasecmp("aa", "aa"));
55
TST_TN_TRUE (0 == scm_strcasecmp("aa", "AA"));
56
TST_TN_TRUE (0 == scm_strcasecmp("aa", "aA"));
57
TST_TN_TRUE (0 == scm_strcasecmp("aa", "Aa"));
58
TST_TN_TRUE (0 == scm_strcasecmp("AA", "aa"));
59
TST_TN_TRUE (0 == scm_strcasecmp("aA", "aa"));
60
TST_TN_TRUE (0 == scm_strcasecmp("Aa", "aa"));
61
TST_TN_TRUE (0 == scm_strcasecmp("abc", "abc"));
62
TST_TN_TRUE (0 == scm_strcasecmp("abc", "ABC"));
63
TST_TN_TRUE (0 == scm_strcasecmp("abc", "ABc"));
64
TST_TN_FALSE(0 == scm_strcasecmp("abc", "abcd"));
65
TST_TN_TRUE (0 == scm_strcasecmp("ABC", "abc"));
66
TST_TN_TRUE (0 == scm_strcasecmp("ABc", "abc"));
67
TST_TN_FALSE(0 == scm_strcasecmp("abcd", "abc"));
68
TST_TN_FALSE(0 == scm_strcasecmp("abC", "abd"));
69
TST_TN_FALSE(0 == scm_strcasecmp("abd", "abC"));
72
TST_CASE(tst_2, "strcasecmp <")
74
TST_TN_FALSE(0 < scm_strcasecmp("", ""));
75
TST_TN_FALSE(0 < scm_strcasecmp("a", "a"));
76
TST_TN_FALSE(0 < scm_strcasecmp("a", "A"));
77
TST_TN_FALSE(0 < scm_strcasecmp("A", "a"));
78
TST_TN_FALSE(0 < scm_strcasecmp("A", "A"));
79
TST_TN_FALSE(0 < scm_strcasecmp("", "a"));
80
TST_TN_TRUE (0 < scm_strcasecmp("a", ""));
82
TST_TN_FALSE(0 < scm_strcasecmp("aa", "aa"));
83
TST_TN_FALSE(0 < scm_strcasecmp("aa", "AA"));
84
TST_TN_FALSE(0 < scm_strcasecmp("aa", "aA"));
85
TST_TN_FALSE(0 < scm_strcasecmp("aa", "Aa"));
86
TST_TN_FALSE(0 < scm_strcasecmp("AA", "aa"));
87
TST_TN_FALSE(0 < scm_strcasecmp("aA", "aa"));
88
TST_TN_FALSE(0 < scm_strcasecmp("Aa", "aa"));
89
TST_TN_FALSE(0 < scm_strcasecmp("abc", "abc"));
90
TST_TN_FALSE(0 < scm_strcasecmp("abc", "ABC"));
91
TST_TN_FALSE(0 < scm_strcasecmp("abc", "ABc"));
92
TST_TN_FALSE(0 < scm_strcasecmp("abc", "abcd"));
93
TST_TN_FALSE(0 < scm_strcasecmp("ABC", "abc"));
94
TST_TN_FALSE(0 < scm_strcasecmp("ABc", "abc"));
95
TST_TN_TRUE (0 < scm_strcasecmp("abcd", "abc"));
96
TST_TN_FALSE(0 < scm_strcasecmp("abC", "abd"));
97
TST_TN_TRUE (0 < scm_strcasecmp("abd", "abC"));
100
TST_CASE(tst_3, "strcasecmp >")
102
TST_TN_FALSE(0 > scm_strcasecmp("", ""));
103
TST_TN_FALSE(0 > scm_strcasecmp("a", "a"));
104
TST_TN_FALSE(0 > scm_strcasecmp("a", "A"));
105
TST_TN_FALSE(0 > scm_strcasecmp("A", "a"));
106
TST_TN_FALSE(0 > scm_strcasecmp("A", "A"));
107
TST_TN_TRUE (0 > scm_strcasecmp("", "a"));
108
TST_TN_FALSE(0 > scm_strcasecmp("a", ""));
110
TST_TN_FALSE(0 > scm_strcasecmp("aa", "aa"));
111
TST_TN_FALSE(0 > scm_strcasecmp("aa", "AA"));
112
TST_TN_FALSE(0 > scm_strcasecmp("aa", "aA"));
113
TST_TN_FALSE(0 > scm_strcasecmp("aa", "Aa"));
114
TST_TN_FALSE(0 > scm_strcasecmp("AA", "aa"));
115
TST_TN_FALSE(0 > scm_strcasecmp("aA", "aa"));
116
TST_TN_FALSE(0 > scm_strcasecmp("Aa", "aa"));
117
TST_TN_FALSE(0 > scm_strcasecmp("abc", "abc"));
118
TST_TN_FALSE(0 > scm_strcasecmp("abc", "ABC"));
119
TST_TN_FALSE(0 > scm_strcasecmp("abc", "ABc"));
120
TST_TN_TRUE (0 > scm_strcasecmp("abc", "abcd"));
121
TST_TN_FALSE(0 > scm_strcasecmp("ABC", "abc"));
122
TST_TN_FALSE(0 > scm_strcasecmp("ABc", "abc"));
123
TST_TN_FALSE(0 > scm_strcasecmp("abcd", "abc"));
124
TST_TN_TRUE (0 > scm_strcasecmp("abC", "abd"));
125
TST_TN_FALSE(0 > scm_strcasecmp("abd", "abC"));