From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7163187300010033152 X-Received: by 2002:a9d:6206:0:b0:659:d9e4:b8f with SMTP id g6-20020a9d6206000000b00659d9e40b8fmr7156958otj.182.1668930602804; Sat, 19 Nov 2022 23:50:02 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:aca:3683:0:b0:345:bc21:cf7a with SMTP id d125-20020aca3683000000b00345bc21cf7als2654054oia.1.-pod-prod-gmail; Sat, 19 Nov 2022 23:50:02 -0800 (PST) X-Google-Smtp-Source: AA0mqf7jMMZUljMlmdYRZFPHIMA2gXiOw60Wp0JZCzaa+z3OwzSEYOx0CI79KoqeiaPeJLT0Oug3 X-Received: by 2002:a54:4e8d:0:b0:350:d677:ca32 with SMTP id c13-20020a544e8d000000b00350d677ca32mr9598429oiy.26.1668930602280; Sat, 19 Nov 2022 23:50:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668930602; cv=none; d=google.com; s=arc-20160816; b=Vd5yAAGFVja9Fw1lAWXrXs+ful2HU/Yv2w9cTJar+Z8UUfc+VrGSVMVL35x7iQJjNA xGOeUNYstD0UN+Nn5N6oondidRE6iCeO34kyn/IZ/Bts0I6XofRNkeC0aWG6BVLocfGa DX4/dE0tcerJ5I8EejxWdT9561nfRAOj+Un0HI77OAdSA3W/3jmC/cNXkvGPkc99/qTR 77zxzylTtr0/+qKdOv50zTtGWVFdVa2+ywXfeneycu1vR/ADPIrAEbgeiDRWBgJF5WYQ D0YgKJzCFMXxvSK4dhNACQIM0l9dBNiwotfdzj7HkdtQbQmjm/MaMD2NXXYsMogkz8kS 1UmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=yvl1kUcTV/ZBG1wKovDxCaLXP7AXX8Hc3aK02jJPzwg=; b=gBjBPSqsE7wPMW04jeftemI17HoCO7aJn+diArhAUe+op6KHmUOm2x9y+jGhPeVS9+ x/o8iyQYk8BQZQpSONtjGh2sE/esoEZZI84QtAdmvwEz9SpKX+8ysV1QupsNt1IouAYs ylPbzjX5Ofj7sSWSBYBxkdIv4dWI96B2X9+nDwWc69aLzoIUzauG8zIj9stqwAaPqLzX YBXffxlrwEBA1zdM9XDfbfvDUncNQJGNnTLYMJrQCmTh9QDzO9BEl7+qs274QGMcle0F Io2HYcjSkhtAaN4zR1CyiXdbyGniWxr9tf8skTA3PedYcpXrycD10Rtk/I8XTbmzZjQl L/mw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of venkata.pyla@toshiba-tsip.com designates 210.130.202.155 as permitted sender) smtp.mailfrom=venkata.pyla@toshiba-tsip.com Return-Path: Received: from mo-csw.securemx.jp (mo-csw1516.securemx.jp. [210.130.202.155]) by gmr-mx.google.com with ESMTPS id g8-20020acab608000000b0035522fd7d98si498417oif.1.2022.11.19.23.50.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 19 Nov 2022 23:50:02 -0800 (PST) Received-SPF: pass (google.com: domain of venkata.pyla@toshiba-tsip.com designates 210.130.202.155 as permitted sender) client-ip=210.130.202.155; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of venkata.pyla@toshiba-tsip.com designates 210.130.202.155 as permitted sender) smtp.mailfrom=venkata.pyla@toshiba-tsip.com Received: by mo-csw.securemx.jp (mx-mo-csw1516) id 2AK7nxQO025981; Sun, 20 Nov 2022 16:49:59 +0900 X-Iguazu-Qid: 34trSN9b0BlMoYzG7N X-Iguazu-QSIG: v=2; s=0; t=1668930599; q=34trSN9b0BlMoYzG7N; m=6K8ASsQwyd1UNJjuY6VpSgCBzsHtYKiwDvcLQFKm8aY= Received: from imx12-a.toshiba.co.jp ([38.106.60.135]) by relay.securemx.jp (mx-mr1512) id 2AK7nwY2005280 (version=TLSv1.2 cipher=AES128-GCM-SHA256 bits=128 verify=NOT); Sun, 20 Nov 2022 16:49:59 +0900 From: venkata.pyla@toshiba-tsip.com To: isar-users@googlegroups.com Cc: venkata pyla , jan.kiszka@siemens.com, henning.schild@siemens.com, kazuhiro3.hayashi@toshiba.co.jp, dinesh.kumar@toshiba-tsip.com Subject: [PATCH] scripts/repro-test.sh: script to test reproducibility of Isar image Date: Sun, 20 Nov 2022 13:23:36 +0530 X-TSB-HOP2: ON Message-Id: <20221120075336.16006-1-venkata.pyla@toshiba-tsip.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20221110091226.4a3695f2@md1za8fc.ad001.siemens.net> References: <20221110091226.4a3695f2@md1za8fc.ad001.siemens.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-OriginalArrivalTime: 20 Nov 2022 07:49:56.0862 (UTC) FILETIME=[AF0D31E0:01D8FCB4] X-TUID: 24cXZNoYHd4k From: venkata pyla This script helps to identify reproducible problems in isar image, it uses 'diffoscope'[1] tool to check the difference between two consecutive builds and copy the differeneces in html format. [1] https://diffoscope.org/ Signed-off-by: venkata pyla --- scripts/repro-test.sh | 105 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100755 scripts/repro-test.sh diff --git a/scripts/repro-test.sh b/scripts/repro-test.sh new file mode 100755 index 0000000..0509f32 --- /dev/null +++ b/scripts/repro-test.sh @@ -0,0 +1,105 @@ +#!/bin/bash + +set -e + +DISTRO="debian-bullseye" +MACHINE="qemuamd64" +DISTRO_ARCH="amd64" +IMAGE_TYPE="isar-image-base" + +clean(){ + if [ $? -eq 0 ]; then + [ -d $tmpdir ] && sudo rm -rf $tmpdir + else + echo "Keep build artifacts at $tmpdir" + fi +} + +build(){ + build_id="$1" + echo "Build name: $build_id" + mkdir "$tmpdir/build" + + cd "$isar_root_dir" + . isar-init-build-env "$tmpdir/build" && bitbake mc:${MACHINE}-${DISTRO#*-}:${IMAGE_TYPE} + + mv "$tmpdir/build" "$tmpdir/$build_id" +} + +repro_check(){ + image1="$tmpdir/$1/tmp/deploy/images/${MACHINE}/${IMAGE_TYPE}-${DISTRO}-${MACHINE}.tar.gz" + image2="$tmpdir/$2/tmp/deploy/images/${MACHINE}/${IMAGE_TYPE}-${DISTRO}-${MACHINE}.tar.gz" + + # Compare two build artifacts + if diffoscope --html-dir "$tmpdir/diffoscope_html_output" "$image1" "$image2"; then + echo "[Success] The build artifacts are reproduicible" + else + echo "[Fail] The build artifacts are not matching" + fi +} + +usage() { + echo "This script verifies the reproducibility of the Isar images." + echo + echo "Usage:" + echo " $0 [params]" + echo + echo "Parameters:" + echo " -d, --distro DISTRO set DISTRO variable for the builds (e.g.: debian-buster, debian-bullseye)" + echo " -m, --machine MACHINE set MACHINE variable for the builds (e.g.: qemuamd64, qemuarm64, qemuarmhf)" + echo " -a, --arch DISTRO_ARCH set DISTRO_ARCH variable for the builds (e.g.: amd64, arm64, armhf)" + echo " -h, --help" + echo +} + +while [ "$1" != "" ]; do + case $1 in + -d | --distro ) + shift + DISTRO="$1" + ;; + -m | --mahcine ) + shift + MACHINE="$1" + ;; + -a | --arch ) + shift + DISTRO_ARCH="$1" + ;; + -h | --help ) + usage + exit + ;; + * ) + usage + exit 1 + esac + shift +done + +if ! command -v diffoscope &> /dev/null +then + echo "diffoscope could not be found" + exit +fi + +cd "$(dirname "$0")/.." +isar_root_dir="$(pwd)" + +echo "Distro: $DISTRO" +echo "MACHINE: $MACHINE" +echo "DISTRO_ARCH: $DISTRO_ARCH" + +# export the variables for the build +export DISTRO=${DISTRO} +export MACHINE=${MACHINE} +export DISTRO_ARCH=${DISTRO_ARCH} + +# Temorary directory for keeping build artifacts +tmpdir=$(mktemp --directory --tmpdir /home/seshu/temp/isar.repro.test.XXXXXXXXXX) +trap clean INT TERM EXIT + +build build1 +build build2 + +repro_check build1 build2 -- 2.20.1