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;
22 EXPECT_TRUE(director.initRoot(Utils::readFile(meta_dir.Path() /
"repo/director/root.json")));
24 EXPECT_TRUE(director.verifyTargets(Utils::readFile(meta_dir.Path() /
"repo/director/targets.json")));
25 EXPECT_TRUE(director.targets.targets.empty());
26 EXPECT_TRUE(director.latest_targets.targets.empty());
28 uptane_gen.run({
"image",
"--path", meta_dir.PathString(),
"--filename",
"tests/test_data/firmware.txt",
29 "--targetname",
"firmware.txt",
"--hwid",
"primary_hw"});
30 uptane_gen.run({
"addtarget",
"--path", meta_dir.PathString(),
"--targetname",
"firmware.txt",
"--hwid",
"primary_hw",
31 "--serial",
"CA:FE:A6:D2:84:9D"});
32 uptane_gen.run({
"signtargets",
"--path", meta_dir.PathString()});
34 EXPECT_TRUE(director.verifyTargets(Utils::readFile(meta_dir.Path() /
"repo/director/targets.json")));
35 EXPECT_EQ(director.targets.targets.size(), 1);
36 EXPECT_EQ(director.targets.targets[0].filename(),
"firmware.txt");
37 EXPECT_EQ(director.targets.targets.size(), director.latest_targets.targets.size());
39 uptane_gen.run({
"emptytargets",
"--path", meta_dir.PathString()});
40 uptane_gen.run({
"signtargets",
"--path", meta_dir.PathString(),
"--correlationid",
"abc123"});
42 EXPECT_TRUE(director.verifyTargets(Utils::readFile(meta_dir.Path() /
"repo/director/targets.json")));
43 EXPECT_EQ(director.targets.targets.size(), 1);
44 EXPECT_EQ(director.targets.targets[0].filename(),
"firmware.txt");
45 EXPECT_TRUE(director.latest_targets.targets.empty());
51 int main(
int argc,
char **argv) {
52 ::testing::InitGoogleTest(&argc, argv);
54 std::cerr <<
"Error: " << argv[0] <<
" requires the path to the uptane-generator utility\n";
57 uptane_generator_path = argv[1];
60 logger_set_threshold(boost::log::trivial::trace);
62 return RUN_ALL_TESTS();