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) {}
16 virtual std::string Type()
const {
return "mock"; }
19 virtual PublicKey getPublicKey()
const {
return _pub_key; }
21 virtual bool ping()
const {
return true; }
23 _metapack = meta_pack;
26 virtual int32_t getRootVersion(
bool director)
const {
30 virtual bool putRoot(
const std::string& root,
bool director) {
36 virtual bool sendFirmware(
const std::string&
data) {
43 return data::ResultCode::Numeric::kOk;
57 return (lhs.director_root == rhs.director_root) && (lhs.image_root == rhs.image_root) &&
58 (lhs.director_targets == rhs.director_targets) && (lhs.image_snapshot == rhs.image_snapshot) &&
59 (lhs.image_timestamp == rhs.image_timestamp) && (lhs.image_targets == rhs.image_targets);
71 std::thread secondary_server_thread{[&secondary_server]() { secondary_server.run(); }};
75 const int max_try = 5;
76 Uptane::SecondaryInterface::Ptr ip_secondary;
77 for (
int ii = 0; ii < max_try && ip_secondary ==
nullptr; ++ii) {
78 ip_secondary = Uptane::IpUptaneSecondary::connectAndCreate(
"localhost", secondary_server.port());
81 ASSERT_TRUE(ip_secondary !=
nullptr) <<
"Failed to create IP Secondary";
82 EXPECT_EQ(ip_secondary->getSerial(), secondary.getSerial());
83 EXPECT_EQ(ip_secondary->getHwId(), secondary.getHwId());
84 EXPECT_EQ(ip_secondary->getPublicKey(), secondary.getPublicKey());
85 EXPECT_EQ(ip_secondary->getManifest(), secondary.getManifest());
88 "image_targets",
"image_timestamp",
"image_snapshot"};
90 EXPECT_TRUE(ip_secondary->putMetadata(meta_pack));
91 EXPECT_TRUE(meta_pack == secondary._metapack);
93 std::string firmware =
"firmware";
94 EXPECT_TRUE(ip_secondary->sendFirmware(firmware));
95 EXPECT_EQ(firmware, secondary._data);
97 EXPECT_EQ(ip_secondary->install(
""), data::ResultCode::Numeric::kOk);
99 secondary_server.stop();
100 secondary_server_thread.join();
104 in_port_t secondary_port = TestUtils::getFreePortAsInt();
105 Uptane::SecondaryInterface::Ptr ip_secondary;
108 ip_secondary = Uptane::IpUptaneSecondary::connectAndCreate(
"localhost", secondary_port);
109 EXPECT_EQ(ip_secondary,
nullptr);
112 ip_secondary = std::make_shared<Uptane::IpUptaneSecondary>(
"localhost", secondary_port,
Uptane::EcuSerial(
"serial"),
117 "image_targets",
"image_timestamp",
"image_snapshot"};
120 EXPECT_EQ(ip_secondary->getManifest(), Json::Value());
121 EXPECT_FALSE(ip_secondary->sendFirmware(
"firmware"));
122 EXPECT_FALSE(ip_secondary->putMetadata(meta_pack));
126 int main(
int argc,
char** argv) {
127 ::testing::InitGoogleTest(&argc, argv);
130 logger_set_threshold(boost::log::trivial::info);
132 return RUN_ALL_TESTS();