1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md
#include <catch2/catch.hpp>
#include <CrashdumpMetadataStore.hpp>
using namespace Store;
/* This has to be the first test case! */
TEST_CASE("Crashdump metadata store defaults")
{
static constexpr auto defaultSerialNumber = "0000000000000";
static constexpr auto defaultOsVersion = "0.0.0";
static constexpr auto defaultCommitHash = "00000000";
static constexpr auto defaultProductName = "unknown";
REQUIRE(CrashdumpMetadata::getInstance().getSerialNumber() == defaultSerialNumber);
REQUIRE(CrashdumpMetadata::getInstance().getOsVersion() == defaultOsVersion);
REQUIRE(CrashdumpMetadata::getInstance().getCommitHash() == defaultCommitHash);
REQUIRE(CrashdumpMetadata::getInstance().getProductName() == defaultProductName);
}
TEST_CASE("Crashdump metadata store operations")
{
static constexpr auto serialNumber1 = "1234567892137";
static constexpr auto serialNumber2 = "2010307060900";
static constexpr auto osVersion1 = "6.6.6";
static constexpr auto osVersion2 = "9.9.9";
static constexpr auto commitHash1 = "baadcafe";
static constexpr auto commitHash2 = "c00lbabe";
static constexpr auto productName1 = "pure";
static constexpr auto productName2 = "bell";
static constexpr auto separator = "_";
SECTION("Setting values")
{
CrashdumpMetadata::getInstance().setSerialNumber(serialNumber1);
REQUIRE(CrashdumpMetadata::getInstance().getSerialNumber() == serialNumber1);
CrashdumpMetadata::getInstance().setOsVersion(osVersion1);
REQUIRE(CrashdumpMetadata::getInstance().getOsVersion() == osVersion1);
CrashdumpMetadata::getInstance().setCommitHash(commitHash1);
REQUIRE(CrashdumpMetadata::getInstance().getCommitHash() == commitHash1);
CrashdumpMetadata::getInstance().setProductName(productName1);
REQUIRE(CrashdumpMetadata::getInstance().getProductName() == productName1);
}
SECTION("Updating values")
{
CrashdumpMetadata::getInstance().setSerialNumber(serialNumber2);
REQUIRE(CrashdumpMetadata::getInstance().getSerialNumber() == serialNumber2);
CrashdumpMetadata::getInstance().setOsVersion(osVersion2);
REQUIRE(CrashdumpMetadata::getInstance().getOsVersion() == osVersion2);
CrashdumpMetadata::getInstance().setCommitHash(commitHash2);
REQUIRE(CrashdumpMetadata::getInstance().getCommitHash() == commitHash2);
CrashdumpMetadata::getInstance().setProductName(productName2);
REQUIRE(CrashdumpMetadata::getInstance().getProductName() == productName2);
}
SECTION("Stringifying values")
{
const auto realMetadataStringified = CrashdumpMetadata::getInstance().getMetadataString();
const auto referenceMetadataStringified =
std::string(productName2) + separator + osVersion2 + separator + commitHash2 + separator + serialNumber2;
REQUIRE(realMetadataStringified == referenceMetadataStringified);
}
}