diff options
| -rw-r--r-- | delta_performer.cc | 6 | ||||
| -rw-r--r-- | delta_performer.h | 13 | ||||
| -rw-r--r-- | delta_performer_integration_test.cc | 4 | ||||
| -rw-r--r-- | delta_performer_unittest.cc | 19 | ||||
| -rw-r--r-- | payload_constants.cc | 7 | ||||
| -rw-r--r-- | payload_constants.h | 16 | ||||
| -rw-r--r-- | payload_generator/full_update_generator_unittest.cc | 4 | ||||
| -rw-r--r-- | payload_generator/generate_delta_main.cc | 3 | ||||
| -rw-r--r-- | payload_generator/payload_generation_config.cc | 3 | ||||
| -rw-r--r-- | update_engine.conf | 1 |
10 files changed, 44 insertions, 32 deletions
diff --git a/delta_performer.cc b/delta_performer.cc index 4b1981b5..0482a8f0 100644 --- a/delta_performer.cc +++ b/delta_performer.cc @@ -59,7 +59,6 @@ const uint64_t DeltaPerformer::kDeltaVersionSize = 8; const uint64_t DeltaPerformer::kDeltaManifestSizeSize = 8; const uint64_t DeltaPerformer::kSupportedMajorPayloadVersion = 1; const uint64_t DeltaPerformer::kSupportedMinorPayloadVersion = 2; -const uint64_t DeltaPerformer::kFullPayloadMinorVersion = 0; const char DeltaPerformer::kUpdatePayloadPublicKeyPath[] = "/usr/share/update_engine/update-payload-key.pub.pem"; @@ -68,11 +67,6 @@ const unsigned DeltaPerformer::kProgressLogTimeoutSeconds = 30; const unsigned DeltaPerformer::kProgressDownloadWeight = 50; const unsigned DeltaPerformer::kProgressOperationsWeight = 50; -const uint64_t kChromeOSMajorPayloadVersion = 1; -const uint64_t kBrilloMajorPayloadVersion = 2; -const uint32_t kInPlaceMinorPayloadVersion = 1; -const uint32_t kSourceMinorPayloadVersion = 2; - namespace { const int kUpdateStateOperationInvalid = -1; const int kMaxResumedUpdateFailures = 10; diff --git a/delta_performer.h b/delta_performer.h index ef0bd9b9..d088796a 100644 --- a/delta_performer.h +++ b/delta_performer.h @@ -36,18 +36,6 @@ namespace chromeos_update_engine { -// The major version used by Chrome OS. -extern const uint64_t kChromeOSMajorPayloadVersion; - -// The major version used by Brillo. -extern const uint64_t kBrilloMajorPayloadVersion; - -// The minor version used by the in-place delta generator algorithm. -extern const uint32_t kInPlaceMinorPayloadVersion; - -// The minor version used by the A to B delta generator algorithm. -extern const uint32_t kSourceMinorPayloadVersion; - class PrefsInterface; // This class performs the actions in a delta update synchronously. The delta @@ -65,7 +53,6 @@ class DeltaPerformer : public FileWriter { static const uint64_t kDeltaManifestSizeSize; static const uint64_t kSupportedMajorPayloadVersion; static const uint64_t kSupportedMinorPayloadVersion; - static const uint64_t kFullPayloadMinorVersion; static const char kUpdatePayloadPublicKeyPath[]; // Defines the granularity of progress logging in terms of how many "completed diff --git a/delta_performer_integration_test.cc b/delta_performer_integration_test.cc index 4a2505c6..1e3dea89 100644 --- a/delta_performer_integration_test.cc +++ b/delta_performer_integration_test.cc @@ -910,7 +910,7 @@ void DoSmallImageTest(bool full_kernel, bool full_rootfs, bool noop, void DoOperationHashMismatchTest(OperationHashTest op_hash_test, bool hash_checks_mandatory) { DeltaState state; - uint64_t minor_version = DeltaPerformer::kFullPayloadMinorVersion; + uint64_t minor_version = kFullPayloadMinorVersion; GenerateDeltaFile(true, true, false, -1, kSignatureGenerated, &state, minor_version); ScopedPathUnlinker a_img_unlinker(state.a_img); @@ -955,7 +955,7 @@ TEST(DeltaPerformerIntegrationTest, RunAsRootFullKernelSmallImageTest) { TEST(DeltaPerformerIntegrationTest, RunAsRootFullSmallImageTest) { DoSmallImageTest(true, true, false, -1, kSignatureGenerator, - true, DeltaPerformer::kFullPayloadMinorVersion); + true, kFullPayloadMinorVersion); } TEST(DeltaPerformerIntegrationTest, RunAsRootNoopSmallImageTest) { diff --git a/delta_performer_unittest.cc b/delta_performer_unittest.cc index eca216fe..cc3d6e26 100644 --- a/delta_performer_unittest.cc +++ b/delta_performer_unittest.cc @@ -24,6 +24,7 @@ #include <base/files/file_path.h> #include <base/files/file_util.h> #include <base/strings/stringprintf.h> +#include <base/strings/string_number_conversions.h> #include <base/strings/string_util.h> #include <google/protobuf/repeated_field.h> #include <gtest/gtest.h> @@ -187,7 +188,7 @@ class DeltaPerformerTest : public ::testing::Test { // Loads the payload and parses the manifest. chromeos::Blob payload = GeneratePayload(chromeos::Blob(), vector<AnnotatedOperation>(), sign_payload, - DeltaPerformer::kFullPayloadMinorVersion); + kFullPayloadMinorVersion); LOG(INFO) << "Payload size: " << payload.size(); @@ -270,7 +271,7 @@ TEST_F(DeltaPerformerTest, FullPayloadWriteTest) { aops.push_back(aop); chromeos::Blob payload_data = GeneratePayload(expected_data, aops, false, - DeltaPerformer::kFullPayloadMinorVersion); + kFullPayloadMinorVersion); EXPECT_EQ(expected_data, ApplyPayload(payload_data, "")); } @@ -363,7 +364,7 @@ TEST_F(DeltaPerformerTest, ValidateManifestFullGoodTest) { DeltaArchiveManifest manifest; manifest.mutable_new_kernel_info(); manifest.mutable_new_rootfs_info(); - manifest.set_minor_version(DeltaPerformer::kFullPayloadMinorVersion); + manifest.set_minor_version(kFullPayloadMinorVersion); RunManifestValidation(manifest, true, ErrorCode::kSuccess); } @@ -573,14 +574,20 @@ TEST_F(DeltaPerformerTest, UsePublicKeyFromResponse) { EXPECT_TRUE(test_utils::RecursiveUnlinkDir(temp_dir)); } -TEST_F(DeltaPerformerTest, MinorVersionsMatch) { - // Test that the minor version in update_engine.conf that is installed to - // the image matches the supported delta minor version in the update engine. +TEST_F(DeltaPerformerTest, ConfVersionsMatch) { + // Test that the versions in update_engine.conf that is installed to the + // image match the supported delta versions in the update engine. uint32_t minor_version; chromeos::KeyValueStore store; EXPECT_TRUE(store.Load(base::FilePath("update_engine.conf"))); EXPECT_TRUE(utils::GetMinorVersion(store, &minor_version)); EXPECT_EQ(DeltaPerformer::kSupportedMinorPayloadVersion, minor_version); + + string major_version_str; + uint64_t major_version; + EXPECT_TRUE(store.GetString("PAYLOAD_MAJOR_VERSION", &major_version_str)); + EXPECT_TRUE(base::StringToUint64(major_version_str, &major_version)); + EXPECT_EQ(DeltaPerformer::kSupportedMajorPayloadVersion, major_version); } } // namespace chromeos_update_engine diff --git a/payload_constants.cc b/payload_constants.cc index 9d6fb3d6..aeddf11d 100644 --- a/payload_constants.cc +++ b/payload_constants.cc @@ -18,6 +18,13 @@ namespace chromeos_update_engine { +const uint64_t kChromeOSMajorPayloadVersion = 1; +const uint64_t kBrilloMajorPayloadVersion = 2; + +const uint32_t kFullPayloadMinorVersion = 0; +const uint32_t kInPlaceMinorPayloadVersion = 1; +const uint32_t kSourceMinorPayloadVersion = 2; + const char kLegacyPartitionNameKernel[] = "boot"; const char kLegacyPartitionNameRoot[] = "system"; diff --git a/payload_constants.h b/payload_constants.h index 188ea84d..21dab005 100644 --- a/payload_constants.h +++ b/payload_constants.h @@ -23,6 +23,22 @@ namespace chromeos_update_engine { +// The major version used by Chrome OS. +extern const uint64_t kChromeOSMajorPayloadVersion; + +// The major version used by Brillo. +extern const uint64_t kBrilloMajorPayloadVersion; + +// The minor version used for all full payloads. +extern const uint32_t kFullPayloadMinorVersion; + +// The minor version used by the in-place delta generator algorithm. +extern const uint32_t kInPlaceMinorPayloadVersion; + +// The minor version used by the A to B delta generator algorithm. +extern const uint32_t kSourceMinorPayloadVersion; + + // The kernel and rootfs partition names used by the BootControlInterface when // handling update payloads with a major version 1. The names of the updated // partitions are include in the payload itself for major version 2. diff --git a/payload_generator/full_update_generator_unittest.cc b/payload_generator/full_update_generator_unittest.cc index 2f391268..6c1047c8 100644 --- a/payload_generator/full_update_generator_unittest.cc +++ b/payload_generator/full_update_generator_unittest.cc @@ -21,7 +21,7 @@ #include <gtest/gtest.h> -#include "update_engine/delta_performer.h" +#include "update_engine/payload_constants.h" #include "update_engine/payload_generator/extent_utils.h" #include "update_engine/test_utils.h" @@ -35,7 +35,7 @@ class FullUpdateGeneratorTest : public ::testing::Test { protected: void SetUp() override { config_.is_delta = false; - config_.minor_version = DeltaPerformer::kFullPayloadMinorVersion; + config_.minor_version = kFullPayloadMinorVersion; config_.hard_chunk_size = 128 * 1024; config_.block_size = 4096; diff --git a/payload_generator/generate_delta_main.cc b/payload_generator/generate_delta_main.cc index e122fb92..d38c5c5d 100644 --- a/payload_generator/generate_delta_main.cc +++ b/payload_generator/generate_delta_main.cc @@ -30,6 +30,7 @@ #include <chromeos/flag_helper.h> #include "update_engine/delta_performer.h" +#include "update_engine/payload_constants.h" #include "update_engine/payload_generator/delta_diff_generator.h" #include "update_engine/payload_generator/delta_diff_utils.h" #include "update_engine/payload_generator/payload_generation_config.h" @@ -424,7 +425,7 @@ int Main(int argc, char** argv) { payload_config.minor_version = kInPlaceMinorPayloadVersion; } } else { - payload_config.minor_version = DeltaPerformer::kFullPayloadMinorVersion; + payload_config.minor_version = kFullPayloadMinorVersion; } LOG(INFO) << "Auto-detected minor_version=" << payload_config.minor_version; } else { diff --git a/payload_generator/payload_generation_config.cc b/payload_generator/payload_generation_config.cc index a2d93116..786c4e21 100644 --- a/payload_generator/payload_generation_config.cc +++ b/payload_generator/payload_generation_config.cc @@ -115,8 +115,7 @@ bool PayloadGenerationConfig::Validate() const { } else { // All the "source" image fields must be empty for full payloads. TEST_AND_RETURN_FALSE(source.ValidateIsEmpty()); - TEST_AND_RETURN_FALSE(minor_version == - DeltaPerformer::kFullPayloadMinorVersion); + TEST_AND_RETURN_FALSE(minor_version == kFullPayloadMinorVersion); } // In all cases, the target image must exists. diff --git a/update_engine.conf b/update_engine.conf index dc65ebed..dea31e4b 100644 --- a/update_engine.conf +++ b/update_engine.conf @@ -1 +1,2 @@ +PAYLOAD_MAJOR_VERSION=1 PAYLOAD_MINOR_VERSION=2 |
