diff options
Diffstat (limited to 'compiler/optimizing/optimizing_unit_test.h')
-rw-r--r-- | compiler/optimizing/optimizing_unit_test.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/compiler/optimizing/optimizing_unit_test.h b/compiler/optimizing/optimizing_unit_test.h index 21998b19da..d81f3804dc 100644 --- a/compiler/optimizing/optimizing_unit_test.h +++ b/compiler/optimizing/optimizing_unit_test.h @@ -957,6 +957,16 @@ class OptimizingUnitTestHelper { return val; } + static bool PredecessorsEqual(HBasicBlock* block, + std::initializer_list<HBasicBlock*> expected) { + return RangeEquals(block->GetPredecessors(), expected); + } + + static bool InputsEqual(HInstruction* instruction, + std::initializer_list<HInstruction*> expected) { + return RangeEquals(instruction->GetInputs(), expected); + } + // Returns if the `instruction` is removed from the graph. static inline bool IsRemoved(HInstruction* instruction) { return instruction->GetBlock() == nullptr; @@ -975,6 +985,12 @@ class OptimizingUnitTestHelper { return checker.IsValid(); } + template <typename Range, typename ElementType> + static bool RangeEquals(Range&& range, std::initializer_list<ElementType> expected) { + return std::distance(range.begin(), range.end()) == expected.size() && + std::equal(range.begin(), range.end(), expected.begin()); + } + std::vector<std::unique_ptr<const StandardDexFile>> dex_files_; std::unique_ptr<ArenaPoolAndAllocator> pool_and_allocator_; |