blob: 1145266b3755ab9fb910755ab0c732affd8569b3 [file] [log] [blame]
// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <gtest/gtest.h>
#include "magma_util/status.h"
#if defined(__Fuchsia__)
#include <fuchsia/gpu/magma/llcpp/fidl.h>
using FidlStatus = llcpp::fuchsia::gpu::magma::Status;
static FidlStatus Convert(magma_status_t status) {
return static_cast<FidlStatus>(magma::Status(status).getFidlStatus());
}
#endif
class TestStatus {
public:
static void Test() {
EXPECT_EQ(MAGMA_STATUS_OK, magma::Status(MAGMA_STATUS_OK).get());
EXPECT_EQ(MAGMA_STATUS_INTERNAL_ERROR, magma::Status(MAGMA_STATUS_INTERNAL_ERROR).get());
EXPECT_TRUE(magma::Status(MAGMA_STATUS_OK));
EXPECT_FALSE(magma::Status(MAGMA_STATUS_INTERNAL_ERROR));
}
};
TEST(MagmaUtil, Status) { TestStatus::Test(); }
#if defined(__Fuchsia__)
TEST(MagmaUtil, FidlStatus) {
EXPECT_EQ(Convert(MAGMA_STATUS_INTERNAL_ERROR), FidlStatus::INTERNAL_ERROR);
EXPECT_EQ(Convert(MAGMA_STATUS_INVALID_ARGS), FidlStatus::INVALID_ARGS);
EXPECT_EQ(Convert(MAGMA_STATUS_ACCESS_DENIED), FidlStatus::ACCESS_DENIED);
EXPECT_EQ(Convert(MAGMA_STATUS_MEMORY_ERROR), FidlStatus::MEMORY_ERROR);
EXPECT_EQ(Convert(MAGMA_STATUS_CONTEXT_KILLED), FidlStatus::CONTEXT_KILLED);
EXPECT_EQ(Convert(MAGMA_STATUS_CONNECTION_LOST), FidlStatus::CONNECTION_LOST);
EXPECT_EQ(Convert(MAGMA_STATUS_TIMED_OUT), FidlStatus::TIMED_OUT);
EXPECT_EQ(Convert(MAGMA_STATUS_UNIMPLEMENTED), FidlStatus::UNIMPLEMENTED);
EXPECT_EQ(MAGMA_STATUS_ALIAS_FOR_LAST, MAGMA_STATUS_UNIMPLEMENTED) << "test needs updating";
}
#endif