@@ -3,7 +3,8 @@ extern crate random_access_memory as ram;
33mod common;
44
55use common:: create_feed;
6- use hypercore:: { generate_keypair, Feed , NodeTrait , PublicKey , SecretKey , Storage } ;
6+ use hypercore:: { generate_keypair, Event , Feed , NodeTrait , PublicKey , SecretKey , Storage } ;
7+ use futures:: stream:: StreamExt ;
78use hypercore:: { storage_disk, storage_memory} ;
89use std:: env:: temp_dir;
910use std:: fs;
@@ -27,6 +28,31 @@ async fn display() {
2728 assert_eq ! ( output. len( ) , 61 ) ;
2829}
2930
31+ #[ async_std:: test]
32+ async fn task_send ( ) {
33+ use async_std:: sync:: { Arc , Mutex } ;
34+ use async_std:: task;
35+ let mut feed = create_feed ( 50 ) . await . unwrap ( ) ;
36+ feed. append ( b"hello" ) . await . unwrap ( ) ;
37+ let feed_arc = Arc :: new ( Mutex :: new ( feed) ) ;
38+ let feed = feed_arc. clone ( ) ;
39+ task:: spawn ( async move {
40+ feed. lock ( ) . await . append ( b"world" ) . await . unwrap ( ) ;
41+ } )
42+ . await ;
43+ let feed = feed_arc. clone ( ) ;
44+ let t1 = task:: spawn ( async move {
45+ let value = feed. lock ( ) . await . get ( 0 ) . await . unwrap ( ) ;
46+ assert_eq ! ( value, Some ( b"hello" . to_vec( ) ) ) ;
47+ } ) ;
48+ let feed = feed_arc. clone ( ) ;
49+ let t2 = task:: spawn ( async move {
50+ let value = feed. lock ( ) . await . get ( 1 ) . await . unwrap ( ) ;
51+ assert_eq ! ( value, Some ( b"world" . to_vec( ) ) ) ;
52+ } ) ;
53+ futures:: future:: join_all ( vec ! [ t1, t2] ) . await ;
54+ }
55+
3056#[ async_std:: test]
3157/// Verify `.append()` and `.get()` work.
3258async fn set_get ( ) {
@@ -162,13 +188,17 @@ async fn put_with_data() {
162188 let mut a = create_feed ( 50 ) . await . unwrap ( ) ;
163189
164190 // Create a second feed with the first feed's key.
191+ <<<<<<< HEAD
165192 let ( public , secret ) = copy_keys ( & a ) ;
166193 let storage = storage_memory( ) . await . unwrap( ) ;
167194 let mut b = Feed :: builder( public, storage)
168195 . secret_key( secret)
169196 . build( )
170197 . await
171198 . unwrap( ) ;
199+ =======
200+ let mut b = create_clone( & a) . await . unwrap( ) ;
201+ >>>>>>> c79679a... Make dyn storage Send
172202
173203 // Append 4 blocks of data to the writable feed.
174204 a. append( b"hi" ) . await . unwrap( ) ;
@@ -226,6 +256,7 @@ async fn create_with_stored_keys() {
226256 ) ;
227257}
228258
259+ <<<<<<< HEAD
229260fn copy_keys( feed: & Feed ) -> ( PublicKey , SecretKey ) {
230261 match & feed. secret_key( ) {
231262 Some ( secret) => {
@@ -241,6 +272,8 @@ fn copy_keys(feed: &Feed) -> (PublicKey, SecretKey) {
241272 }
242273}
243274
275+ =======
276+ >>>>>>> c79679a... Make dyn storage Send
244277#[ async_std:: test]
245278async fn audit( ) {
246279 let mut feed = create_feed( 50 ) . await . unwrap( ) ;
0 commit comments