1
/*===========================================================================
2
* Filename : test-strcasecmp.c
3
* About : unit test for scm_strcasecmp()
5
* Copyright (C) 2006 YAMAMOTO Kengo <yamaken AT bp.iij4u.or.jp>
6
* Copyright (c) 2007-2008 SigScheme Project <uim-en AT googlegroups.com>
10
* Redistribution and use in source and binary forms, with or without
11
* modification, are permitted provided that the following conditions
14
* 1. Redistributions of source code must retain the above copyright
15
* notice, this list of conditions and the following disclaimer.
16
* 2. Redistributions in binary form must reproduce the above copyright
17
* notice, this list of conditions and the following disclaimer in the
18
* documentation and/or other materials provided with the distribution.
19
* 3. Neither the name of authors nor the names of its contributors
20
* may be used to endorse or promote products derived from this software
21
* without specific prior written permission.
23
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
24
* IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
25
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
26
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
27
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
29
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
30
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
31
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
32
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
33
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
===========================================================================*/
36
#include "sscm-test.h"
37
#include "sigschemeinternal.h"
39
int scm_strcasecmp(const char *s1, const char *s2);
41
#include "strcasecmp.c"
43
TST_CASE("strcasecmp ==")
45
TST_TN_TRUE (0 == scm_strcasecmp("", ""));
46
TST_TN_TRUE (0 == scm_strcasecmp("a", "a"));
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_FALSE(0 == scm_strcasecmp("", "a"));
51
TST_TN_FALSE(0 == scm_strcasecmp("a", ""));
53
TST_TN_TRUE (0 == scm_strcasecmp("aa", "aa"));
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("abc", "abc"));
61
TST_TN_TRUE (0 == scm_strcasecmp("abc", "ABC"));
62
TST_TN_TRUE (0 == scm_strcasecmp("abc", "ABc"));
63
TST_TN_FALSE(0 == scm_strcasecmp("abc", "abcd"));
64
TST_TN_TRUE (0 == scm_strcasecmp("ABC", "abc"));
65
TST_TN_TRUE (0 == scm_strcasecmp("ABc", "abc"));
66
TST_TN_FALSE(0 == scm_strcasecmp("abcd", "abc"));
67
TST_TN_FALSE(0 == scm_strcasecmp("abC", "abd"));
68
TST_TN_FALSE(0 == scm_strcasecmp("abd", "abC"));
71
TST_CASE("strcasecmp <")
73
TST_TN_FALSE(0 < scm_strcasecmp("", ""));
74
TST_TN_FALSE(0 < scm_strcasecmp("a", "a"));
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"));
79
TST_TN_TRUE (0 < scm_strcasecmp("a", ""));
81
TST_TN_FALSE(0 < scm_strcasecmp("aa", "aa"));
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("abc", "abc"));
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", "abcd"));
92
TST_TN_FALSE(0 < scm_strcasecmp("ABC", "abc"));
93
TST_TN_FALSE(0 < scm_strcasecmp("ABc", "abc"));
94
TST_TN_TRUE (0 < scm_strcasecmp("abcd", "abc"));
95
TST_TN_FALSE(0 < scm_strcasecmp("abC", "abd"));
96
TST_TN_TRUE (0 < scm_strcasecmp("abd", "abC"));
99
TST_CASE("strcasecmp >")
101
TST_TN_FALSE(0 > scm_strcasecmp("", ""));
102
TST_TN_FALSE(0 > scm_strcasecmp("a", "a"));
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_TRUE (0 > scm_strcasecmp("", "a"));
107
TST_TN_FALSE(0 > scm_strcasecmp("a", ""));
109
TST_TN_FALSE(0 > scm_strcasecmp("aa", "aa"));
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("abc", "abc"));
117
TST_TN_FALSE(0 > scm_strcasecmp("abc", "ABC"));
118
TST_TN_FALSE(0 > scm_strcasecmp("abc", "ABc"));
119
TST_TN_TRUE (0 > scm_strcasecmp("abc", "abcd"));
120
TST_TN_FALSE(0 > scm_strcasecmp("ABC", "abc"));
121
TST_TN_FALSE(0 > scm_strcasecmp("ABc", "abc"));
122
TST_TN_FALSE(0 > scm_strcasecmp("abcd", "abc"));
123
TST_TN_TRUE (0 > scm_strcasecmp("abC", "abd"));
124
TST_TN_FALSE(0 > scm_strcasecmp("abd", "abC"));