summaryrefslogtreecommitdiff
path: root/tsp/scripts/common_prep_flash_conf.sh
blob: 066139b83a086cc7b347a79018bdbf70f8e31ee2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/bin/sh

# Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Script run on the remote machine (tl-runner)
#
# Author: Aleksander Mistewicz <a.mistewicz@samsung.com>

# WORKDIR_REMOTE, TARGET are given as environment variables

FAILED_DEVICE_LOG="/var/tmp/failed_devices.log"
TESTLAB_MAJOR="/opt/testlab-major"

cd "${WORKDIR_REMOTE}" || exit
ACTUAL_TARGET="${TARGET#headless-}"
case "$TARGET" in
    *odroid*)
        BOOT_IMG="$(pwd)/$(ls tizen-*-boot-*odroid*.tar.gz)"
        USR_IMG="$(pwd)/$(ls tizen-*-wayland-*odroid*.tar.gz)"
        ;;
    *artik*)
        BOOT_IMG="$(pwd)/$(ls tizen-*-boot-*artik*.tar.gz)"
        USR_IMG="$(pwd)/$(ls tizen-*-3parts-*artik*.tar.gz)"
        ;;
    *minnow*)
        USR_IMG="$(pwd)/$(ls tizen-*.raw.bz2)"
        USR_IMG_BMAP="$(pwd)/$(ls tizen-*.bmap)"
        ;;
    *mbr64*)
        USR_IMG="$(pwd)/$(ls tizen-*-minimal-mbr-x86_64.tar.gz)"
        KERNEL="$(pwd)/$(ls *-vmlinuz-*)"
        ;;
    *)
        die "Unrecognized target"
        ;;
esac

# Make sure that userspace image exists
if [ "${USR_IMG}" = "$(pwd)/" ]; then
    echo "Image not found." > sysctl.result
    exit 1
else
    # This info will be overwritten later if the tests run successfully
    echo "Testing failed." > sysctl.result
fi

# Lock resource
SDMUX="$(python "${TESTLAB_MAJOR}/tct/resource_locking.py" --retrylock "${ACTUAL_TARGET}")"
if [ -z "${SDMUX}" ]; then
    echo "Failed to allocate SD MUX device." >> sysctl.result
    echo "FAILED 1" >> sysctl.result
    exit 1
fi

echo "sdmux allocated: ${SDMUX}"

case "$TARGET" in
    *odroid*)
        "${TESTLAB_MAJOR}/tct/odroid_prepare_flash_conf.sh" "$SDMUX" "$USR_IMG" "$BOOT_IMG"
        "${TESTLAB_MAJOR}/tct/odroid_run.sh" "$SDMUX"
        ;;
    *artik*)
        "${TESTLAB_MAJOR}/tct/artik_prepare_flash_conf.sh" "$SDMUX" "$USR_IMG" "$BOOT_IMG"
        "${TESTLAB_MAJOR}/tct/odroid_run.sh" "$SDMUX"
        ;;
    *minnow*)
        "${TESTLAB_MAJOR}/tct/minnow_prepare_flash_conf.sh" "$SDMUX" "$USR_IMG"
        "${TESTLAB_MAJOR}/tct/minnow_run.sh" "$SDMUX"
        ;;
    *mbr64*)
        tar xvf "$USR_IMG"
        qemu-system-x86_64 -m 1024 -enable-kvm -smp 2 \
            -usb -net nic -net user -redir tcp:22122::22 \
            -hda tizen-common.img -kernel "${KERNEL}" -serial stdio \
            -display none \
            -append 'console=ttyS0 root=/dev/sda rw ip=10.0.2.15::10.0.2.2:255.255.255.0::eth0:none vm_name=tizen sdb_port=26100' > vm.log &
        QEMU_PID="$!"
        echo "Started qemu: $(date)" > sysctl.result
        sleep 10
        "${TESTLAB_MAJOR}/tct/minnow_run.sh" "$SDMUX"
        kill "${QEMU_PID}"
        ;;
esac

if grep -q "Testing failed." sysctl.result
then
    echo "FAILED 1" >> sysctl.result
    python "${TESTLAB_MAJOR}/tct/resource_locking.py" --unlockfailed "${SDMUX}"
    echo "$(date): ${SDMUX}" >> "${FAILED_DEVICE_LOG}"
else
    echo "FAILED 0" >> sysctl.result
    python "${TESTLAB_MAJOR}/tct/resource_locking.py" --unlock "${SDMUX}"
fi

echo "sdmux used: ${SDMUX}" >> sysctl.result

case "$TARGET" in
    *odroid*|*artik*)
        rm -v "$USR_IMG" "$BOOT_IMG"
        ;;
    *minnow*)
        rm -v "$USR_IMG" "$USR_IMG_BMAP"
        ;;
    *mbr64*)
        rm -v "$USR_IMG" "$KERNEL" tizen-common.img
        ;;
esac