Skip to content

Commit abbe574

Browse files
committed
feat(tests): 添加对象构造函数和枚举类测试并移除旧测试文件
- 新增 object.move_ctor 测试用例验证移动构造函数功能 - 新增 object.copy_ctor 测试用例验证复制构造函数功能 - 新增 object.enum_class 测试用例验证枚举类功能 - 删除 tests/src/enum_case.cpp 旧测试文件 - 删除 tests/src/object_ctor.cpp 旧测试文件 - 在 same.cpp 中调整代码格式和空格间距 - 优化 same 函数的类型转换测试用例
1 parent f75101c commit abbe574

File tree

4 files changed

+63
-248
lines changed

4 files changed

+63
-248
lines changed

tests/src/enum_case.cpp

Lines changed: 0 additions & 119 deletions
This file was deleted.

tests/src/object.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -567,3 +567,32 @@ TEST(object, simple_property_access) {
567567

568568
SUCCEED() << "Simple property access test completed";
569569
}
570+
571+
TEST(object, move_ctor) {
572+
zval tmp;
573+
object_init(&tmp);
574+
Object obj(tmp.value.obj, Ctor::Move);
575+
ASSERT_TRUE(obj.isObject());
576+
577+
obj.attr("test", true) = 2025;
578+
ASSERT_EQ(obj.get("test").toInt(), 2025);
579+
}
580+
581+
TEST(object, copy_ctor) {
582+
auto o1 = newObject("stdClass");
583+
ASSERT_TRUE(o1.isObject());
584+
585+
Object o2(o1.object(), Ctor::Copy);
586+
o2.attr("test", true) = 2025;
587+
588+
ASSERT_EQ(o1.get("test").toInt(), 2025);
589+
ASSERT_EQ(o2.get("test").toInt(), 2025);
590+
}
591+
592+
TEST(object, enum_class) {
593+
eval("enum Suit{case Hearts; case Diamonds; case Clubs; case Spades;}");
594+
auto ce = getClassEntry("Suit");
595+
auto case1 = getEnumCase(ce, "Spades");
596+
auto name = zend_enum_fetch_case_name(case1.object());
597+
ASSERT_STREQ(Z_STRVAL_P(name), "Spades");
598+
}

tests/src/object_ctor.cpp

Lines changed: 0 additions & 95 deletions
This file was deleted.

0 commit comments

Comments
 (0)