Commit 881aacb4 authored by Anton Smirnov's avatar Anton Smirnov
Browse files

Update build version list

parent ac966492
Loading
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -9,7 +9,9 @@ cache:
.test:
  before_script:
    # install system packages
    - apt-get update && apt-get install -y git unzip
    - apt-get update && apt-get install -y git unzip libgmp-dev
    # install gmp
    - docker-php-ext-install gmp
    # install composer
    - php -r "copy('https://composer.github.io/installer.sig', '/tmp/composer.sig');"
    - php -r "copy('https://getcomposer.org/installer', '/tmp/composer-setup.php');"
+3 −1
Original line number Diff line number Diff line
@@ -24,11 +24,13 @@
        "php": "^7.0 | ^8.0"
    },
    "require-dev": {
        "ext-gmp": "*",
        "phpunit/phpunit": ">=6.0.0 <10",
        "psy/psysh": "*",
        "squizlabs/php_codesniffer": "*"
    },
    "suggest": {
        "php-64bit": "Running 64 bit is recommended to prevent integer overflow"
        "php-64bit": "Running 64 bit is recommended to prevent integer overflow",
        "ext-gmp": "In case you need integers larger than your architecture supports"
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@

namespace SandFox\Bencode\Engine;

use GMP;
use SandFox\Bencode\Exceptions\InvalidArgumentException;
use SandFox\Bencode\Types\BencodeSerializable;
use SandFox\Bencode\Types\ListType;
@@ -52,6 +53,7 @@ class Encoder
            // true is converted to integer 1
            case $value === true:
            case is_int($value):
            case $value instanceof GMP:
                $this->encodeInteger($value);
                break;

@@ -107,7 +109,7 @@ class Encoder
        }
    }

    private function encodeInteger(int $integer)
    private function encodeInteger($integer)
    {
        fwrite($this->stream, 'i');
        fwrite($this->stream, (string)$integer);
+17 −0
Original line number Diff line number Diff line
<?php

use PHPUnit\Framework\TestCase;
use SandFoxMe\Bencode\Bencode;

class LargeIntegerTest extends TestCase
{
    public function testEncodeLargeInteger()
    {
        $largeInt = gmp_pow(2, 96);
        $expected = 'i79228162514264337593543950336e';

        $encoded = Bencode::encode($largeInt);

        $this->assertEquals($expected, $encoded);
    }
}