#include "util/misc/uuid.h"
#include <string.h>
#include <sys/types.h>
#include <iterator>
#include <string>
#include <string_view>
#include "base/format_macros.h"
#include "base/scoped_generic.h"
#include "base/strings/stringprintf.h"
#include "build/build_config.h"
#include "gtest/gtest.h"
namespace crashpad {
namespace test {
namespace {
TEST(UUID, UUID) { … }
TEST(UUID, FromString) { … }
#if BUILDFLAG(IS_WIN)
TEST(UUID, FromSystem) {
::GUID system_uuid;
ASSERT_EQ(UuidCreate(&system_uuid), RPC_S_OK);
UUID uuid;
uuid.InitializeFromSystemUUID(&system_uuid);
RPC_WSTR system_string;
ASSERT_EQ(UuidToString(&system_uuid, &system_string), RPC_S_OK);
struct ScopedRpcStringFreeTraits {
static RPC_WSTR* InvalidValue() { return nullptr; }
static void Free(RPC_WSTR* rpc_string) {
EXPECT_EQ(RpcStringFree(rpc_string), RPC_S_OK);
}
};
using ScopedRpcString =
base::ScopedGeneric<RPC_WSTR*, ScopedRpcStringFreeTraits>;
ScopedRpcString scoped_system_string(&system_string);
EXPECT_EQ(uuid.ToWString(), reinterpret_cast<wchar_t*>(system_string));
}
#endif
}
}
}