1 #include <gtest/gtest.h>
3 #include "ipuptanesecondary.h"
4 #include "logging/logging.h"
5 #include "secondary_tcp_server.h"
6 #include "test_utils.h"
7 #include "uptane/secondaryinterface.h"
13 : _serial(serial), _hdw_id(hdw_id), _pub_key(pub_key), _manifest(manifest) {}
18 virtual PublicKey getPublicKey()
const {
return _pub_key; }
21 _metapack = meta_pack;
24 virtual int32_t getRootVersion(
bool director)
const {
28 virtual bool putRoot(
const std::string& root,
bool director) {
34 virtual bool sendFirmware(
const std::string&
data) {
41 return data::ResultCode::Numeric::kOk;
55 return (lhs.director_root == rhs.director_root) && (lhs.image_root == rhs.image_root) &&
56 (lhs.director_targets == rhs.director_targets) && (lhs.image_snapshot == rhs.image_snapshot) &&
57 (lhs.image_timestamp == rhs.image_timestamp) && (lhs.image_targets == rhs.image_targets);
69 std::thread secondary_server_thread{[&secondary_server]() { secondary_server.
run(); }};
73 const int max_try = 5;
74 Uptane::SecondaryInterface::Ptr ip_secondary;
75 for (
int ii = 0; ii < max_try && ip_secondary ==
nullptr; ++ii) {
76 ip_secondary = Uptane::IpUptaneSecondary::connectAndCreate(
"localhost", secondary_server.port());
79 ASSERT_TRUE(ip_secondary !=
nullptr) <<
"Failed to create IP Secondary";
80 EXPECT_EQ(ip_secondary->getSerial(), secondary.getSerial());
81 EXPECT_EQ(ip_secondary->getHwId(), secondary.getHwId());
82 EXPECT_EQ(ip_secondary->getPublicKey(), secondary.getPublicKey());
83 EXPECT_EQ(ip_secondary->getManifest(), secondary.getManifest());
86 "image_targets",
"image_timestamp",
"image_snapshot"};
88 EXPECT_TRUE(ip_secondary->putMetadata(meta_pack));
89 EXPECT_TRUE(meta_pack == secondary._metapack);
91 std::string firmware =
"firmware";
92 EXPECT_TRUE(ip_secondary->sendFirmware(firmware));
93 EXPECT_EQ(firmware, secondary._data);
95 EXPECT_EQ(ip_secondary->install(
""), data::ResultCode::Numeric::kOk);
97 secondary_server.stop();
98 secondary_server_thread.join();
102 in_port_t secondary_port = TestUtils::getFreePortAsInt();
103 Uptane::SecondaryInterface::Ptr ip_secondary;
106 ip_secondary = Uptane::IpUptaneSecondary::connectAndCreate(
"localhost", secondary_port);
107 EXPECT_EQ(ip_secondary,
nullptr);
110 ip_secondary = std::make_shared<Uptane::IpUptaneSecondary>(
"localhost", secondary_port,
Uptane::EcuSerial(
"serial"),
115 "image_targets",
"image_timestamp",
"image_snapshot"};
118 EXPECT_EQ(ip_secondary->getManifest(), Json::Value());
119 EXPECT_FALSE(ip_secondary->sendFirmware(
"firmware"));
120 EXPECT_FALSE(ip_secondary->putMetadata(meta_pack));
124 int main(
int argc,
char** argv) {
125 ::testing::InitGoogleTest(&argc, argv);
128 logger_set_threshold(boost::log::trivial::info);
130 return RUN_ALL_TESTS();