gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]