Add more writeLength tests
This commit is contained in:
parent
cb8cf1f107
commit
3935e661fe
@ -325,4 +325,18 @@ contract TestLibBytes {
|
||||
b.writeLength(length);
|
||||
return b;
|
||||
}
|
||||
|
||||
function assertBytesUnchangedAfterLengthReset(
|
||||
bytes memory b,
|
||||
uint256 tempLength
|
||||
)
|
||||
public
|
||||
pure
|
||||
{
|
||||
uint256 length = b.length;
|
||||
bytes memory bCopy = b.slice(0, length);
|
||||
b.writeLength(tempLength);
|
||||
b.writeLength(length);
|
||||
assert(b.equals(bCopy));
|
||||
}
|
||||
}
|
||||
|
@ -1131,6 +1131,20 @@ describe('LibBytes', () => {
|
||||
);
|
||||
expect(result).to.eq(`${byteArrayLongerThan32Bytes}${byteArrayLongerThan32Bytes.slice(2)}`);
|
||||
});
|
||||
it('should result in the same byte array if length is reduced and reset', async () => {
|
||||
const byteLen = (byteArrayLongerThan32Bytes.length - 2) / 2;
|
||||
const tempByteLen = new BigNumber(byteLen).dividedToIntegerBy(2);
|
||||
return expect(
|
||||
libBytes.assertBytesUnchangedAfterLengthReset.callAsync(byteArrayLongerThan32Bytes, tempByteLen),
|
||||
).to.be.fulfilled('');
|
||||
});
|
||||
it('should result in the same byte array if length is increased and reset', async () => {
|
||||
const byteLen = (byteArrayLongerThan32Bytes.length - 2) / 2;
|
||||
const tempByteLen = new BigNumber(byteLen).multipliedBy(2);
|
||||
return expect(
|
||||
libBytes.assertBytesUnchangedAfterLengthReset.callAsync(byteArrayLongerThan32Bytes, tempByteLen),
|
||||
).to.be.fulfilled('');
|
||||
});
|
||||
});
|
||||
});
|
||||
// tslint:disable:max-file-line-count
|
||||
|
Loading…
x
Reference in New Issue
Block a user