[kvm-unit-tests PATCH 5/5] arch/run: unify accelerator detection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Use the same mechanism as search_qemu_binary().

Signed-off-by: Radim Krčmář <rkrcmar@xxxxxxxxxx>
---
 arm/run               | 20 +-------------------
 powerpc/run           | 18 +-----------------
 s390x/run             | 18 +-----------------
 scripts/arch-run.bash | 22 ++++++++++++++++++++++
 4 files changed, 25 insertions(+), 53 deletions(-)

diff --git a/arm/run b/arm/run
index d7d778fe1645..f2e71eca022d 100755
--- a/arm/run
+++ b/arm/run
@@ -10,26 +10,8 @@ if [ -z "$STANDALONE" ]; then
 fi
 processor="$PROCESSOR"
 
-if [ -c /dev/kvm ]; then
-	if [ "$HOST" = "arm" ] && [ "$ARCH" = "arm" ]; then
-		kvm_available=yes
-	elif [ "$HOST" = "aarch64" ]; then
-		kvm_available=yes
-	fi
-fi
-
-if [ "$ACCEL" = "kvm" ] && [ "$kvm_available" != "yes" ]; then
-	echo "KVM is needed, but not available on this host"
+ACCEL=$(get_accel '([ "$HOST" = "arm" ] && [ "$ARCH" = "arm" ]) || [ "$HOST" = "aarch64" ]') ||
 	exit 2
-fi
-
-if [ -z "$ACCEL" ]; then
-	if [ "$kvm_available" = "yes" ]; then
-		ACCEL="kvm"
-	else
-		ACCEL="tcg"
-	fi
-fi
 
 qemu=$(search_qemu_binary) ||
 	exit 2
diff --git a/powerpc/run b/powerpc/run
index e43c9fd8063c..55b987c5efc5 100755
--- a/powerpc/run
+++ b/powerpc/run
@@ -9,24 +9,8 @@ if [ -z "$STANDALONE" ]; then
 	source scripts/arch-run.bash
 fi
 
-if [ -c /dev/kvm ]; then
-	if [ "$HOST" = "ppc64" ] && [ "$ARCH" = "ppc64" ]; then
-		kvm_available=yes
-	fi
-fi
-
-if [ "$ACCEL" = "kvm" ] && [ "$kvm_available" != "yes" ]; then
-	echo "KVM is needed, but not available on this host"
+ACCEL=$(get_accel '[ "$HOST" = "ppc64" ] && [ "$ARCH" = "ppc64" ]') ||
 	exit 2
-fi
-
-if [ -z "$ACCEL" ]; then
-	if [ "$kvm_available" = "yes" ]; then
-		ACCEL="kvm"
-	else
-		ACCEL="tcg"
-	fi
-fi
 
 qemu=$(search_qemu_binary) ||
 	exit 2
diff --git a/s390x/run b/s390x/run
index ce8d45c2c8fd..67d6e88ea7e4 100755
--- a/s390x/run
+++ b/s390x/run
@@ -9,24 +9,8 @@ if [ -z "$STANDALONE" ]; then
 	source scripts/arch-run.bash
 fi
 
-if [ -c /dev/kvm ]; then
-	if [ "$HOST" = "s390x" ] && [ "$ARCH" = "s390x" ]; then
-		kvm_available=yes
-	fi
-fi
-
-if [ "$ACCEL" = "kvm" ] && [ "$kvm_available" != "yes" ]; then
-	echo "KVM is needed, but not available on this host"
+ACCEL=$(get_accel '[ "$HOST" = "s390x" ] && [ "$ARCH" = "s390x" ]') ||
 	exit 2
-fi
-
-if [ -z "$ACCEL" ]; then
-	if [ "$kvm_available" = "yes" ]; then
-		ACCEL="kvm"
-	else
-		ACCEL="tcg"
-	fi
-fi
 
 qemu=$(search_qemu_binary) ||
 	exit 2
diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash
index 994c1aa9c0cd..a696652c61b1 100644
--- a/scripts/arch-run.bash
+++ b/scripts/arch-run.bash
@@ -272,3 +272,25 @@ trap_exit_push ()
 	local old_exit=$(trap -p EXIT | sed "s/^[^']*'//;s/'[^']*$//")
 	trap -- "$1; $old_exit" EXIT
 }
+
+get_accel ()
+{
+	local kvm_available
+
+	if [ -c /dev/kvm ] && eval "$@"; then
+		kvm_available=yes
+	fi
+
+	if [ "$ACCEL" = "kvm" ] && [ "$kvm_available" != "yes" ]; then
+		echo "KVM is needed, but not available on this host" >&2
+		return 2
+	fi
+
+	if [ "$ACCEL" ]; then
+		echo $ACCEL
+	elif [ "$kvm_available" = "yes" ]; then
+		echo kvm
+	else
+		echo tcg
+	fi
+}
-- 
2.13.2




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux