@@ -54,30 +54,38 @@ contract TestBytesLib2 {
54
54
*/
55
55
56
56
function testSlice () public {
57
- bytes memory memBytes33 = hex "f00d0000000000000000000000000000000000000000000000000000000000feed " ;
57
+ bytes memory memBytes = hex "f00d0000000000000000000000000000000000000000000000000000000000feedf00d00000000000000000000000000000000000000000000000000000000feed " ;
58
58
59
59
bytes memory testBytes;
60
60
bytes memory resultBytes;
61
61
62
62
testBytes = hex "f00d " ;
63
- resultBytes = memBytes33 .slice (0 ,2 );
63
+ resultBytes = memBytes .slice (0 ,2 );
64
64
AssertBytes.equal (resultBytes, testBytes, "Normal slicing array failed. " );
65
65
66
66
testBytes = hex "" ;
67
- resultBytes = memBytes33 .slice (1 ,0 );
67
+ resultBytes = memBytes .slice (1 ,0 );
68
68
AssertBytes.equal (resultBytes, testBytes, "Slicing with zero-length failed. " );
69
69
70
70
testBytes = hex "" ;
71
- resultBytes = memBytes33 .slice (0 ,0 );
71
+ resultBytes = memBytes .slice (0 ,0 );
72
72
AssertBytes.equal (resultBytes, testBytes, "Slicing with zero-length on index 0 failed. " );
73
73
74
74
testBytes = hex "feed " ;
75
- resultBytes = memBytes33 .slice (31 ,2 );
75
+ resultBytes = memBytes .slice (31 ,2 );
76
76
AssertBytes.equal (resultBytes, testBytes, "Slicing across the 32-byte slot boundary failed. " );
77
77
78
78
testBytes = hex "f00d0000000000000000000000000000000000000000000000000000000000feed " ;
79
- resultBytes = memBytes33 .slice (0 ,33 );
79
+ resultBytes = memBytes .slice (0 ,33 );
80
80
AssertBytes.equal (resultBytes, testBytes, "Full length slice failed. " );
81
+
82
+ testBytes = hex "f00d0000000000000000000000000000000000000000000000000000000000fe " ;
83
+ resultBytes = memBytes.slice (0 ,32 );
84
+ AssertBytes.equal (resultBytes, testBytes, "Multiple of 32 bytes slice failed. " );
85
+
86
+ testBytes = hex "f00d0000000000000000000000000000000000000000000000000000000000feedf00d00000000000000000000000000000000000000000000000000000000fe " ;
87
+ resultBytes = memBytes.slice (0 ,64 );
88
+ AssertBytes.equal (resultBytes, testBytes, "Multiple (*2) of 32 bytes slice failed. " );
81
89
82
90
// Now we're going to test for slicing actions that throw present in the functions below
83
91
// with a ThrowProxy contract
0 commit comments