blob: efe3772708c13381f48f7607069ba576390b81d5 [file] [log] [blame]
# 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"