Add mbr64 target support 82/95282/5
authorAleksander Mistewicz <a.mistewicz@samsung.com>
Thu, 6 Oct 2016 14:48:19 +0000 (16:48 +0200)
committerAleksander Mistewicz <a.mistewicz@samsung.com>
Mon, 9 Jan 2017 18:53:03 +0000 (19:53 +0100)
mbr64 is a minimal generic x86_64 image.

Database update is required. Delete it or run:
    . tsp/common.sh
    sqlite3 "${DBPATH}" -batch < tsp/results-values-device.sql

Change-Id: I7f4e45b0da4afa06d662c3a6a378076a933a3130
Signed-off-by: Aleksander Mistewicz <a.mistewicz@samsung.com>
tct/conf/ssh_config
tsp/jobs/common_prep_flash_conf.sh
tsp/jobs/trigger_downloads.sh
tsp/results-values-device.sql
tsp/scripts/common_prep_flash_conf.sh
tsp/scripts/download_image.py

index 92d7921..d1b3a9b 100644 (file)
@@ -4,3 +4,6 @@ ControlPersist 1m
 StrictHostKeyChecking=no
 UserKnownHostsFile=/dev/null
 ConnectTimeout=30
+Host mbr64_1
+    Hostname localhost
+    Port 22122
index c34e218..9ad2af1 100755 (executable)
@@ -45,6 +45,10 @@ case "$TARGET" in
         USERSPACE_IMG="$(ls "${DWN_WORKDIR}"/tizen-common_*-wayland-*-sda.raw.bz2)"
         USERSPACE_IMG_BMAP="$(ls "${DWN_WORKDIR}"/tizen-common_*-wayland-*-sda.bmap)"
         ;;
+    *mbr64*)
+        USERSPACE_IMG="$(ls "${DWN_WORKDIR}"/tizen-common_*-minimal-mbr-*.tar.gz)"
+        KERNEL="$(ls "${DWN_WORKDIR}"/tizen-common_*-minimal-mbr-*-vmlinuz-*)"
+        ;;
 esac
 
 FAIL_CNT="$3"
@@ -77,6 +81,9 @@ case "$TARGET" in
     *minnow*)
         scp "${USERSPACE_IMG}" "${USERSPACE_IMG_BMAP}" tl-runner:"${WORKDIR_REMOTE}/" || retrigger "ssh: copy failed"
         ;;
+    *mbr64*)
+        scp "${USERSPACE_IMG}" "${KERNEL}" tl-runner:"${WORKDIR_REMOTE}/" || retrigger "ssh: copy failed"
+        ;;
 esac
 
 MULTIPLEX_FILE="common_test.yaml"
index 1a76dc6..8375254 100755 (executable)
@@ -59,7 +59,7 @@ do
     fi
     # kill currently running jobs for this url
     for i in $(tsmaster | awk -v URL="$url" '$2 ~ "running" && $0 ~ URL {print $1}'); do kill "$(tsmaster -p "$i")"; done
-    for target in "minnow32" "minnow64" "odroid"
+    for target in "minnow32" "minnow64" "odroid" "mbr64"
     do
         rm -rf "${WS_DOWNLOAD}/$next"
         mkdir -p "${WS_DOWNLOAD}/$next"
index cfe3740..1f2412d 100644 (file)
@@ -1,3 +1,4 @@
 INSERT OR IGNORE INTO device VALUES (NULL, "odroid");
 INSERT OR IGNORE INTO device VALUES (NULL, "minnow32");
 INSERT OR IGNORE INTO device VALUES (NULL, "minnow64");
+INSERT OR IGNORE INTO device VALUES (NULL, "mbr64");
index 9350fd8..ef9a4fc 100755 (executable)
@@ -32,6 +32,10 @@ case "$TARGET" in
         USR_IMG="$(pwd)/$(ls tizen-common_*_common-*-sda.raw.bz2)"
         USR_IMG_BMAP="$(pwd)/$(ls tizen-common_*_common-*-sda.bmap)"
         ;;
+    *mbr64*)
+        USR_IMG="$(pwd)/$(ls tizen-common_*-minimal-mbr-*.tar.gz)"
+        KERNEL="$(pwd)/$(ls tizen-common_*-minimal-mbr-*-vmlinuz-*)"
+        ;;
 esac
 
 # Make sure that userspace image exists
@@ -60,6 +64,19 @@ case "$TARGET" in
         "${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
@@ -80,4 +97,7 @@ case "$TARGET" in
     *minnow*)
         rm -v "$USR_IMG" "$USR_IMG_BMAP"
         ;;
+    *mbr64*)
+        rm -v "$USR_IMG" "$KERNEL" tizen-common.img
+        ;;
 esac
index 52a4510..1ae5def 100755 (executable)
@@ -27,7 +27,7 @@ import urllib2
 import argparse
 import logging
 
-__version__ = "1.1.1"
+__version__ = "1.1.2"
 __license__ = "APACHE-2.0"
 __author__ = "Aleksander Mistewicz"
 __author_email__ = "a.mistewicz@samsung.com"
@@ -177,6 +177,28 @@ class ImageDownloader:
             self.snap_pkgs = "http://download.tizen.org/snapshots/tizen/common/tizen-common_" \
                     + self.snap_nr + "/" + self.BASE_MINNOW_WAYLAND + self.MINNOW_NAME \
                     + "/tizen-common_" + self.snap_nr + "_" + self.MINNOW_NAME + ".packages"
+        elif "mbr64" == self.target:
+            self.BASE_MBR64 = "images/x86_64-wayland/"
+            self.NAME_MBR64 = "common-minimal-mbr-x86_64"
+            self.create_projectconf("x86_64", "Qemu")
+            mbr64_common_prefix = self.url + self.BASE_MBR64 + self.NAME_MBR64
+            img_usr = str.join(mbr64_common_prefix, "/tizen-common_", self.ver_nr, "_", self.NAME_MBR64)
+
+            # Userspace image
+            self.imgs.append(img_usr + ".tar.gz")
+            md5sums = mbr64_common_prefix + "/MD5SUMS"
+            self.md5sums.append(md5sums)
+
+            # Kernel
+            kernel_name = self.get_kernel_name(md5sums)
+            if kernel_name:
+                self.imgs.append(mbr64_common_prefix + "/" + kernel_name)
+
+            # Packages
+            self.pkgs = img_usr + ".packages"
+            self.snap_pkgs = "http://download.tizen.org/snapshots/tizen/common/tizen-common_" \
+                    + self.snap_nr + "/" + self.BASE_MBR64 + self.NAME_MBR64 \
+                    + "/tizen-common_" + self.snap_nr + "_" + self.NAME_MBR64 + ".packages"
         else:
             logging.error("Unkonown target %s", self.target)
             return
@@ -186,6 +208,15 @@ class ImageDownloader:
         logging.debug("Package files (prerelease): %s", self.pkgs)
         logging.debug("Package files (snapshot): %s", self.snap_pkgs)
 
+    def get_kernel_name(self, md5sums_url):
+        f = self.fetch_url(md5sums_url)
+        kernel_name = re.findall(r'tizen-common_.+vmlinuz.+', f)
+        if len(kernel_name) >= 1:
+            return kernel_name[0]
+        else:
+            logging.error("Failed to get kernel name")
+            return None
+
     def run(self):
         if self.dry:
             logging.debug("Skipping: run")