1 #include <gtest/gtest.h> 7 #include <boost/filesystem.hpp> 8 #include <boost/polymorphic_pointer_cast.hpp> 10 #include "http/httpclient.h" 11 #include "logging/logging.h" 12 #include "package_manager/ostreemanager.h" 13 #include "package_manager/packagemanagerfactory.h" 14 #include "package_manager/packagemanagerinterface.h" 15 #include "primary/reportqueue.h" 16 #include "primary/sotauptaneclient.h" 17 #include "storage/invstorage.h" 18 #include "uptane/uptanerepository.h" 19 #include "uptane_test_common.h" 20 #include "utilities/utils.h" 22 boost::filesystem::path credentials;
23 boost::filesystem::path sysroot;
25 TEST(UptaneCI, ProvisionAndPutManifest) {
29 Config config(
"tests/config/minimal.toml");
30 config.provision.provision_path = credentials;
31 config.provision.mode = ProvisionMode::kSharedCred;
32 config.storage.path = temp_dir.Path();
33 config.pacman.type = PACKAGE_MANAGER_NONE;
34 config.postUpdateValues();
36 auto storage = INvStorage::newStorage(config.storage);
37 auto sota_client = std_::make_unique<UptaneTestCommon::TestUptaneClient>(config, storage);
38 EXPECT_NO_THROW(sota_client->initialize());
39 EXPECT_TRUE(sota_client->putManifestSimple());
42 TEST(UptaneCI, CheckKeys) {
44 Config config(
"tests/config/minimal.toml");
45 config.provision.provision_path = credentials;
46 config.provision.mode = ProvisionMode::kSharedCred;
47 config.storage.path = temp_dir.Path();
48 config.pacman.type = PACKAGE_MANAGER_OSTREE;
49 config.pacman.sysroot = sysroot;
50 config.postUpdateValues();
51 boost::filesystem::remove_all(config.storage.path);
53 auto storage = INvStorage::newStorage(config.storage);
55 UptaneTestCommon::addDefaultSecondary(config, temp_dir,
"",
"secondary_hardware");
56 auto sota_client = std_::make_unique<UptaneTestCommon::TestUptaneClient>(config, storage);
57 EXPECT_NO_THROW(sota_client->initialize());
62 EXPECT_TRUE(storage->loadTlsCreds(&ca, &cert, &pkey));
63 EXPECT_TRUE(ca.size() > 0);
64 EXPECT_TRUE(cert.size() > 0);
65 EXPECT_TRUE(pkey.size() > 0);
67 std::string primary_public;
68 std::string primary_private;
69 EXPECT_TRUE(storage->loadPrimaryKeys(&primary_public, &primary_private));
70 EXPECT_TRUE(primary_public.size() > 0);
71 EXPECT_TRUE(primary_private.size() > 0);
73 std::map<Uptane::EcuSerial, std::shared_ptr<Uptane::SecondaryInterface> >::iterator it;
74 for (it = sota_client->secondaries.begin(); it != sota_client->secondaries.end(); it++) {
75 std::shared_ptr<Primary::ManagedSecondary> managed_secondary =
77 EXPECT_TRUE(managed_secondary);
79 std::string public_key;
80 std::string private_key;
81 EXPECT_TRUE(managed_secondary->loadKeys(&public_key, &private_key));
82 EXPECT_TRUE(public_key.size() > 0);
83 EXPECT_TRUE(private_key.size() > 0);
84 EXPECT_NE(public_key, private_key);
89 int main(
int argc,
char **argv) {
90 ::testing::InitGoogleTest(&argc, argv);
92 logger_set_threshold(boost::log::trivial::trace);
95 std::cerr <<
"Error: " << argv[0]
96 <<
" requires a path to a credentials archive and an OSTree sysroot as input arguments.\n";
99 credentials = argv[1];
101 return RUN_ALL_TESTS();
Configuration object for an aktualizr instance running on a Primary ECU.