Chromium Code Reviews| Index: test/unittests/interpreter/bytecode-array-random-iterator-unittest.cc |
| diff --git a/test/unittests/interpreter/bytecode-array-reverse-iterator-unittest.cc b/test/unittests/interpreter/bytecode-array-random-iterator-unittest.cc |
| similarity index 87% |
| rename from test/unittests/interpreter/bytecode-array-reverse-iterator-unittest.cc |
| rename to test/unittests/interpreter/bytecode-array-random-iterator-unittest.cc |
| index 0782cc8e599e0ea64706160eff78a97eeb7182ae..6e1ee07565347ac954578bf444c52a7d7be44f33 100644 |
| --- a/test/unittests/interpreter/bytecode-array-reverse-iterator-unittest.cc |
| +++ b/test/unittests/interpreter/bytecode-array-random-iterator-unittest.cc |
| @@ -5,20 +5,20 @@ |
| #include "src/v8.h" |
| #include "src/interpreter/bytecode-array-builder.h" |
| -#include "src/interpreter/bytecode-array-reverse-iterator.h" |
| +#include "src/interpreter/bytecode-array-random-iterator.h" |
| #include "test/unittests/test-utils.h" |
| namespace v8 { |
| namespace internal { |
| namespace interpreter { |
| -class BytecodeArrayReverseIteratorTest : public TestWithIsolateAndZone { |
| +class BytecodeArrayRandomIteratorTest : public TestWithIsolateAndZone { |
| public: |
| - BytecodeArrayReverseIteratorTest() {} |
| - ~BytecodeArrayReverseIteratorTest() override {} |
| + BytecodeArrayRandomIteratorTest() {} |
| + ~BytecodeArrayRandomIteratorTest() override {} |
| }; |
| -TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| +TEST_F(BytecodeArrayRandomIteratorTest, IteratesBytecodeArrayBackwards) { |
| // Use a builder to create an array with containing multiple bytecodes |
| // with 0, 1 and 2 operands. |
| BytecodeArrayBuilder builder(isolate(), zone(), 3, 3, 0); |
| @@ -64,16 +64,18 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| // Test iterator sees the expected output from the builder. |
| Handle<BytecodeArray> bytecodeArray = builder.ToBytecodeArray(isolate()); |
| - BytecodeArrayReverseIterator iterator(bytecodeArray, zone()); |
| + BytecodeArrayRandomIterator iterator(bytecodeArray, zone()); |
| const int kPrefixByteSize = 1; |
| int offset = bytecodeArray->length(); |
| + iterator.GoToEnd(); |
| + |
| offset -= Bytecodes::Size(Bytecode::kReturn, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kReturn); |
| CHECK_EQ(iterator.current_offset(), offset); |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kLdaGlobal, OperandScale::kQuadruple) + |
| kPrefixByteSize; |
| @@ -82,14 +84,14 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kQuadruple); |
| CHECK_EQ(iterator.current_bytecode_size(), 10); |
| CHECK_EQ(iterator.GetIndexOperand(1), 0x10000000u); |
| - iterator.Advance(); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kDebugger, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kDebugger); |
| CHECK_EQ(iterator.current_offset(), offset); |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kCallRuntime, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kCallRuntime); |
| @@ -98,8 +100,8 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.GetRuntimeIdOperand(0), Runtime::kLoadIC_Miss); |
| CHECK_EQ(iterator.GetRegisterOperand(1).index(), reg_0.index()); |
| CHECK_EQ(iterator.GetRegisterCountOperand(2), 1u); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kForInPrepare, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kForInPrepare); |
| @@ -109,8 +111,8 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.GetRegisterOperandRange(0), 1); |
| CHECK_EQ(iterator.GetRegisterOperand(1).index(), reg_0.index()); |
| CHECK_EQ(iterator.GetRegisterOperandRange(1), 3); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= |
| Bytecodes::Size(Bytecode::kCallRuntimeForPair, OperandScale::kSingle); |
| @@ -123,8 +125,8 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.GetRegisterCountOperand(2), 1u); |
| CHECK_EQ(iterator.GetRegisterOperand(3).index(), reg_0.index()); |
| CHECK_EQ(iterator.GetRegisterOperandRange(3), 2); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kStar); |
| @@ -132,8 +134,8 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK_EQ(iterator.GetRegisterOperand(0).index(), param.index()); |
| CHECK_EQ(iterator.GetRegisterOperandRange(0), 1); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kAdd, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kAdd); |
| @@ -141,8 +143,8 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_0.index()); |
| CHECK_EQ(iterator.GetRegisterOperandRange(0), 1); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kLdaNamedProperty, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdaNamedProperty); |
| @@ -151,8 +153,8 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_1.index()); |
| CHECK_EQ(iterator.GetIndexOperand(1), name_index); |
| CHECK_EQ(iterator.GetIndexOperand(2), feedback_slot); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kStar); |
| @@ -160,8 +162,8 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_1.index()); |
| CHECK_EQ(iterator.GetRegisterOperandRange(0), 1); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kAdd, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kAdd); |
| @@ -169,16 +171,16 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_0.index()); |
| CHECK_EQ(iterator.GetRegisterOperandRange(0), 1); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kLdar, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdar); |
| CHECK_EQ(iterator.current_offset(), offset); |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_0.index()); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kStar); |
| @@ -186,16 +188,16 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_1.index()); |
| CHECK_EQ(iterator.GetRegisterOperandRange(0), 1); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kStackCheck, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kStackCheck); |
| CHECK_EQ(iterator.current_offset(), offset); |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK_EQ(Bytecodes::NumberOfOperands(iterator.current_bytecode()), 0); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kLdaSmi, OperandScale::kQuadruple) + |
| kPrefixByteSize; |
| @@ -203,8 +205,8 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.current_offset(), offset); |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kQuadruple); |
| CHECK_EQ(Smi::FromInt(iterator.GetImmediateOperand(0)), smi_1); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kStar); |
| @@ -212,24 +214,24 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_0.index()); |
| CHECK_EQ(iterator.GetRegisterOperandRange(0), 1); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kStackCheck, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kStackCheck); |
| CHECK_EQ(iterator.current_offset(), offset); |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK_EQ(Bytecodes::NumberOfOperands(iterator.current_bytecode()), 0); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kLdaSmi, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdaSmi); |
| CHECK_EQ(iterator.current_offset(), offset); |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK_EQ(Smi::FromInt(iterator.GetImmediateOperand(0)), smi_0); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kStar); |
| @@ -237,15 +239,15 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_0.index()); |
| CHECK_EQ(iterator.GetRegisterOperandRange(0), 1); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kLdaZero, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdaZero); |
| CHECK_EQ(iterator.current_offset(), offset); |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kStar); |
| @@ -253,16 +255,16 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_0.index()); |
| CHECK_EQ(iterator.GetRegisterOperandRange(0), 1); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kLdaConstant, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdaConstant); |
| CHECK_EQ(iterator.current_offset(), offset); |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK(iterator.GetConstantForIndexOperand(0).is_identical_to(heap_num_1)); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kStar); |
| @@ -270,17 +272,17 @@ TEST_F(BytecodeArrayReverseIteratorTest, IteratesBytecodeArray) { |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_0.index()); |
| CHECK_EQ(iterator.GetRegisterOperandRange(0), 1); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| offset -= Bytecodes::Size(Bytecode::kLdaConstant, OperandScale::kSingle); |
| CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdaConstant); |
| CHECK_EQ(iterator.current_offset(), offset); |
| CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle); |
| CHECK(iterator.GetConstantForIndexOperand(0).is_identical_to(heap_num_0)); |
| - CHECK(!iterator.done()); |
| - iterator.Advance(); |
| - CHECK(iterator.done()); |
| + CHECK(iterator.Valid()); |
| + --iterator; |
| + CHECK(!iterator.Valid()); |
| } |
|
rmcilroy
2016/11/29 12:09:32
nit - could you add a random access iteration test
Leszek Swirski
2016/11/29 15:05:35
Done. I went a bit mad with tests here, the Ctrl,
|
| } // namespace interpreter |