summaryrefslogtreecommitdiff
path: root/patchoat/patchoat_test.cc
AgeCommit message (Collapse)Author
2018-10-02Remove patchoat.Vladimir Marko
Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: Pixel 2 XL boots. Bug: 77856493 Change-Id: I6686ce9d23e02aa8b8ef4081b302dbd860d07718
2018-09-18ART: Fix tidy warnings in patchoat (again)Andreas Gampe
Fix performance-faster-string-find warning. Bug: 32619234 Test: WITH_TIDY=1 mmma art/patchoat Change-Id: Ic8678d140cd8aa9b5c26bcbc48d3e4e326d4e56f
2018-09-07ART: Continue adding override annotationsAndreas Gampe
Use Clang-tidy's modernize-use-override to add more annotations. Ignore inferred annotations on destructors. Bug: 32619234 Test: mmma art Change-Id: Ic432c928e398d44df9171e42db04ee19946e6887
2018-06-06Fix patchoat_test for heap poisoningDavid Srbecky
The test was disabled for heap poisoning; keep it disabled. The TEST_DISABLED_FOR_HEAP_POISONING macro is in fact just a conditional return, and I didn't account for it properly. Bug: 109677607 Test: test-art-host-gtest-patchoat_test ART_HEAP_POISONING=true Change-Id: I40266d0a06102e4d8bc52357b884b0e7d9fd2630
2018-06-06Add check to CheckImageIdenticalToOriginalExceptForRelocationDavid Srbecky
Add defensive check which fails gracefully if the relocation offset is larger than the image size. Add tests. Bug: 109677607 Test: test-art-host-gtest-patchoat_test SANITIZE_HOST=address Change-Id: Ic989d5b7c77fd66e77b9e8ba90df1bf490a46e43
2018-04-12Add extra output when patchoat_test fails.Vladimir Marko
Print up to 16 bytes of the data from the first difference. Test: m test-art-host-gtest-patchoat_test Bug: 70918261 Change-Id: Icd0247c3a745bfca0bc9745c8756452cd9b89feb
2018-02-28Header library to remove dependence on runtime/David Sehr
Add a new header library to remove libdexfile and others' dependence on runtime (typically runtime/base) includes in libdexfile. Also a small step to tease dexlayout and profman away from relying on these as well. Bug: 22322814 Test: make -j 50 checkbuild make -j 50 test-art-host-gtest Change-Id: I38e2fe399a75f4bc6318c77a71954c00ea73ec2b
2018-02-20patchoat: take directories instead of filenamesChris Morin
patchoat was already ignoring the basename part of the filename passed to it for both --output-image-file and --output-image-relocation-file. We can therefore just pass in the directories instead. Bug: 72828459 Test: make test-art-host-gtest-patchoat_test Change-Id: I1a699d1f6746f068078ae768d30690431578d84e
2018-01-25patchoat: add ability to verify relocated .art filesChris Morin
Patchoat can verify that a relocated .art file hasn't been modified after generation using the --verify flag. Test: adb shell /system/bin/patchoat --verify \ --input-image-location=/system/framework/boot.art \ --output-image-file=/data/dalvik-cache/arm64/system@framework@boot.art \ --instruction-set=arm64 Bug: 66697305 Change-Id: If6ea02a0527381c520078cd6f3ae2c275a8a8ab1
2018-01-18Reland: Enable patchoat to write image relocation filesAlex Klyubin
This adds an off by default feature to patchoat whereby it can write image relocation information (i.e., which offsets are patched up by patchoat) to .rel files. .rel file writing is enabled by specifying the name of boot.art.rel file using command-line parameter --output-image-relocation-file=... The currently intended use case is to make the Android build process store these files on the system image next to boot*.art files. At boot time, in follow-up commits, these .rel files will then be used to verify that all differences between /system boot*.art and /data/dalvik-cache boot*.art files can be explained by relocation. The goal is to mitigate /data/dalvik-cache boot*.art being a persistence vector. Test: ./art/test/testrunner/run_build_test_target.py art-gtest-debug-gc Test: make test-art-host-gtest-patchoat_test Test: ART_HEAP_POISONING=true make test-art-host-gtest-patchoat_test Test: make test-art-target-gtest-patchoat_test Test: ANDROID_ROOT=out/target/product/sailfish/system \ ANDROID_DATA=out/target/product/sailfish/dex_bootjars/system/framework/arm64/ \ out/host/linux-x86/bin/patchoat \ --input-image-location=<full path to>/out/target/product/sailfish/dex_bootjars/system/framework/boot.art \ --output-image-file=out/target/product/sailfish/dex_bootjars/system/framework/arm64/boot.art \ --instruction-set=arm64 --base-offset-delta=0x10000000 produces same boot*.art files as prior to this change Test: ANDROID_ROOT=out/target/product/sailfish/system \ ANDROID_DATA=out/target/product/sailfish/dex_bootjars/system/framework/arm64/ \ out/host/linux-x86/bin/patchoat \ --input-image-location=<full path to>/out/target/product/sailfish/dex_bootjars/system/framework/boot.art \ --output-image-relocation-file=out/target/product/sailfish/dex_bootjars/system/framework/arm64/boot.art.rel \ --instruction-set=arm64 --base-offset-delta=0x10000000 produces no boot*.art files, but produces expected boot.art.rel files Bug: 66697305 Change-Id: Ia6b548c61429c61a62706d4021f8e6f22c49082e
2018-01-11Revert "Enable patchoat to write image relocation files"Mathieu Chartier
This reverts commit fbe5f2f85244bf57707afb5520b2f9aa189d9d55. Test is failing very often on the buildbots. Bug: 66697305 Change-Id: I9be7471b1c988bdddeca732c39b9323125e4384d
2018-01-10Enable patchoat to write image relocation filesAlex Klyubin
This adds an off by default feature to patchoat whereby it can write image relocation information (i.e., which offsets are patched up by patchoat) to .rel files. .rel file writing is enabled by specifying the name of boot.art.rel file using command-line parameter --output-image-relocation-file=... The currently intended use case is to make the Android build process store these files on the system image next to boot*.art files. At boot time, in follow-up commits, these .rel files will then be used to verify that all differences between /system boot*.art and /data/dalvik-cache boot*.art files can be explained by relocation. The goal is to mitigate /data/dalvik-cache boot*.art being a persistence vector. Test: ./art/test/testrunner/run_build_test_target.py art-gtest-debug-gc Test: make test-art-host-gtest-patchoat_test Test: make test-art-target-gtest-patchoat_test Test: ANDROID_ROOT=out/target/product/sailfish/system \ ANDROID_DATA=out/target/product/sailfish/dex_bootjars/system/framework/arm64/ \ out/host/linux-x86/bin/patchoat \ --input-image-location=<full path to>/out/target/product/sailfish/dex_bootjars/system/framework/boot.art \ --output-image-file=out/target/product/sailfish/dex_bootjars/system/framework/arm64/boot.art \ --instruction-set=arm64 --base-offset-delta=0x10000000 produces same boot*.art files as prior to this change Test: ANDROID_ROOT=out/target/product/sailfish/system \ ANDROID_DATA=out/target/product/sailfish/dex_bootjars/system/framework/arm64/ \ out/host/linux-x86/bin/patchoat \ --input-image-location=<full path to>/out/target/product/sailfish/dex_bootjars/system/framework/boot.art \ --output-image-relocation-file=out/target/product/sailfish/dex_bootjars/system/framework/arm64/boot.art.rel \ --instruction-set=arm64 --base-offset-delta=0x10000000 produces no boot*.art files, but produces expected boot.art.rel files Bug: 66697305 Change-Id: If18814f03dba3d72ae15981625473f4da303b1d6
2017-12-19Test all .art files in patchoat testAlex Klyubin
This augments the patchoat test to check all .art files produced by dex2oat and patchoat, rather than just the main one -- boot.art. For context, the test currently produces two .art files: boot.art and boot-core-libart-hostdex.art. Test: ./art/test/testrunner/run_build_test_target.py art-gtest-debug-gc Test: make test-art-host-gtest-patchoat_test Test: make test-art-target-gtest-patchoat_test Bug: 66697305 Change-Id: I8a90e70811ac8b98a7c2de5bfe6a388ca884e259
2017-12-15Revert^4 "Add patchoat test"Alex Klyubin
This reverts commit 1fb8d5ee6c7f03269cf08b18a0af5b4e25924a27. Skip the patchoat test on the build server where the build is not using read barriers. Read barriers (or CMS/MS garbage collector) are required for the --force-determinism feature used by the test. Test: ./art/test/testrunner/run_build_test_target.py art-gtest-debug-gc Test: make test-art-host-gtest-patchoat_test Test: make test-art-target-gtest-patchoat_test Bug: 66697305 Change-Id: I99da0111ca0e34d32473dfe721b7a2f49289e850
2017-12-14Revert "Revert "Revert "Add patchoat test"""Alex Klyubin
This reverts commit 203010a86542b16991ede122085b07eea6c55bec. Reason for revert: This test is breaking on a build server -- no idea why as no output can be seen. Change-Id: Ibb93d84e673c45e13ba81b1f045eb7c8d31494fd
2017-12-13Revert "Revert "Add patchoat test""Alex Klyubin
This reverts commit 5dd08acd0b568bb05e2e75fc02d8a6d3d7aa6f8e. This attempt removes any remaining non-determinism, by passing in --force-determinism to dex2oat in the test. As a result, the test now passes both host-side and device-side. Test: make test-art-host-gtest-patchoat_test Test: make test-art-target-gtest-patchoat_test Bug: 66697305 Change-Id: I8192ced68cec9f270b004488eb264f429bf7ab60
2017-12-12Revert "Add patchoat test"Nicolas Geoffray
Bug: 66697305 Fails on device This reverts commit 14e895ed419fcb67c16be1387d248a4e973cf940. Change-Id: Id817d738be32f44c5dfc97d2646b0090824dc404
2017-12-11Add patchoat testAlex Klyubin
The test checks that relocating an image using dex2oat and patchoat yields the same ART file, except for OAT checksum and patch offset delta. Test: make test-art-host-gtest-patchoat_test Bug: 66697305 Change-Id: I80f8b996bc8fc88ef798dceac9fd9ecd629045a3