Daniel P. Berrange cb7180
From ace1ee225f5cd87fb095054a6a19bdcd0fa57518 Mon Sep 17 00:00:00 2001
Daniel P. Berrange cb7180
From: Peter Krempa <pkrempa@redhat.com>
Daniel P. Berrange cb7180
Date: Thu, 10 Dec 2015 14:36:51 +0100
Daniel P. Berrange cb7180
Subject: [PATCH] test: qemuxml2argv: Mock virMemoryMaxValue to remove 32/64
Daniel P. Berrange cb7180
 bit difference
Daniel P. Berrange cb7180
Daniel P. Berrange cb7180
Always return LLONG_MAX even on 32 bit systems. The limitation
Daniel P. Berrange cb7180
originates from our use of "unsigned long" in several APIs. The internal
Daniel P. Berrange cb7180
data type is unsigned long long. Make the test suite deterministic by
Daniel P. Berrange cb7180
removing the architecture difference.
Daniel P. Berrange cb7180
Daniel P. Berrange cb7180
Flaw was introduced in 645881139b3d2c86acf9d644c3a1471520bc9e57 where
Daniel P. Berrange cb7180
I've added a test that uses too large numbers.
Daniel P. Berrange cb7180
---
Daniel P. Berrange cb7180
 src/util/virutil.c       |  2 ++
Daniel P. Berrange cb7180
 tests/qemuxml2argvmock.c | 10 ++++++++++
Daniel P. Berrange cb7180
 2 files changed, 12 insertions(+)
Daniel P. Berrange cb7180
Daniel P. Berrange cb7180
diff --git a/src/util/virutil.c b/src/util/virutil.c
Daniel P. Berrange cb7180
index 177f9d7..bb9604a 100644
Daniel P. Berrange cb7180
--- a/src/util/virutil.c
Daniel P. Berrange cb7180
+++ b/src/util/virutil.c
Daniel P. Berrange cb7180
@@ -2658,6 +2658,8 @@ virMemoryLimitIsSet(unsigned long long value)
Daniel P. Berrange cb7180
  * @capped: whether the value must fit into unsigned long
Daniel P. Berrange cb7180
  *   (long long is assumed otherwise)
Daniel P. Berrange cb7180
  *
Daniel P. Berrange cb7180
+ * Note: This function is mocked in tests/qemuxml2argvmock.c for test stability
Daniel P. Berrange cb7180
+ *
Daniel P. Berrange cb7180
  * Returns the maximum possible memory value in bytes.
Daniel P. Berrange cb7180
  */
Daniel P. Berrange cb7180
 unsigned long long
Daniel P. Berrange cb7180
diff --git a/tests/qemuxml2argvmock.c b/tests/qemuxml2argvmock.c
Daniel P. Berrange cb7180
index e58b8ce..8426108 100644
Daniel P. Berrange cb7180
--- a/tests/qemuxml2argvmock.c
Daniel P. Berrange cb7180
+++ b/tests/qemuxml2argvmock.c
Daniel P. Berrange cb7180
@@ -74,3 +74,13 @@ virTPMCreateCancelPath(const char *devpath)
Daniel P. Berrange cb7180
 
Daniel P. Berrange cb7180
     return path;
Daniel P. Berrange cb7180
 }
Daniel P. Berrange cb7180
+
Daniel P. Berrange cb7180
+/**
Daniel P. Berrange cb7180
+ * Large values for memory would fail on 32 bit systems, despite having
Daniel P. Berrange cb7180
+ * variables that support it.
Daniel P. Berrange cb7180
+ */
Daniel P. Berrange cb7180
+unsigned long long
Daniel P. Berrange cb7180
+virMemoryMaxValue(bool capped ATTRIBUTE_UNUSED)
Daniel P. Berrange cb7180
+{
Daniel P. Berrange cb7180
+    return LLONG_MAX;
Daniel P. Berrange cb7180
+}
Daniel P. Berrange cb7180
-- 
Daniel P. Berrange cb7180
2.5.0
Daniel P. Berrange cb7180