[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet-scheme] 03/04: tests/distributed-hash-table: Test 'copy-query'.
From: |
gnunet |
Subject: |
[gnunet-scheme] 03/04: tests/distributed-hash-table: Test 'copy-query'. |
Date: |
Thu, 03 Feb 2022 13:52:33 +0100 |
This is an automated email from the git hooks/post-receive script.
maxime-devos pushed a commit to branch master
in repository gnunet-scheme.
commit 750123fb8f0cf5d311d740d331352a81adac41a8
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Thu Feb 3 12:50:20 2022 +0000
tests/distributed-hash-table: Test 'copy-query'.
* tests/distributed-hash-table.scm
(query->sexp,query=?,query-independent?): New procedures.
("copy-query: equal and independent"): New test.
---
tests/distributed-hash-table.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/tests/distributed-hash-table.scm b/tests/distributed-hash-table.scm
index 9f84a29..5f60c00 100644
--- a/tests/distributed-hash-table.scm
+++ b/tests/distributed-hash-table.scm
@@ -227,6 +227,10 @@
(slice-copy! s s2)
b)
+(define (query->sexp z)
+ (list (query-type z) (slice->bytevector (query-key z))
+ (query-desired-replication-level z)))
+
(define (datum->sexp z)
(list (datum-type z)
(slice->bytevector (datum-key z))
@@ -242,6 +246,9 @@
(slice->bytevector (search-result-put-path z))
(datum->sexp (search-result->datum z))))
+(define (query=? x y)
+ (equal? (query->sexp x) (query->sexp y)))
+
(define (datum=? x y)
(equal? (datum->sexp x) (datum->sexp y)))
@@ -254,6 +261,9 @@
(define (slice-independent? x y)
(not (eq? (slice-bv x) (slice-bv y))))
+(define (query-independent? x y)
+ (slice-independent? (query-key x) (query-key y)))
+
(define (datum-independent? x y)
(and (slice-independent? (datum-key x) (datum-key y))
(slice-independent? (datum-value x) (datum-value y))))
@@ -268,6 +278,15 @@
(slice-independent? (search-result-put-path x)
(search-result-put-path y))))
+(test-assert "copy-query: equal and independent"
+ (let* ((old-key (make-slice/read-write* (sizeof /hashcode:512 '())))
+ (type (random 65536))
+ (desired-replication-level (+ 1 %maximum-replication-level))
+ (old (make-query type old-key))
+ (new (copy-query old)))
+ (and (query=? old new)
+ (query-independent? old new))))
+
(test-assert "copy-datum: equal and independent"
;; A least in Guile 3.0.5, all bytevectors of length 0 are eq?,
;; so let the value be non-empty such that datum-independent?
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.