:octocat: fixed a rare code length overflow issue

This commit is contained in:
smiley
2024-04-19 13:40:13 +02:00
parent e81ed39ca3
commit ab1f3716d9
2 changed files with 9 additions and 3 deletions
+8 -2
View File
@@ -14,8 +14,8 @@ use chillerlan\QRCode\Common\{EccLevel, MaskPattern, Mode, Version};
use chillerlan\QRCode\Data\{QRCodeDataException, QRData, QRDataModeInterface, QRMatrix};
use chillerlan\QRCode\QROptions;
use chillerlan\QRCodeTest\QRMaxLengthTrait;
use PHPUnit\Framework\{ExpectationFailedException, TestCase};
use Exception, Generator;
use PHPUnit\Framework\TestCase;
use function array_map, hex2bin, mb_strlen, mb_substr, sprintf, str_repeat, strlen, substr;
/**
@@ -187,7 +187,13 @@ abstract class DataInterfaceTestAbstract extends TestCase{
$minimumVersionNumber = $this->QRData->getMinimumVersion()->getVersionNumber();
$this::assertSame($version->getVersionNumber(), $minimumVersionNumber);
try{
$this::assertSame($version->getVersionNumber(), $minimumVersionNumber);
}
catch(ExpectationFailedException $e){
$this::assertSame(($version->getVersionNumber() + 1), $minimumVersionNumber, 'safety margin');
}
// verify the encoded data
$this::assertSame($this->dataMode::DATAMODE, $bitBuffer->read(4));
$this::assertSame($str, $this->dataMode::decodeSegment($bitBuffer, $minimumVersionNumber));