1 #include <gtest/gtest.h> 6 #include "primary/aktualizr.h" 7 #include "test_utils.h" 8 #include "uptane_test_common.h" 10 boost::filesystem::path uptane_generator_path;
14 HttpCheckUrl(
const boost::filesystem::path &test_dir_in,
const boost::filesystem::path &meta_dir_in)
15 :
HttpFake(test_dir_in,
"", meta_dir_in) {}
16 HttpResponse download(
const std::string &url, curl_write_callback write_cb, curl_xferinfo_callback progress_cb,
17 void *userp, curl_off_t from)
override {
37 auto http = std::make_shared<HttpCheckUrl>(temp_dir.Path(), meta_dir.Path() /
"repo");
38 Config conf = UptaneTestCommon::makeTestConfig(temp_dir, http->tls_server);
39 logger_set_threshold(boost::log::trivial::trace);
41 Process uptane_gen(uptane_generator_path.string());
42 uptane_gen.run({
"generate",
"--path", meta_dir.PathString(),
"--correlationid",
"abc123"});
43 uptane_gen.run({
"image",
"--path", meta_dir.PathString(),
"--filename",
"tests/test_data/firmware.txt",
44 "--targetname",
"firmware.txt",
"--hwid",
"primary_hw",
"--url",
"test-url"});
45 uptane_gen.run({
"addtarget",
"--path", meta_dir.PathString(),
"--targetname",
"firmware.txt",
"--hwid",
"primary_hw",
46 "--serial",
"CA:FE:A6:D2:84:9D"});
47 uptane_gen.run({
"signtargets",
"--path", meta_dir.PathString(),
"--correlationid",
"abc123"});
49 auto storage = INvStorage::newStorage(conf.storage);
52 EXPECT_EQ(http->url_,
"");
55 EXPECT_EQ(update_result.status, result::UpdateStatus::kUpdatesAvailable);
58 EXPECT_EQ(http->url_,
"test-url");
68 auto http = std::make_shared<HttpCheckUrl>(temp_dir.Path(), meta_dir.Path() /
"repo");
69 Config conf = UptaneTestCommon::makeTestConfig(temp_dir, http->tls_server);
70 logger_set_threshold(boost::log::trivial::trace);
72 Process uptane_gen(uptane_generator_path.string());
73 uptane_gen.run({
"generate",
"--path", meta_dir.PathString(),
"--correlationid",
"abc123"});
74 uptane_gen.run({
"image",
"--path", meta_dir.PathString(),
"--filename",
"tests/test_data/firmware.txt",
75 "--targetname",
"firmware.txt",
"--hwid",
"primary_hw",
"--url",
"test-url2"});
76 uptane_gen.run({
"addtarget",
"--path", meta_dir.PathString(),
"--targetname",
"firmware.txt",
"--hwid",
"primary_hw",
77 "--serial",
"CA:FE:A6:D2:84:9D",
"--url",
"test-url3"});
78 uptane_gen.run({
"signtargets",
"--path", meta_dir.PathString(),
"--correlationid",
"abc123"});
80 auto storage = INvStorage::newStorage(conf.storage);
83 EXPECT_EQ(http->url_,
"");
86 EXPECT_EQ(update_result.status, result::UpdateStatus::kUpdatesAvailable);
89 EXPECT_EQ(http->url_,
"test-url3");
93 int main(
int argc,
char **argv) {
94 ::testing::InitGoogleTest(&argc, argv);
96 std::cerr <<
"Error: " << argv[0] <<
" requires the path to the uptane-generator utility\n";
99 uptane_generator_path = argv[1];
102 logger_set_threshold(boost::log::trivial::trace);
104 return RUN_ALL_TESTS();
Container for information about downloading an update.
Configuration object for an aktualizr instance running on a Primary ECU.
std::future< result::Download > Download(const std::vector< Uptane::Target > &updates)
Download targets.
std::future< result::UpdateCheck > CheckUpdates()
Fetch Uptane metadata and check for updates.
Container for information about available updates.
This class provides the main APIs necessary for launching and controlling libaktualizr.
void Initialize()
Initialize aktualizr.