From: Peter Krempa Date: Wed, 2 Aug 2017 15:23:51 +0000 (+0200) Subject: tests: deterministichash: Make hash tables arch-independent X-Git-Tag: v3.7.0-rc1~208 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f536b0dd7318c736c20ae646209671011d16c12c;p=thirdparty%2Flibvirt.git tests: deterministichash: Make hash tables arch-independent It turns out that our implementation of the hashing function is endian-dependent and thus if used on various architectures the testsuite may have different results. Work this around by mocking virHashCodeGen to something which does not use bit operations instead of just setting a deterministic seed. --- diff --git a/tests/qemumonitorjsondata/qemumonitorjson-nodename-relative.result b/tests/qemumonitorjsondata/qemumonitorjson-nodename-relative.result index 6c0c77618c..5288319d30 100644 --- a/tests/qemumonitorjsondata/qemumonitorjson-nodename-relative.result +++ b/tests/qemumonitorjsondata/qemumonitorjson-nodename-relative.result @@ -1,15 +1,3 @@ -drive-ide0-0-1 -filename : '/var/lib/libvirt/images/relsnap.qcow2' -format node : '#block1290' -format drv : 'qcow2' -storage node: '#block1107' -storage drv : 'file' - filename : '/var/lib/libvirt/images/base.qcow2' - format node : '#block927' - format drv : 'qcow2' - storage node: '#block800' - storage drv : 'file' - drive-ide0-0-0 filename : '/var/lib/libvirt/images/img3' format node : '#block118' @@ -31,3 +19,15 @@ storage drv : 'file' format drv : 'qcow2' storage node: '#block614' storage drv : 'file' + +drive-ide0-0-1 +filename : '/var/lib/libvirt/images/relsnap.qcow2' +format node : '#block1290' +format drv : 'qcow2' +storage node: '#block1107' +storage drv : 'file' + filename : '/var/lib/libvirt/images/base.qcow2' + format node : '#block927' + format drv : 'qcow2' + storage node: '#block800' + storage drv : 'file' diff --git a/tests/qemumonitorjsondata/qemumonitorjson-nodename-same-backing.result b/tests/qemumonitorjsondata/qemumonitorjson-nodename-same-backing.result index 87431f7ca2..7b12a1746a 100644 --- a/tests/qemumonitorjsondata/qemumonitorjson-nodename-same-backing.result +++ b/tests/qemumonitorjsondata/qemumonitorjson-nodename-same-backing.result @@ -1,15 +1,3 @@ -drive-sata0-0-1 -filename : '/var/lib/libvirt/images/b.qcow2' -format node : '#block548' -format drv : 'qcow2' -storage node: '#block487' -storage drv : 'file' - filename : '/var/lib/libvirt/images/base.qcow2' - format node : '#block771' - format drv : 'qcow2' - storage node: '#block692' - storage drv : 'file' - drive-sata0-0-0 filename : '/var/lib/libvirt/images/a.qcow2' format node : '#block132' @@ -21,3 +9,15 @@ storage drv : 'file' format drv : 'qcow2' storage node: '#block224' storage drv : 'file' + +drive-sata0-0-1 +filename : '/var/lib/libvirt/images/b.qcow2' +format node : '#block548' +format drv : 'qcow2' +storage node: '#block487' +storage drv : 'file' + filename : '/var/lib/libvirt/images/base.qcow2' + format node : '#block771' + format drv : 'qcow2' + storage node: '#block692' + storage drv : 'file' diff --git a/tests/virdeterministichashmock.c b/tests/virdeterministichashmock.c index d01f1c9e46..cd80cfcb52 100644 --- a/tests/virdeterministichashmock.c +++ b/tests/virdeterministichashmock.c @@ -20,10 +20,19 @@ #include -#include "virrandom.h" +#include "util/virhashcode.h" -uint64_t virRandomBits(int nbits ATTRIBUTE_UNUSED) +uint32_t +virHashCodeGen(const void *key, + size_t len, + uint32_t seed ATTRIBUTE_UNUSED) { - return 4; /* chosen by fair dice roll. - guaranteed to be random. */ + const uint8_t *k = key; + uint32_t h = 0; + size_t i; + + for (i = 0; i < len; i++) + h += k[i]; + + return h; } diff --git a/tests/virmacmaptestdata/simple2.json b/tests/virmacmaptestdata/simple2.json index 91b2cde0cd..52132c241e 100644 --- a/tests/virmacmaptestdata/simple2.json +++ b/tests/virmacmaptestdata/simple2.json @@ -1,16 +1,16 @@ [ { - "domain": "f25", + "domain": "f24", "macs": [ - "00:11:22:33:44:55", - "aa:bb:cc:00:11:22" + "aa:bb:cc:dd:ee:ff", + "a1:b2:c3:d4:e5:f6" ] }, { - "domain": "f24", + "domain": "f25", "macs": [ - "aa:bb:cc:dd:ee:ff", - "a1:b2:c3:d4:e5:f6" + "00:11:22:33:44:55", + "aa:bb:cc:00:11:22" ] } ]