2 +----------------------------------------------------------------------+
4 +----------------------------------------------------------------------+
5 | Copyright (c) 2010-present Facebook, Inc. (http://www.facebook.com) |
6 +----------------------------------------------------------------------+
7 | This source file is subject to version 3.01 of the PHP license, |
8 | that is bundled with this package in the file LICENSE, and is |
9 | available through the world-wide-web at the following url: |
10 | http://www.php.net/license/3_01.txt |
11 | If you did not receive a copy of the PHP license and are unable to |
12 | obtain it through the world-wide-web, please send a note to |
13 | license@php.net so we can mail you a copy immediately. |
14 +----------------------------------------------------------------------+
16 #include <gtest/gtest.h>
18 #include "hphp/runtime/vm/hhbc-codec.h"
22 TEST(HHBCCodec
, Basic
) {
23 std::vector
<uint8_t> bc
;
25 for (size_t i
= 0; i
<= 0x1fd; ++i
) {
26 auto const op
= static_cast<Op
>(i
);
27 auto const before_sz
= bc
.size();
28 encode_op(op
, [&](uint8_t byte
) { bc
.emplace_back(byte
); });
29 auto const size
= bc
.size() - before_sz
;
31 // Verify that the encoded size is as expected.
33 EXPECT_TRUE(size
== 1);
35 EXPECT_TRUE(size
== 2);
39 const uint8_t* it
= bc
.data();
40 auto const end
= bc
.data() + bc
.size();
41 for (size_t i
= 0; i
<= 0x1fd; ++i
) {
42 auto const op
= decode_op_unchecked(it
);
48 EXPECT_EQ(op
, static_cast<Op
>(i
));