OLD | NEW |
| (Empty) |
1 #!/bin/bash | |
2 | |
3 # Copyright (c) 2009 The Chromium OS Authors. All rights reserved. | |
4 # Use of this source code is governed by a BSD-style license that can be | |
5 # found in the LICENSE file. | |
6 | |
7 # Load common constants. This should be the first executable line. | |
8 # The path to common.sh should be relative to your script's location. | |
9 . "$(dirname "$0")/common.sh" | |
10 | |
11 # Script must be run inside the chroot | |
12 restart_in_chroot_if_needed $* | |
13 get_default_board | |
14 | |
15 # Flags | |
16 DEFINE_string build_root "$DEFAULT_BUILD_ROOT" \ | |
17 "Root of build output" | |
18 DEFINE_string board "$DEFAULT_BOARD" \ | |
19 "Target board of which tests were built" | |
20 | |
21 # Parse command line | |
22 FLAGS "$@" || exit 1 | |
23 eval set -- "${FLAGS_ARGV}" | |
24 | |
25 # Run tests | |
26 if [ -z "$FLAGS_board" ]; then | |
27 echo Error: --board required | |
28 exit 1 | |
29 fi | |
30 | |
31 TESTS_DIR="/build/${FLAGS_board}/tests" | |
32 LD_LIBRARY_PATH=/build/${FLAGS_board}/lib:/build/${FLAGS_board}/usr/lib:\ | |
33 /build/${FLAGS_board}/usr/lib/gcc/i686-pc-linux-gnu/4.4.1/:\ | |
34 /build/${FLAGS_board}/usr/lib/opengl/xorg-x11/lib | |
35 | |
36 # Die on error; print commands | |
37 set -ex | |
38 | |
39 # Change to a test directory to make it easier for tests to write | |
40 # to and clean up temporary files. | |
41 TEST_CWD=$(mktemp -d /tmp/run_tests.XXXX) | |
42 cd $TEST_CWD | |
43 | |
44 function cleanup() { | |
45 cd - | |
46 rm -rf $TEST_CWD | |
47 trap - 0 | |
48 } | |
49 | |
50 trap cleanup ERR 0 | |
51 | |
52 # NOTE: We currently skip cryptohome_tests (which happens to have a different | |
53 # suffix than the other tests), because it doesn't work. | |
54 # NOTE: Removed explicit use of the target board's ld-linux.so.2 so that this | |
55 # will work on hardened builds (with PIE on by default). Tests pass on | |
56 # hardened and non-hardened builds without this explicit use, but we only | |
57 # disable this on hardened, since that is where the PIE conflict happens. | |
58 for i in ${TESTS_DIR}/*_{test,unittests}; do | |
59 if [[ "`file -b $i`" = "POSIX shell script text executable" ]]; then | |
60 LD_LIBRARY_PATH=$LD_LIBRARY_PATH /build/${FLAGS_board}/bin/bash $i | |
61 else | |
62 LD_LIBRARY_PATH=$LD_LIBRARY_PATH $i | |
63 fi | |
64 done | |
65 | |
66 | |
OLD | NEW |