create_symlinks.sh 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. # Copyright (c) 2021, The Linux Foundation. All rights reserved.
  2. #
  3. # Redistribution and use in source and binary forms, with or without
  4. # modification, are permitted provided that the following conditions are
  5. # met:
  6. # * Redistributions of source code must retain the above copyright
  7. # notice, this list of conditions and the following disclaimer.
  8. # * Redistributions in binary form must reproduce the above
  9. # copyright notice, this list of conditions and the following
  10. # disclaimer in the documentation and/or other materials provided
  11. # with the distribution.
  12. # * Neither the name of The Linux Foundation nor the names of its
  13. # contributors may be used to endorse or promote products derived
  14. # from this software without specific prior written permission.
  15. #
  16. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
  17. # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  18. # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
  19. # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
  20. # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  21. # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  22. # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  23. # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  24. # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  25. # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
  26. # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27. # This script creates symlinks for tests that are compiled as Soong modules, so
  28. # that they may be accessed from their old location in /data/kernel-tests
  29. #!/bin/sh
  30. NTEST_PATH="/data/nativetest"
  31. KTEST_PATH="/data/kernel-tests"
  32. # Any test that is compiled as a cc_test module (which applies to any Soong
  33. # module in kernel-tests-internal) is given a directory, in to which the
  34. # compiled test and its supporting files are placed. This function iterates
  35. # over the test directories in $1 and creates symlinks to all the files
  36. # contained within a given test directory. $2 and later arguemnts can be used to
  37. # specify directores to skip.
  38. create_links()
  39. {
  40. BASE_PATH="$1"
  41. shift
  42. SKIP_FILES=$@ # These can also be directories
  43. for TEST_DIR in `ls "$BASE_PATH"`; do
  44. # Filter out any file / directory in SKIP_FILES.
  45. SHOULD_SKIP=""
  46. for i in $SKIP_FILES; do
  47. if [ "$TEST_DIR" = "$i" ]; then
  48. SHOULD_SKIP="TRUE"
  49. break
  50. fi
  51. done
  52. if [ ! "$SHOULD_SKIP" = "" ]; then
  53. continue
  54. fi
  55. # Filter out any files that aren't directories (since every test we
  56. # compile is given a directory)
  57. if [ ! -d "$BASE_PATH/$TEST_DIR" ]; then
  58. continue
  59. fi
  60. # Now, create the symlinks for each test file inside of TEST_DIR
  61. for TEST_FILE in `ls "$BASE_PATH/$TEST_DIR"`; do
  62. ln -fs "$BASE_PATH/$TEST_DIR/$TEST_FILE" "$KTEST_PATH/$TEST_FILE"
  63. done
  64. done
  65. }
  66. # Create /data/kernel-tests, if it doesn't exist already
  67. mkdir -p "$KTEST_PATH"
  68. # Create the symlinks
  69. create_links "$NTEST_PATH" "vendor"
  70. create_links "$NTEST_PATH/vendor"