From 4102b281324eca22cd4ef0922a79949ec6cf846e Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Wed, 2 Nov 2016 16:17:17 -0700 Subject: tests: Set up testdata path for continuous native tests. continuous_native_tests expects the testdata under DATA/ in continuous_native_tests.zip. This CL packs a copy of the testdata into continuous_native_tests.zip as DATA/nativetest/recovery/testdata (via LOCAL_PICKUP_FILES). This CL also removes the extra copy for nativetest64. Testdata will always stay at /data/nativetest/recovery/testdata, even for 64-bit version. Otherwise we will unnecessarily get four copies (two for data/ and another two for DATA/). Bug: 32123241 Test: mmma bootable/recovery && adb sync data. On bullhead, /data/nativetest/recovery_component_test/recovery_component_test works; /data/nativetest64/recovery_component_test/recovery_component_test works. Test: m continuous_native_test; DATA/nativetest/recovery/testdata exists. Change-Id: Ifefa0309de7af23c77654e8e450848ca2da218c2 --- tests/common/test_constants.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'tests/common') diff --git a/tests/common/test_constants.h b/tests/common/test_constants.h index 3490f6805..97e74a3c2 100644 --- a/tests/common/test_constants.h +++ b/tests/common/test_constants.h @@ -13,13 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + #ifndef _OTA_TEST_CONSTANTS_H #define _OTA_TEST_CONSTANTS_H -#if defined(__LP64__) -#define NATIVE_TEST_PATH "/nativetest64" -#else -#define NATIVE_TEST_PATH "/nativetest" -#endif +#include + +static const char* data_root = getenv("ANDROID_DATA"); + +static std::string from_testdata_base(const std::string& fname) { + return std::string(data_root) + "/nativetest/recovery/testdata/" + fname; +} -#endif +#endif // _OTA_TEST_CONSTANTS_H -- cgit v1.2.3 From ef0eb3b01b66fbbc97908667a3dd1e02d710cbb7 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Mon, 14 Nov 2016 21:29:52 -0800 Subject: updater: Fix the wrong return value for package_extract_file(). 'bool success = ExtractEntryToFile()' gives opposite result. Fix the issue and add testcases. Change the one-argument version of package_extract_file() to explicitly abort for non-existent zip entry. Note that this is NOT changing the behavior. Prior to this CL, it aborts from Evaluate() function, by giving a general cause code. Now it returns kPackageExtractFileFailure. BUg: 32903624 Test: recovery_component_test works. Change-Id: I7a273e9c0d9aaaf8c472b2c778f7b8d90362c24f --- tests/common/test_constants.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'tests/common') diff --git a/tests/common/test_constants.h b/tests/common/test_constants.h index 97e74a3c2..93e4ab5b2 100644 --- a/tests/common/test_constants.h +++ b/tests/common/test_constants.h @@ -19,6 +19,15 @@ #include +// Zip entries in ziptest_valid.zip. +static const std::string kATxtContents("abcdefghabcdefgh\n"); +static const std::string kBTxtContents("abcdefgh\n"); + +// echo -n -e "abcdefghabcdefgh\n" | sha1sum +static const std::string kATxtSha1Sum("32c96a03dc8cd20097940f351bca6261ee5a1643"); +// echo -n -e "abcdefgh\n" | sha1sum +static const std::string kBTxtSha1Sum("e414af7161c9554089f4106d6f1797ef14a73666"); + static const char* data_root = getenv("ANDROID_DATA"); static std::string from_testdata_base(const std::string& fname) { -- cgit v1.2.3 From 1036d36542c452b8df0200d13029d172646a2719 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Thu, 17 Nov 2016 22:49:56 -0800 Subject: updater: Add testcase for package_extract_dir(). Test: recovery_component_test passes. Change-Id: I3af4707bc42c7331ca961be8b967a53de82ea25b --- tests/common/test_constants.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tests/common') diff --git a/tests/common/test_constants.h b/tests/common/test_constants.h index 93e4ab5b2..f6b6922a4 100644 --- a/tests/common/test_constants.h +++ b/tests/common/test_constants.h @@ -22,6 +22,8 @@ // Zip entries in ziptest_valid.zip. static const std::string kATxtContents("abcdefghabcdefgh\n"); static const std::string kBTxtContents("abcdefgh\n"); +static const std::string kCTxtContents("abcdefghabcdefgh\n"); +static const std::string kDTxtContents("abcdefgh\n"); // echo -n -e "abcdefghabcdefgh\n" | sha1sum static const std::string kATxtSha1Sum("32c96a03dc8cd20097940f351bca6261ee5a1643"); -- cgit v1.2.3 From ca948564168a597c2d51a26555e327001f7eecc4 Mon Sep 17 00:00:00 2001 From: Tianjie Xu Date: Tue, 28 Feb 2017 12:26:29 -0800 Subject: Skip BootloaderMessageTest, UncryptTest for devices without /misc Skip these two tests if /misc partition is not found in fstab. Bug: 35712836 Test: Both test skip correctly if there's no /misc in fstab.${hardware}. Change-Id: I38417a8677030229a335e43eaef85ae70c4e0845 --- tests/common/component_test_util.h | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 tests/common/component_test_util.h (limited to 'tests/common') diff --git a/tests/common/component_test_util.h b/tests/common/component_test_util.h new file mode 100644 index 000000000..44322972b --- /dev/null +++ b/tests/common/component_test_util.h @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agree to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef _COMPONENT_TEST_UTIL_H +#define _COMPONENT_TEST_UTIL_H + +#include + +#include +#include + +// Check if the /misc entry exists in the fstab. +static bool parse_misc() { + // The fstab path is "/fstab.${ro.hardware}". + std::string ro_hardware = android::base::GetProperty("ro.hardware", ""); + if (ro_hardware.empty()) { + GTEST_LOG_(INFO) << "Failed to get ro.hardware."; + return false; + } + + std::string fstab_path = "/fstab." + ro_hardware; + fstab* fstab = fs_mgr_read_fstab(fstab_path.c_str()); + if (fstab == nullptr) { + GTEST_LOG_(INFO) << "Failed to read " << fstab_path; + return false; + } + + fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab, "/misc"); + if (record == nullptr) { + GTEST_LOG_(INFO) << "Failed to find /misc in fstab."; + return false; + } + return true; +} + +#endif //_COMPONENT_TEST_UTIL_H + -- cgit v1.2.3 From d13b6cf29c71412adac3b0dca5eddcd6c75f5163 Mon Sep 17 00:00:00 2001 From: Bowgo Tsai Date: Fri, 10 Mar 2017 16:00:40 +0800 Subject: recovery: replacing fs_mgr_read_fstab() with new fs_mgr APIs The fstab settings of early-mounted partitions (e.g., /vendor) will be in kernel device tree. Switch to the new API to get the whole settings with those in device tree: fs_mgr_read_fstab_with_dt("/etc/recovery.fstab") The original default /fstab.{ro.hardware} might be moved to /vendor/etc/. or /odm/etc/. Use another new API to get the default fstab instead of using the hard-coded /fstab.{ro.hardware}. This API also includes the settings from device tree: fs_mgr_read_fstab_default() Bug: 35811655 Test: boot sailfish recovery Change-Id: Iaa56ac7f7b4c4dfc7180c65f03e9a37b94f1de09 --- tests/common/component_test_util.h | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'tests/common') diff --git a/tests/common/component_test_util.h b/tests/common/component_test_util.h index 44322972b..3fee32d62 100644 --- a/tests/common/component_test_util.h +++ b/tests/common/component_test_util.h @@ -24,21 +24,14 @@ // Check if the /misc entry exists in the fstab. static bool parse_misc() { - // The fstab path is "/fstab.${ro.hardware}". - std::string ro_hardware = android::base::GetProperty("ro.hardware", ""); - if (ro_hardware.empty()) { - GTEST_LOG_(INFO) << "Failed to get ro.hardware."; + std::unique_ptr fstab(fs_mgr_read_fstab_default(), + fs_mgr_free_fstab); + if (!fstab) { + GTEST_LOG_(INFO) << "Failed to read default fstab"; return false; } - std::string fstab_path = "/fstab." + ro_hardware; - fstab* fstab = fs_mgr_read_fstab(fstab_path.c_str()); - if (fstab == nullptr) { - GTEST_LOG_(INFO) << "Failed to read " << fstab_path; - return false; - } - - fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab, "/misc"); + fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab.get(), "/misc"); if (record == nullptr) { GTEST_LOG_(INFO) << "Failed to find /misc in fstab."; return false; -- cgit v1.2.3