this repo has no description
1// Copyright (c) Facebook, Inc. and its affiliates. (http://www.facebook.com)
2#include <cstring>
3
4#include "Python.h"
5#include "gtest/gtest.h"
6
7#include "capi-fixture.h"
8#include "capi-testing.h"
9
10namespace py {
11namespace testing {
12
13using OSExtensionApiTest = ExtensionApi;
14
15TEST_F(OSExtensionApiTest, StricmpIgnoresCase) {
16 EXPECT_EQ(PyOS_stricmp("foo", "FOO"), 0);
17 EXPECT_EQ(PyOS_stricmp("Foo", "fOO"), 0);
18 EXPECT_EQ(PyOS_stricmp("FoO", "fOo"), 0);
19
20 EXPECT_LT(PyOS_stricmp("fob", "FOO"), 0);
21 EXPECT_GT(PyOS_stricmp("food", "FoO BaR"), 0);
22}
23
24TEST_F(OSExtensionApiTest, StricmpComparesStrings) {
25 EXPECT_GT(PyOS_stricmp("food", "foo"), 0);
26 EXPECT_EQ(PyOS_stricmp("foo", "foo"), 0);
27 EXPECT_LT(PyOS_stricmp("foo", "food"), 0);
28}
29
30TEST_F(OSExtensionApiTest, StrnicmpIgnoresCase) {
31 EXPECT_EQ(PyOS_strnicmp("foo", "FOO", 3), 0);
32 EXPECT_EQ(PyOS_strnicmp("Foo", "fOO", 3), 0);
33 EXPECT_EQ(PyOS_strnicmp("FoO", "fOo", 3), 0);
34
35 EXPECT_LT(PyOS_strnicmp("fob", "FOO", 3), 0);
36 EXPECT_GT(PyOS_strnicmp("food", "FoO BaR", 7), 0);
37}
38
39TEST_F(OSExtensionApiTest, StrnicmpComparesStrings) {
40 EXPECT_GT(PyOS_strnicmp("food", "foo", 5), 0);
41 EXPECT_EQ(PyOS_strnicmp("foo", "foo", 5), 0);
42 EXPECT_LT(PyOS_strnicmp("foo", "food", 5), 0);
43}
44
45TEST_F(OSExtensionApiTest, StrnicmpCutsOffAtSize) {
46 EXPECT_EQ(PyOS_strnicmp("food", "foo", 3), 0);
47 EXPECT_EQ(PyOS_strnicmp("foo", "foo", 3), 0);
48 EXPECT_EQ(PyOS_strnicmp("foo", "food", 3), 0);
49}
50
51} // namespace testing
52} // namespace py