this repo has no description
at trunk 52 lines 1.5 kB view raw
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