mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 22:24:54 +00:00
Add a UTF8 to UTF16 conversion wrapper for use in the pdb dumper
This can also be used instead of the WindowsSupport.h ConvertUTF8ToUTF16 helpers, but that will require massaging some character types. The Windows support routines want wchar_t output, but wchar_t is often 32 bits on non-Windows OSs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227122 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/Support/ConvertUTF.h"
|
||||
#include "llvm/Support/Format.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include <string>
|
||||
#include <utility>
|
||||
@@ -37,6 +38,19 @@ TEST(ConvertUTFTest, ConvertUTF16BigEndianToUTF8String) {
|
||||
EXPECT_EQ(Expected, Result);
|
||||
}
|
||||
|
||||
TEST(ConvertUTFTest, ConvertUTF8ToUTF16String) {
|
||||
// Src is the look of disapproval.
|
||||
static const char Src[] = "\xe0\xb2\xa0_\xe0\xb2\xa0";
|
||||
StringRef Ref(Src, sizeof(Src) - 1);
|
||||
SmallVector<UTF16, 5> Result;
|
||||
bool Success = convertUTF8ToUTF16String(Ref, Result);
|
||||
EXPECT_TRUE(Success);
|
||||
static const UTF16 Expected[] = {0x0CA0, 0x005f, 0x0CA0, 0};
|
||||
ASSERT_EQ(3, Result.size());
|
||||
for (int I = 0, E = 3; I != E; ++I)
|
||||
EXPECT_EQ(Expected[I], Result[I]);
|
||||
}
|
||||
|
||||
TEST(ConvertUTFTest, OddLengthInput) {
|
||||
std::string Result;
|
||||
bool Success = convertUTF16ToUTF8String(makeArrayRef("xxxxx", 5), Result);
|
||||
|
Reference in New Issue
Block a user