Fix missing mentions field in test Msg construction
[tt.git] / tt.rkt
diff --git a/tt.rkt b/tt.rkt
index bc8e8bc..afc94f6 100644 (file)
--- a/tt.rkt
+++ b/tt.rkt
          [nick     "foo"]
          [uri      "bar"]
          [actual   (str->msg nick uri (string-append ts tab text))]
-         [expected (Msg 1605756129 ts nick uri text)])
+         [expected (Msg 1605756129 ts nick uri text '())])
     (check-equal?
       (Msg-ts-epoch actual)
       (Msg-ts-epoch expected)
   ; TODO No need for map - can just iter
   (void (concurrent-filter-map num-workers peer-download peers)))
 
+(: uniq (∀ (α) (-> (Listof α) (Listof α))))
 (define (uniq xs)
   (set->list (list->set xs)))
 
                     (map string->path paths)])]
          [peers (append* (map file->peers paths))])
     (log-info "Read-in ~a peers." (length peers))
-    peers))
+    (uniq peers)))
 
 (: log-writer-stop (-> Thread Void))
 (define (log-writer-stop log-writer)
            #:program
            "tt crawl"
            #:args file-paths
-           (let* ([peers-all-file
+           (let* ([peers-sort
+                    (λ (peers) (sort peers (match-lambda**
+                                             [((Peer n1 _) (Peer n2 _))
+                                              (string<? (if n1 n1 "")
+                                                        (if n2 n2 ""))])))]
+                  [peers-all-file
                     (build-path tt-home-dir "peers-all")]
                   [peers-mentioned-file
                     (build-path tt-home-dir "peers-mentioned")]
                   [peers-mentioned-prev
                     (file->peers peers-mentioned-file)]
                   [peers-mentioned
-                    (uniq (append peers-mentioned-prev
-                                  peers-mentioned-curr))]
+                    (peers-sort (uniq (append peers-mentioned-prev
+                                              peers-mentioned-curr)))]
                   [peers-all-prev
                     (file->peers peers-all-file)]
                   [peers-all
-                    (uniq (append peers
-                                  peers-mentioned
-                                  peers-all-prev))])
+                    (list->set (append peers
+                                       peers-mentioned
+                                       peers-all-prev))]
+                  [n-peers-discovered
+                    (set-count (set-subtract peers-all
+                                             (list->set peers-all-prev)))]
+                  [peers-all
+                    (peers-sort (set->list peers-all))])
+             (log-info "Discovered ~a new peers." n-peers-discovered)
              (peers->file peers-mentioned
                           peers-mentioned-file)
              (peers->file peers-all
This page took 0.024539 seconds and 4 git commands to generate.