@@ -571,16 +571,17 @@ mod test {
571
571
#[ test]
572
572
fn do_canonicalize_address_works ( ) {
573
573
let mut instance = make_instance ( ) ;
574
+ let api = MockApi :: default ( ) ;
574
575
575
576
let source_ptr = write_data ( & mut instance, b"foo" ) ;
576
- let dest_ptr = create_empty ( & mut instance, 8 ) ;
577
+ let dest_ptr = create_empty ( & mut instance, api . canonical_length as u32 ) ;
577
578
578
579
let ctx = instance. context_mut ( ) ;
579
580
leave_default_data ( ctx) ;
580
581
581
- let api = MockApi :: new ( 8 ) ;
582
582
do_canonicalize_address :: < MA , MS , MQ > ( api, ctx, source_ptr, dest_ptr) . unwrap ( ) ;
583
- assert_eq ! ( force_read( ctx, dest_ptr) , b"foo\0 \0 \0 \0 \0 " ) ;
583
+ let data = force_read ( ctx, dest_ptr) ;
584
+ assert_eq ! ( data. len( ) , api. canonical_length) ;
584
585
}
585
586
586
587
#[ test]
@@ -594,7 +595,7 @@ mod test {
594
595
595
596
let ctx = instance. context_mut ( ) ;
596
597
leave_default_data ( ctx) ;
597
- let api = MockApi :: new ( 8 ) ;
598
+ let api = MockApi :: default ( ) ;
598
599
599
600
let res = do_canonicalize_address :: < MA , MS , MQ > ( api, ctx, source_ptr1, dest_ptr) . unwrap ( ) ;
600
601
assert_ne ! ( res, 0 ) ;
@@ -622,7 +623,7 @@ mod test {
622
623
let ctx = instance. context_mut ( ) ;
623
624
leave_default_data ( ctx) ;
624
625
625
- let api = MockApi :: new_failing ( 8 , "Temporarily unavailable" ) ;
626
+ let api = MockApi :: new_failing ( "Temporarily unavailable" ) ;
626
627
let result = do_canonicalize_address :: < MA , MS , MQ > ( api, ctx, source_ptr, dest_ptr) ;
627
628
match result. unwrap_err ( ) {
628
629
VmError :: FfiErr {
@@ -644,7 +645,7 @@ mod test {
644
645
let ctx = instance. context_mut ( ) ;
645
646
leave_default_data ( ctx) ;
646
647
647
- let api = MockApi :: new ( 8 ) ;
648
+ let api = MockApi :: default ( ) ;
648
649
let result = do_canonicalize_address :: < MA , MS , MQ > ( api, ctx, source_ptr, dest_ptr) ;
649
650
match result. unwrap_err ( ) {
650
651
VmError :: CommunicationErr {
@@ -670,14 +671,14 @@ mod test {
670
671
let ctx = instance. context_mut ( ) ;
671
672
leave_default_data ( ctx) ;
672
673
673
- let api = MockApi :: new ( 8 ) ;
674
+ let api = MockApi :: default ( ) ;
674
675
let result = do_canonicalize_address :: < MA , MS , MQ > ( api, ctx, source_ptr, dest_ptr) ;
675
676
match result. unwrap_err ( ) {
676
677
VmError :: CommunicationErr {
677
678
source : CommunicationError :: RegionTooSmall { size, required, .. } ,
678
679
} => {
679
680
assert_eq ! ( size, 7 ) ;
680
- assert_eq ! ( required, 8 ) ;
681
+ assert_eq ! ( required, api . canonical_length ) ;
681
682
}
682
683
err => panic ! ( "Incorrect error returned: {:?}" , err) ,
683
684
}
@@ -686,17 +687,18 @@ mod test {
686
687
#[ test]
687
688
fn do_humanize_address_works ( ) {
688
689
let mut instance = make_instance ( ) ;
690
+ let api = MockApi :: default ( ) ;
689
691
690
- let source_ptr = write_data ( & mut instance, b"foo\0 \0 \0 \0 \0 " ) ;
692
+ let source_data = vec ! [ 0x22 ; api. canonical_length] ;
693
+ let source_ptr = write_data ( & mut instance, & source_data) ;
691
694
let dest_ptr = create_empty ( & mut instance, 50 ) ;
692
695
693
696
let ctx = instance. context_mut ( ) ;
694
697
leave_default_data ( ctx) ;
695
698
696
- let api = MockApi :: new ( 8 ) ;
697
699
let error_ptr = do_humanize_address :: < MA , MS , MQ > ( api, ctx, source_ptr, dest_ptr) . unwrap ( ) ;
698
700
assert_eq ! ( error_ptr, 0 ) ;
699
- assert_eq ! ( force_read( ctx, dest_ptr) , b"foo" ) ;
701
+ assert_eq ! ( force_read( ctx, dest_ptr) , source_data ) ;
700
702
}
701
703
702
704
#[ test]
@@ -709,7 +711,7 @@ mod test {
709
711
let ctx = instance. context_mut ( ) ;
710
712
leave_default_data ( ctx) ;
711
713
712
- let api = MockApi :: new ( 8 ) ;
714
+ let api = MockApi :: default ( ) ;
713
715
let res = do_humanize_address :: < MA , MS , MQ > ( api, ctx, source_ptr, dest_ptr) . unwrap ( ) ;
714
716
assert_ne ! ( res, 0 ) ;
715
717
let err = String :: from_utf8 ( force_read ( ctx, res) ) . unwrap ( ) ;
@@ -726,7 +728,7 @@ mod test {
726
728
let ctx = instance. context_mut ( ) ;
727
729
leave_default_data ( ctx) ;
728
730
729
- let api = MockApi :: new_failing ( 8 , "Temporarily unavailable" ) ;
731
+ let api = MockApi :: new_failing ( "Temporarily unavailable" ) ;
730
732
let result = do_humanize_address :: < MA , MS , MQ > ( api, ctx, source_ptr, dest_ptr) ;
731
733
match result. unwrap_err ( ) {
732
734
VmError :: FfiErr {
@@ -746,7 +748,7 @@ mod test {
746
748
let ctx = instance. context_mut ( ) ;
747
749
leave_default_data ( ctx) ;
748
750
749
- let api = MockApi :: new ( 8 ) ;
751
+ let api = MockApi :: default ( ) ;
750
752
let result = do_humanize_address :: < MA , MS , MQ > ( api, ctx, source_ptr, dest_ptr) ;
751
753
match result. unwrap_err ( ) {
752
754
VmError :: CommunicationErr {
@@ -765,21 +767,22 @@ mod test {
765
767
#[ test]
766
768
fn do_humanize_address_fails_for_destination_region_too_small ( ) {
767
769
let mut instance = make_instance ( ) ;
770
+ let api = MockApi :: default ( ) ;
768
771
769
- let source_ptr = write_data ( & mut instance, b"foo\0 \0 \0 \0 \0 " ) ;
772
+ let source_data = vec ! [ 0x22 ; api. canonical_length] ;
773
+ let source_ptr = write_data ( & mut instance, & source_data) ;
770
774
let dest_ptr = create_empty ( & mut instance, 2 ) ;
771
775
772
776
let ctx = instance. context_mut ( ) ;
773
777
leave_default_data ( ctx) ;
774
778
775
- let api = MockApi :: new ( 8 ) ;
776
779
let result = do_humanize_address :: < MA , MS , MQ > ( api, ctx, source_ptr, dest_ptr) ;
777
780
match result. unwrap_err ( ) {
778
781
VmError :: CommunicationErr {
779
782
source : CommunicationError :: RegionTooSmall { size, required, .. } ,
780
783
} => {
781
784
assert_eq ! ( size, 2 ) ;
782
- assert_eq ! ( required, 3 ) ;
785
+ assert_eq ! ( required, api . canonical_length ) ;
783
786
}
784
787
err => panic ! ( "Incorrect error returned: {:?}" , err) ,
785
788
}
0 commit comments