1 #include <gtest/gtest.h>
3 #include "directorrepository.h"
4 #include "test_utils.h"
5 #include "utilities/utils.h"
7 boost::filesystem::path uptane_generator_path;
15 TEST(Director, EmptyTargets) {
18 Process uptane_gen(uptane_generator_path.string());
19 uptane_gen.run({
"generate",
"--path", meta_dir.PathString()});
21 DirectorRepository director;
23 Utils::readFile(meta_dir.Path() /
"repo/director/root.json")));
25 EXPECT_NO_THROW(director.verifyTargets(Utils::readFile(meta_dir.Path() /
"repo/director/targets.json")));
26 EXPECT_TRUE(director.targets.targets.empty());
27 EXPECT_TRUE(director.latest_targets.targets.empty());
29 uptane_gen.run({
"image",
"--path", meta_dir.PathString(),
"--filename",
"tests/test_data/firmware.txt",
30 "--targetname",
"firmware.txt",
"--hwid",
"primary_hw"});
31 uptane_gen.run({
"addtarget",
"--path", meta_dir.PathString(),
"--targetname",
"firmware.txt",
"--hwid",
"primary_hw",
32 "--serial",
"CA:FE:A6:D2:84:9D"});
33 uptane_gen.run({
"signtargets",
"--path", meta_dir.PathString()});
35 EXPECT_NO_THROW(director.verifyTargets(Utils::readFile(meta_dir.Path() /
"repo/director/targets.json")));
36 EXPECT_EQ(director.targets.targets.size(), 1);
37 EXPECT_EQ(director.targets.targets[0].filename(),
"firmware.txt");
38 EXPECT_EQ(director.targets.targets.size(), director.latest_targets.targets.size());
40 uptane_gen.run({
"emptytargets",
"--path", meta_dir.PathString()});
41 uptane_gen.run({
"signtargets",
"--path", meta_dir.PathString(),
"--correlationid",
"abc123"});
43 EXPECT_NO_THROW(director.verifyTargets(Utils::readFile(meta_dir.Path() /
"repo/director/targets.json")));
44 EXPECT_EQ(director.targets.targets.size(), 1);
45 EXPECT_EQ(director.targets.targets[0].filename(),
"firmware.txt");
46 EXPECT_TRUE(director.latest_targets.targets.empty());
52 int main(
int argc,
char **argv) {
53 ::testing::InitGoogleTest(&argc, argv);
55 std::cerr <<
"Error: " << argv[0] <<
" requires the path to the uptane-generator utility\n";
58 uptane_generator_path = argv[1];
61 logger_set_threshold(boost::log::trivial::trace);
63 return RUN_ALL_TESTS();