From a970b173a895ff18688cabad298edb00d1f7e846 Mon Sep 17 00:00:00 2001 From: Madhura Jayaraman Date: Mon, 8 Jan 2024 15:23:04 -0800 Subject: [PATCH] Add POSIX tests b/316954263 Change-Id: I913c2f13a4c9748ae88f47ca79ffe4500fca3a63 --- starboard/nplb/BUILD.gn | 2 + .../posix_string_compare_no_case_n_test.cc | 2 - .../posix_string_compare_no_case_test.cc | 2 - .../posix_string_format_test.cc | 50 +++++++++++++++++ .../posix_string_format_wide_test.cc | 53 +++++++++++++++++++ 5 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 starboard/nplb/posix_compliance/posix_string_format_test.cc create mode 100644 starboard/nplb/posix_compliance/posix_string_format_wide_test.cc diff --git a/starboard/nplb/BUILD.gn b/starboard/nplb/BUILD.gn index 0fc5c6ab3081..9e42544a8a68 100644 --- a/starboard/nplb/BUILD.gn +++ b/starboard/nplb/BUILD.gn @@ -137,6 +137,8 @@ target(gtest_target_type, "nplb") { "player_write_sample_test.cc", "posix_compliance/posix_string_compare_no_case_n_test.cc", "posix_compliance/posix_string_compare_no_case_test.cc", + "posix_compliance/posix_string_format_test.cc", + "posix_compliance/posix_string_format_wide_test.cc", "random_helpers.cc", "recursive_mutex_test.cc", "rwlock_test.cc", diff --git a/starboard/nplb/posix_compliance/posix_string_compare_no_case_n_test.cc b/starboard/nplb/posix_compliance/posix_string_compare_no_case_n_test.cc index 843b5800f45e..6b98cb4c6c40 100644 --- a/starboard/nplb/posix_compliance/posix_string_compare_no_case_n_test.cc +++ b/starboard/nplb/posix_compliance/posix_string_compare_no_case_n_test.cc @@ -17,7 +17,6 @@ namespace starboard { namespace nplb { -namespace posix_compliance { namespace { #if SB_API_VERSION >= 16 @@ -58,6 +57,5 @@ TEST(PosixCompareNoCaseNTest, SunnyDayCase) { #endif // SB_API_VERSION >= 16 } // namespace -} // namespace posix_compliance } // namespace nplb } // namespace starboard diff --git a/starboard/nplb/posix_compliance/posix_string_compare_no_case_test.cc b/starboard/nplb/posix_compliance/posix_string_compare_no_case_test.cc index 8de3563b7548..1417a10bf693 100644 --- a/starboard/nplb/posix_compliance/posix_string_compare_no_case_test.cc +++ b/starboard/nplb/posix_compliance/posix_string_compare_no_case_test.cc @@ -17,7 +17,6 @@ namespace starboard { namespace nplb { -namespace posix_compliance { namespace { #if SB_API_VERSION >= 16 @@ -40,6 +39,5 @@ TEST(PosixCompareNoCaseTest, SunnyDayCase) { } #endif // SB_API_VERSION >= 16 } // namespace -} // namespace posix_compliance } // namespace nplb } // namespace starboard diff --git a/starboard/nplb/posix_compliance/posix_string_format_test.cc b/starboard/nplb/posix_compliance/posix_string_format_test.cc new file mode 100644 index 000000000000..e1a793dc15c9 --- /dev/null +++ b/starboard/nplb/posix_compliance/posix_string_format_test.cc @@ -0,0 +1,50 @@ +// Copyright 2015 The Cobalt Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Here we are not trying to do anything fancy, just to really sanity check that +// this is hooked up to something. +#if SB_API_VERSION >= 16 + +#include "starboard/common/string.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace starboard { +namespace nplb { +namespace { + +int Format(char* out_buffer, size_t buffer_size, const char* format, ...) { + va_list arguments; + va_start(arguments, format); + int result = vsnprintf(out_buffer, buffer_size, format, arguments); + va_end(arguments); + return result; +} + +TEST(PosixFormatTest, SunnyDay) { + const char kExpected[] = "a1b2c3test"; + char destination[1024] = {0}; + int result = Format(destination, SB_ARRAY_SIZE(destination), "a%db%dc%d%s", 1, + 2, 3, "test"); + size_t expected_length = strlen(kExpected); + EXPECT_EQ(expected_length, result); + for (size_t i = 0; i <= expected_length; ++i) { + EXPECT_EQ(kExpected[i], destination[i]); + } +} + +} // namespace +} // namespace nplb +} // namespace starboard + // +#endif // SB_API_VERSION >= 16 diff --git a/starboard/nplb/posix_compliance/posix_string_format_wide_test.cc b/starboard/nplb/posix_compliance/posix_string_format_wide_test.cc new file mode 100644 index 000000000000..1a6e39defc38 --- /dev/null +++ b/starboard/nplb/posix_compliance/posix_string_format_wide_test.cc @@ -0,0 +1,53 @@ +// Copyright 2015 The Cobalt Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Here we are not trying to do anything fancy, just to really sanity check that +// this is hooked up to something. +#if SB_API_VERSION >= 16 + +#include "starboard/common/string.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace starboard { +namespace nplb { +namespace { + +int Format(wchar_t* out_buffer, + size_t buffer_size, + const wchar_t* format, + ...) { + va_list arguments; + va_start(arguments, format); + int result = vswprintf(out_buffer, buffer_size, format, arguments); + va_end(arguments); + return result; +} + +TEST(PosixFormatWideTest, SunnyDay) { + const wchar_t kExpected[] = L"a1b2c3test"; + wchar_t destination[1024] = {0}; + int result = Format(destination, SB_ARRAY_SIZE(destination), L"a%db%dc%d%s", + 1, 2, 3, "test"); + size_t expected_length = wcslen(kExpected); + EXPECT_EQ(expected_length, result); + for (size_t i = 0; i <= expected_length; ++i) { + EXPECT_EQ(kExpected[i], destination[i]); + } +} + +} // namespace +} // namespace nplb +} // namespace starboard + +#endif // SB_API_VERSION >= 16