| # Copyright (c) 2021, The Linux Foundation. All rights reserved. |
| # |
| # Redistribution and use in source and binary forms, with or without |
| # modification, are permitted provided that the following conditions are |
| # met: |
| # * Redistributions of source code must retain the above copyright |
| # notice, this list of conditions and the following disclaimer. |
| # * Redistributions in binary form must reproduce the above |
| # copyright notice, this list of conditions and the following |
| # disclaimer in the documentation and/or other materials provided |
| # with the distribution. |
| # * Neither the name of The Linux Foundation nor the names of its |
| # contributors may be used to endorse or promote products derived |
| # from this software without specific prior written permission. |
| # |
| # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED |
| # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT |
| # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS |
| # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR |
| # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
| # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE |
| # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN |
| # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| # This script creates symlinks for tests that are compiled as Soong modules, so |
| # that they may be accessed from their old location in /data/kernel-tests |
| |
| #!/bin/sh |
| |
| NTEST_PATH="/data/nativetest" |
| KTEST_PATH="/data/kernel-tests" |
| |
| # Any test that is compiled as a cc_test module (which applies to any Soong |
| # module in kernel-tests-internal) is given a directory, in to which the |
| # compiled test and its supporting files are placed. This function iterates |
| # over the test directories in $1 and creates symlinks to all the files |
| # contained within a given test directory. $2 and later arguemnts can be used to |
| # specify directores to skip. |
| create_links() |
| { |
| BASE_PATH="$1" |
| shift |
| SKIP_FILES=$@ # These can also be directories |
| |
| for TEST_DIR in `ls "$BASE_PATH"`; do |
| # Filter out any file / directory in SKIP_FILES. |
| SHOULD_SKIP="" |
| for i in $SKIP_FILES; do |
| if [ "$TEST_DIR" = "$i" ]; then |
| SHOULD_SKIP="TRUE" |
| break |
| fi |
| done |
| if [ ! "$SHOULD_SKIP" = "" ]; then |
| continue |
| fi |
| |
| |
| # Filter out any files that aren't directories (since every test we |
| # compile is given a directory) |
| if [ ! -d "$BASE_PATH/$TEST_DIR" ]; then |
| continue |
| fi |
| |
| # Now, create the symlinks for each test file inside of TEST_DIR |
| for TEST_FILE in `ls "$BASE_PATH/$TEST_DIR"`; do |
| ln -fs "$BASE_PATH/$TEST_DIR/$TEST_FILE" "$KTEST_PATH/$TEST_FILE" |
| done |
| done |
| } |
| |
| # Create /data/kernel-tests, if it doesn't exist already |
| mkdir -p "$KTEST_PATH" |
| |
| # Create the symlinks |
| create_links "$NTEST_PATH" "vendor" |
| create_links "$NTEST_PATH/vendor" |