Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / third_party / ot-br-posix / repo / tests / scripts / check-raspbian
1 #!/bin/bash
2 #
3 #  Copyright (c) 2018, The OpenThread Authors.
4 #  All rights reserved.
5 #
6 #  Redistribution and use in source and binary forms, with or without
7 #  modification, are permitted provided that the following conditions are met:
8 #  1. Redistributions of source code must retain the above copyright
9 #     notice, this list of conditions and the following disclaimer.
10 #  2. Redistributions in binary form must reproduce the above copyright
11 #     notice, this list of conditions and the following disclaimer in the
12 #     documentation and/or other materials provided with the distribution.
13 #  3. Neither the name of the copyright holder nor the
14 #     names of its contributors may be used to endorse or promote products
15 #     derived from this software without specific prior written permission.
16 #
17 #  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 #  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 #  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 #  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21 #  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 #  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 #  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 #  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 #  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 #  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 #  POSSIBILITY OF SUCH DAMAGE.
28 #
29
30 set -e
31 set -x
32
33 TOOLS_HOME=$HOME/.cache/tools
34
35 main()
36 {
37     IMAGE_NAME=$(basename "${IMAGE_URL}" .zip)
38     STAGE_DIR=/tmp/raspbian
39     IMAGE_DIR=/media/rpi
40     IMAGE_FILE="$TOOLS_HOME"/images/"$IMAGE_NAME".img
41
42     [ -d "$STAGE_DIR" ] || mkdir -p "$STAGE_DIR"
43     cp -v "$IMAGE_FILE" "$STAGE_DIR"/raspbian.img
44
45     python3 -m git_archive_all "$STAGE_DIR"/repo.tar.gz
46
47     cat >"$STAGE_DIR"/check.sh <<EOF
48 set -ex
49
50 export LC_ALL=C
51 export DEBIAN_FRONTEND=noninteractive
52 export RELEASE=1
53
54 echo "127.0.0.1 \$(hostname)" >> /etc/hosts
55 chown -R pi:pi /home/pi/repo
56 cd /home/pi/repo
57 echo 1 | sudo tee /proc/sys/net/ipv6/conf/all/disable_ipv6
58 apt-get update
59 apt-get install -y --no-install-recommends git
60 su -m -c 'script/bootstrap' pi
61 su -m -c 'NETWORK_MANAGER=0 script/setup' pi
62 EOF
63
64     (
65         cd docker-rpi-emu/scripts \
66             && sudo mkdir -p "$IMAGE_DIR" \
67             && sudo ./mount.sh "$STAGE_DIR"/raspbian.img "$IMAGE_DIR" \
68             && sudo mount --bind /dev/pts "$IMAGE_DIR"/dev/pts \
69             && sudo mkdir -p "$IMAGE_DIR"/home/pi/repo \
70             && sudo tar xzf "$STAGE_DIR"/repo.tar.gz --strip-components 1 -C "$IMAGE_DIR"/home/pi/repo \
71             && sudo cp -v "$STAGE_DIR"/check.sh "$IMAGE_DIR"/home/pi/check.sh \
72             && sudo ./qemu-setup.sh "$IMAGE_DIR" \
73             && sudo chroot "$IMAGE_DIR" /bin/bash /home/pi/check.sh
74         sudo umount -lf "$IMAGE_DIR"/dev/pts || true
75         sudo ./qemu-cleanup.sh "$IMAGE_DIR" || true
76         sudo umount -lf "$IMAGE_DIR"/dev || true
77         sudo ./unmount.sh "$IMAGE_DIR"
78     )
79 }
80
81 main "$@"