From 958987be8f655f3b022343f3dadde1de0fb73feb Mon Sep 17 00:00:00 2001 From: Rahul Frias Date: Mon, 1 Apr 2024 17:14:05 -0700 Subject: [PATCH] Address missing dependencies or executables [ Merge of http://go/wvgerrit/195850 ] Since Widevine device builds now include APEX prebuilts, shared library dependencies for the prebuilts are in are in /apex/com.google.android.widevine/lib[64] rather than /system/lib[64] or /vendor/lib[64]. When tests are run not all the dependencies are present. These changes include * Statically linking missing dependencies * Adding /apex/com.google.android.widevine/lib[64] to the shared library path * Searching for some of the test executables in /data/nativetest[64]/vendor/ Bug: 329888778 Bug: 329891889 Bug: 329891175 Bug: 329891049 Bug: 360160204 Test: ./build_and_run_all_unit_tests.sh Change-Id: I067685cedc7701c4e6502bdac98b53e22b61ad1e --- libwvdrmengine/build_all_unit_tests.sh | 6 +++++- libwvdrmengine/mediacrypto/test/Android.mk | 5 ++++- libwvdrmengine/mediadrm/test/Android.mk | 10 ++++++++-- libwvdrmengine/run_all_unit_tests.sh | 6 ++++-- libwvdrmengine/test/unit/Android.mk | 15 ++++++++++++++- 5 files changed, 35 insertions(+), 7 deletions(-) diff --git a/libwvdrmengine/build_all_unit_tests.sh b/libwvdrmengine/build_all_unit_tests.sh index 7db340b4..f0d864c2 100755 --- a/libwvdrmengine/build_all_unit_tests.sh +++ b/libwvdrmengine/build_all_unit_tests.sh @@ -98,7 +98,11 @@ fi # If that fails, an error message will be printed. try_adb_push() { # android-tests.zip requires /data/nativetest, we should use the same - if [ -f $OUT/data/nativetest/$1 ]; then + if [ -f $OUT/data/nativetest64/$1 ]; then + test_file=$OUT/data/nativetest64/$1 + elif [ -f $OUT/data/nativetest64/vendor/$1/$1 ]; then + test_file=$OUT/data/nativetest64/vendor/$1/$1 + elif [ -f $OUT/data/nativetest/$1 ]; then test_file=$OUT/data/nativetest/$1 elif [ -f $OUT/data/nativetest/vendor/$1/$1 ]; then test_file=$OUT/data/nativetest/vendor/$1/$1 diff --git a/libwvdrmengine/mediacrypto/test/Android.mk b/libwvdrmengine/mediacrypto/test/Android.mk index fa497b45..ed30f662 100644 --- a/libwvdrmengine/mediacrypto/test/Android.mk +++ b/libwvdrmengine/mediacrypto/test/Android.mk @@ -25,11 +25,15 @@ LOCAL_STATIC_LIBRARIES := \ libcdm_protos \ libcdm_utils \ libjsmn \ + libjsoncpp \ libgmock \ libgmock_main \ libgtest \ + libwvaidl \ + libwvdrmcryptoplugin_aidl \ libwvlevel3 \ libwv_odk \ + libPlatformProperties \ LOCAL_SHARED_LIBRARIES := \ android.hardware.drm-V1-ndk \ @@ -41,7 +45,6 @@ LOCAL_SHARED_LIBRARIES := \ liblog \ libprotobuf-cpp-lite \ libutils \ - libwvaidl \ LOCAL_HEADER_LIBRARIES := \ libstagefright_headers \ diff --git a/libwvdrmengine/mediadrm/test/Android.mk b/libwvdrmengine/mediadrm/test/Android.mk index baf4a85e..f0970ef8 100644 --- a/libwvdrmengine/mediadrm/test/Android.mk +++ b/libwvdrmengine/mediadrm/test/Android.mk @@ -22,14 +22,20 @@ LOCAL_C_INCLUDES := \ LOCAL_STATIC_LIBRARIES := \ libcdm \ + libcdm_utils \ + libcutils \ libcdm_protos \ libcdm_utils \ libjsmn \ + libjsoncpp \ libgmock \ libgmock_main \ libgtest \ + libwvaidl \ + libwvdrmdrmplugin_aidl \ libwvlevel3 \ libwv_odk \ + libPlatformProperties \ LOCAL_SHARED_LIBRARIES := \ android.hardware.drm-V1-ndk \ @@ -40,7 +46,6 @@ LOCAL_SHARED_LIBRARIES := \ liblog \ libprotobuf-cpp-lite \ libutils \ - libwvaidl \ LOCAL_HEADER_LIBRARIES := \ libstagefright_headers \ @@ -91,6 +96,8 @@ LOCAL_STATIC_LIBRARIES := \ libgtest \ libgtest_main \ libjsmn \ + libwvaidl \ + libwvdrmdrmplugin_aidl \ libwvlevel3 \ libwv_odk \ @@ -100,7 +107,6 @@ LOCAL_SHARED_LIBRARIES := \ liblog \ libprotobuf-cpp-lite \ libutils \ - libwvaidl \ LOCAL_C_INCLUDES += \ external/protobuf/src \ diff --git a/libwvdrmengine/run_all_unit_tests.sh b/libwvdrmengine/run_all_unit_tests.sh index c6364158..1f54c742 100755 --- a/libwvdrmengine/run_all_unit_tests.sh +++ b/libwvdrmengine/run_all_unit_tests.sh @@ -27,7 +27,8 @@ elif [ 0 -eq `expr index "$GTEST_FILTER" "-"` ]; then fi # The Android supplement allows for installation in these paths: -OEC_PATHS=/vendor/lib64:/vendor/lib:/system/lib64/vndk-R:/system/lib/vndk-R +OEC_PATHS=/apex/com.google.android.widevine/lib64:/apex/com.google.android.widevine/lib: +OEC_PATHS+=/system/lib64:/system/lib/:/vendor/lib64:/vendor/lib:/system/lib64/vndk-R:/system/lib/vndk-R # Execute a command in "adb shell" and capture the result. adb_shell_run() { @@ -49,7 +50,8 @@ adb_shell_run() { # to load. We must reverse the library path in this case so we don't attempt # to load 64-bit libraries with the 32-bit liboemcrypto.so. if ! adb $SERIAL_NUM shell ls /vendor/lib64/liboemcrypto.so &> /dev/null; then - OEC_PATHS=/vendor/lib:/vendor/lib64 + OEC_PATHS=/apex/com.google.android.widevine/lib:/apex/com.google.android.widevine/lib64: + OEC_PATHS+=/system/lib:/system/lib64/:/vendor/lib:/vendor/lib64:/system/lib/vndk-R:/system/lib64/vndk-R fi adb $SERIAL_NUM shell "LD_LIBRARY_PATH=$OEC_PATHS GTEST_FILTER=$GTEST_FILTER $@ $test_file" \|\| echo "$adb_error" | tee "$tmp_log" ! grep -Fq "$adb_error" "$tmp_log" diff --git a/libwvdrmengine/test/unit/Android.mk b/libwvdrmengine/test/unit/Android.mk index 1e96aa10..a11a181e 100644 --- a/libwvdrmengine/test/unit/Android.mk +++ b/libwvdrmengine/test/unit/Android.mk @@ -19,18 +19,31 @@ LOCAL_C_INCLUDES := \ vendor/widevine/libwvdrmengine/oemcrypto/include \ LOCAL_STATIC_LIBRARIES := \ + libaidlcommonsupport \ libgtest \ libgtest_main \ + libjsmn \ + libjsoncpp \ + libcdm \ + libcdm_protos \ + libcdm_utils \ + libwvdrmcryptoplugin_aidl \ + libwvdrmdrmplugin_aidl \ + libwvlevel3 \ + libwv_odk \ + libwvaidl \ + libPlatformProperties \ LOCAL_SHARED_LIBRARIES := \ android.hardware.drm-V1-ndk \ libbase \ libbinder_ndk \ libcrypto \ + libcutils \ libdl \ liblog \ + libprotobuf-cpp-lite \ libutils \ - libwvaidl \ LOCAL_HEADER_LIBRARIES := \ libstagefright_foundation_headers \