2020-08-11 18:11:55 +00:00
|
|
|
/*
|
|
|
|
* This file Copyright (C) 2013-2014 Mnemosyne LLC
|
|
|
|
*
|
|
|
|
* It may be used under the GNU GPL versions 2 or 3
|
|
|
|
* or any future license endorsed by Mnemosyne LLC.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "transmission.h"
|
|
|
|
#include "error.h"
|
|
|
|
|
|
|
|
#include "gtest/gtest.h"
|
|
|
|
|
2021-12-28 02:32:22 +00:00
|
|
|
using namespace std::literals;
|
|
|
|
|
2020-08-11 18:11:55 +00:00
|
|
|
TEST(Error, errorSet)
|
|
|
|
{
|
|
|
|
tr_error* err = nullptr;
|
|
|
|
|
|
|
|
tr_error_prefix(&err, "error: ");
|
|
|
|
EXPECT_EQ(nullptr, err);
|
|
|
|
|
2021-12-28 02:32:22 +00:00
|
|
|
tr_error_set(&err, 2, "oops"sv);
|
2020-08-11 18:11:55 +00:00
|
|
|
EXPECT_NE(nullptr, err);
|
|
|
|
EXPECT_EQ(2, err->code);
|
|
|
|
EXPECT_STREQ("oops", err->message);
|
|
|
|
|
|
|
|
tr_error_prefix(&err, "error: ");
|
|
|
|
EXPECT_NE(nullptr, err);
|
|
|
|
EXPECT_EQ(2, err->code);
|
|
|
|
EXPECT_STREQ("error: oops", err->message);
|
|
|
|
|
|
|
|
tr_error_free(err);
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST(Error, propagate)
|
|
|
|
{
|
|
|
|
tr_error* err = nullptr;
|
|
|
|
tr_error* err2 = nullptr;
|
2021-12-16 02:09:46 +00:00
|
|
|
auto constexpr Code = int{ 1 };
|
2020-08-11 18:11:55 +00:00
|
|
|
|
2021-12-28 02:32:22 +00:00
|
|
|
tr_error_set(&err, Code, "oops"sv);
|
2020-08-11 18:11:55 +00:00
|
|
|
EXPECT_NE(nullptr, err);
|
2021-12-16 02:09:46 +00:00
|
|
|
EXPECT_EQ(Code, err->code);
|
2020-08-11 18:11:55 +00:00
|
|
|
EXPECT_STREQ("oops", err->message);
|
|
|
|
|
|
|
|
tr_error_propagate(&err2, &err);
|
|
|
|
EXPECT_NE(nullptr, err2);
|
2021-12-16 02:09:46 +00:00
|
|
|
EXPECT_EQ(Code, err2->code);
|
2020-08-11 18:11:55 +00:00
|
|
|
EXPECT_STREQ("oops", err2->message);
|
|
|
|
EXPECT_EQ(nullptr, err);
|
|
|
|
|
2021-12-16 02:09:46 +00:00
|
|
|
tr_error_clear(&err2);
|
2020-08-11 18:11:55 +00:00
|
|
|
}
|