// Copyright (c) ONNX Project Contributors // // SPDX-License-Identifier: Apache-2.0 #ifdef _WIN32 #include #include "gtest/gtest.h" #include "onnx/common/path.h" namespace ONNX_NAMESPACE::Test { TEST(UTF8Test, WideStringConversion) { std::string utf8_str(u8"世界,你好!"); EXPECT_EQ(ONNX_NAMESPACE::wstring_to_utf8str(ONNX_NAMESPACE::utf8str_to_wstring(utf8_str)), utf8_str); } #ifndef ONNX_NO_EXCEPTIONS TEST(UTF8Test, InvalidUtf8Rejected) { // Raw wchar_t bytes are not valid UTF-8 — must be rejected (fail-closed). std::string utf8_str(u8"世界,你好!"); auto wstr = ONNX_NAMESPACE::utf8str_to_wstring(utf8_str); std::string raw_bytes(reinterpret_cast(wstr.c_str()), sizeof(std::wstring::value_type) * wstr.size()); EXPECT_THROW(ONNX_NAMESPACE::utf8str_to_wstring(raw_bytes), ONNX_NAMESPACE::checker::ValidationError); } #endif } // namespace ONNX_NAMESPACE::Test #endif