| Index: test/unittests/object-unittest.cc
|
| diff --git a/test/unittests/object-unittest.cc b/test/unittests/object-unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b09b97dea6991f2ee23651bd58d2a20137982798
|
| --- /dev/null
|
| +++ b/test/unittests/object-unittest.cc
|
| @@ -0,0 +1,57 @@
|
| +// Copyright 2016 the V8 project authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include <cmath>
|
| +#include <iostream>
|
| +#include <limits>
|
| +
|
| +#include "src/objects-inl.h"
|
| +#include "src/objects.h"
|
| +
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace v8 {
|
| +namespace internal {
|
| +
|
| +TEST(Object, InstanceTypeListOrder) {
|
| + int current = 0;
|
| + int last = -1;
|
| + InstanceType current_type = static_cast<InstanceType>(current);
|
| + EXPECT_EQ(current_type, InstanceType::FIRST_TYPE);
|
| + EXPECT_EQ(current_type, InstanceType::INTERNALIZED_STRING_TYPE);
|
| +#define TEST_INSTANCE_TYPE(type) \
|
| + current_type = InstanceType::type; \
|
| + current = static_cast<int>(current_type); \
|
| + if (current > static_cast<int>(LAST_NAME_TYPE)) { \
|
| + EXPECT_EQ(last + 1, current); \
|
| + } \
|
| + EXPECT_LT(last, current) << " INSTANCE_TYPE_LIST is not ordered: " \
|
| + << "last = " << static_cast<InstanceType>(last) \
|
| + << " vs. current = " << current_type; \
|
| + last = current;
|
| +
|
| + INSTANCE_TYPE_LIST(TEST_INSTANCE_TYPE)
|
| +#undef TEST_INSTANCE_TYPE
|
| +}
|
| +
|
| +TEST(Object, StructListOrder) {
|
| + int current = static_cast<int>(InstanceType::ACCESSOR_INFO_TYPE);
|
| + int last = current - 1;
|
| + ASSERT_LT(0, last);
|
| + InstanceType current_type = static_cast<InstanceType>(current);
|
| +#define TEST_STRUCT(type, class, name) \
|
| + current_type = InstanceType::type##_TYPE; \
|
| + current = static_cast<int>(current_type); \
|
| + EXPECT_EQ(last + 1, current) \
|
| + << " STRUCT_LIST is not ordered: " \
|
| + << " last = " << static_cast<InstanceType>(last) \
|
| + << " vs. current = " << current_type; \
|
| + last = current;
|
| +
|
| + STRUCT_LIST(TEST_STRUCT)
|
| +#undef TEST_STRUCT
|
| +}
|
| +
|
| +} // namespace internal
|
| +} // namespace v8
|
|
|