summaryrefslogtreecommitdiff
path: root/filesystem_verifier_action_unittest.cc
AgeCommit message (Collapse)Author
2015-11-12Split payload application code into a subdirectory.Alex Deymo
This patch splits from the main libupdate_engine code the part that is strictly used to download and apply a payload into a new static library, moving the code to subdirectories. The new library is divided in two subdirectories: common/ and payload_consumer/, and should not depend on other update_engine files outside those two subdirectories. The main difference between those two is that the common/ tools are more generic and not tied to the payload consumer process, but otherwise they are both compiled together. There are still dependencies from the new libpayload_consumer library into the main directory files and DBus generated files. Those will be addressed in follow up CLs. Bug: 25197634 Test: FEATURES=test emerge-link update_engine; `mm` on Brillo. Change-Id: Id8d0204ea573627e6e26ca9ea17b9592ca95bc23
2015-10-13update_engine: Rename "chromeos" -> "brillo" in include paths and namespacesAlex Vakulenko
libchromeos is transitioning to libbrillo and chromeos namespaces and include directory is changing to brillo. Bug: 24872993 Change-Id: I770659a95be380a50fe3b2ba9f91d65818f40945
2015-10-09Move InstallPlan partitions to a list of partitions.Alex Deymo
This patch changes the InstallPlan instance from having hard-coded rootfs and kernel paritions to have a list of partitions with a name, source and target information. The FilesystemVerifierAction, DeltaPerformer and PostInstallAction were adapter to use the list of partitions instead. In delta payloads (only supported in the current major version 1) the list of operations is still fixed: the rootfs first and the kernel. This list is now populated by the FilesystemVerifierAction including the size of these partitions, until the whole source partition hash checking is deprecated (b/23182225). The PostIntallAction now relies on the DeltaPerformer to populate the post-install information from the payload. This means that in rollback we won't run any device-specific post-install operation, and will simply flip the slots in the bootloader. Bug: 24667689 Test: Updated unittests. Tested on a dragonboard and a link. Change-Id: I8277e3190ac74e57832a58dc0730e3713f48af8a
2015-10-05Mark the new slot as not ready from the DownloadAction.Alex Deymo
The FilesystemVerifierAction used to copy over the old kernel and old rootfs to the new slot, invalidating the contents of the new slot during the copy. Since now it only parses the source partitions, marking the new slot as unbootable can be delayed until the payload starts to download. Bug: 24667689 Test: FEATURES=test emerge-link update_engine Change-Id: I17736a10787cb747d181e8dffcc0bc58f9a0cabb
2015-08-28update_engine: New BootControlInterface class.Alex Deymo
The new BootControlInterface class is a platform-independent abstraction to control the bootloader. It provides methods for setting what partition slots are available for booting and getting the bootloader status about the available slots. The Chrome OS specific implementation of the bootloader was moved to the BootControlChromeOS which now depends on the vboot_host implementation used in Chrome OS. Follow up CL will implement the equivalent class for Brillo. BUG=b:23010637 TEST=unittests; cros flash from the new image and rolled back from it. Change-Id: I0a03aeeb8c21d8c99e1866b625e6e8c96628215b
2015-08-19Re-license update_engine to Apache2Alex Deymo
This patch automatically replaced the license on all text files from Chromium OS (BSD style) to AOSP (Apache2), keeping the original year as a reference. The license header was added to .gyp and .gypi files, the NOTICE was replaced with a copy of the Apache2 license and MODULE_LICENSE_* file was updated. BUG=b/23084294 TEST=grep 'Chromium OS Authors' doesn't find anything. Change-Id: Ie5083750755f5180a8a785b24fe67dbf9195cd10
2015-08-14update_engine: Remove all references to glib.Alex Deymo
The message loop in production code switched from chromeos::GlibMessageLoop to chromeos::BaseMessageLoop used in chromeos::Dameon. This patch moves all the unittests also to use chromeos::BaseMessageLoop or chromeos::FakeMessageLoop when I/O is not required. This patch removes all (now unused) references to glib. BUG=chromium:499886 TEST=`grep glib[^c] . -R` return no results. Also, unittests work. Change-Id: Iddfb17def501829d932ed1f70faad3e00268898e Reviewed-on: https://chromium-review.googlesource.com/292157 Tested-by: Alex Deymo <deymo@chromium.org> Reviewed-by: Alex Deymo <deymo@chromium.org> Commit-Queue: Alex Deymo <deymo@chromium.org> Trybot-Ready: Alex Deymo <deymo@chromium.org>
2015-08-06update_engine: Use FileStream in FilesystemVerifierAction.Alex Deymo
Instead of dealing manually with the read from the partition while verifying the filesystem, this patch uses chromeos::FileStream to do that. The base::MessageLoopForIO can't wait on regular files because libevent will fail when trying to watch for such file descriptor. While chromeos::Stream will still attempt to wait on the file descriptor in such situation, that will be fixed in chromeos::Streams in a different CL. BUG=chromium:499886 TEST=Unittests still pass. Change-Id: Icd6a031ac1137b1b5746a5c3413506ece79223cc Reviewed-on: https://chromium-review.googlesource.com/290542 Reviewed-by: Alex Deymo <deymo@chromium.org> Commit-Queue: Alex Deymo <deymo@chromium.org> Trybot-Ready: Alex Deymo <deymo@chromium.org> Tested-by: Alex Deymo <deymo@chromium.org>
2015-07-11update_engine: Remove libgio usage from FilesystemVerifierAction.Alex Deymo
The FilesystemVerifierAction used gio to read from the partition it is verifying. This patch makes it use plain file descriptors and watch them using chromeos::MessageLoop instead. BUG=chromium:499886 TEST=updated unittests. Change-Id: I5230399d5ac4777522bd5f53d4f4ade0a29a6c9f Reviewed-on: https://chromium-review.googlesource.com/284648 Tested-by: Alex Deymo <deymo@chromium.org> Reviewed-by: Alex Vakulenko <avakulenko@chromium.org> Commit-Queue: Alex Deymo <deymo@chromium.org> Trybot-Ready: Alex Deymo <deymo@chromium.org>
2015-04-30update_engine: Remove copy from source to destination partition.Allie Wood
Removes the copy of the old rootfs and kernel to the new rootfs and kernel. This was initially done in FilesystemCopierAction, which is now called FilesystemVerifierAction. When FilesystemVerifierAction is given a source rootfs or kernel, it calculates the hashes. When asked to verify the new rootfs or kernel, it computes the hashes and compares them against the values in the manifest. BUG=chromium:463562 TEST=Updates using `cros flash --src-image-to-delta` and unit tests. CQ-DEPEND=CL:267360 Change-Id: I3c9ba60fa4af0c5381ba8a10883bd47dc40adb8c Reviewed-on: https://chromium-review.googlesource.com/267554 Reviewed-by: Allie Wood <alliewood@chromium.org> Commit-Queue: Allie Wood <alliewood@chromium.org> Trybot-Ready: Allie Wood <alliewood@chromium.org> Tested-by: Allie Wood <alliewood@chromium.org>