@@ -664,4 +664,30 @@ mod tests {
664
664
let cascade = Cascade :: from_bytes ( Vec :: new ( ) ) . expect ( "parsing Cascade should succeed" ) ;
665
665
assert ! ( cascade. is_none( ) ) ;
666
666
}
667
+
668
+ #[ test]
669
+ fn cascade_test_from_bytes ( ) {
670
+ let unknown_version: Vec < u8 > = vec ! [ 0xff , 0xff , 0x00 , 0x00 ] ;
671
+ match Cascade :: from_bytes ( unknown_version) {
672
+ Ok ( _) => panic ! ( "Cascade::from_bytes allows unknown version." ) ,
673
+ Err ( _) => ( ) ,
674
+ }
675
+
676
+ let first_layer_is_zero: Vec < u8 > = vec ! [
677
+ 0x01 , 0x00 , 0x01 , 0x08 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
678
+ ] ;
679
+ match Cascade :: from_bytes ( first_layer_is_zero) {
680
+ Ok ( _) => panic ! ( "Cascade::from_bytes allows zero indexed layers." ) ,
681
+ Err ( _) => ( ) ,
682
+ }
683
+
684
+ let second_layer_is_three: Vec < u8 > = vec ! [
685
+ 0x01 , 0x00 , 0x01 , 0x08 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x01 ,
686
+ 0x08 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x00 , 0x00 , 0x03 , 0x00 ,
687
+ ] ;
688
+ match Cascade :: from_bytes ( second_layer_is_three) {
689
+ Ok ( _) => panic ! ( "Cascade::from_bytes allows non-sequential layers." ) ,
690
+ Err ( _) => ( ) ,
691
+ }
692
+ }
667
693
}
0 commit comments