From 8ce2d0660fe7168255e702266310b182af829a3a Mon Sep 17 00:00:00 2001 From: Zhelyapov Aleksey Date: Tue, 10 Jun 2025 13:06:42 +0300 Subject: [PATCH] Fix char cast and annotation test Issue: [Bug]: Fix several groups of tests after merging primitive PR https://gitee.com/openharmony/arkcompiler_runtime_core/issues/ICG796 Description: several tests were added to ignore list Reason: need to make them work Tests: fixed Signed-off-by: Georgy Bronnikov Signed-off-by: Zhelyapov Aleksey --- ets2panda/checker/ETSAnalyzer.cpp | 3 + .../test/unit/annotations/CMakeLists.txt | 7 +- .../test/unit/annotations/standard_test.cpp | 64 +++++++++---------- 3 files changed, 38 insertions(+), 36 deletions(-) diff --git a/ets2panda/checker/ETSAnalyzer.cpp b/ets2panda/checker/ETSAnalyzer.cpp index 3aa4109c2e..c7238ef0c5 100644 --- a/ets2panda/checker/ETSAnalyzer.cpp +++ b/ets2panda/checker/ETSAnalyzer.cpp @@ -2670,6 +2670,9 @@ static bool CheckIfLiteralValueIsAppropriate(ETSChecker *checker, Type *type, ir if (relation->IsIdenticalTo(type, checker->GlobalIntBuiltinType())) { return val >= std::numeric_limits::min() && val <= std::numeric_limits::max(); } + } else if (relation->IsIdenticalTo(type, checker->GlobalCharBuiltinType())) { + auto val = number.GetValueAndCastTo(); + return val >= std::numeric_limits::min() && val <= std::numeric_limits::max(); } else if (number.IsDouble()) { return relation->IsIdenticalTo(checker->GlobalDoubleBuiltinType(), type); } diff --git a/ets2panda/test/unit/annotations/CMakeLists.txt b/ets2panda/test/unit/annotations/CMakeLists.txt index 4391aaf5e9..919ec89daa 100644 --- a/ets2panda/test/unit/annotations/CMakeLists.txt +++ b/ets2panda/test/unit/annotations/CMakeLists.txt @@ -11,10 +11,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -# expected values changed after primitives refactoring -#ets2panda_add_gtest(es2panda_annotations_emit_standard_test -# CPP_SOURCES standard_test.cpp -#) +ets2panda_add_gtest(es2panda_annotations_emit_standard_test + CPP_SOURCES standard_test.cpp +) ets2panda_add_gtest(es2panda_mutiple_annotations_for_class CPP_SOURCES mutiple_annotations_for_class.cpp ) diff --git a/ets2panda/test/unit/annotations/standard_test.cpp b/ets2panda/test/unit/annotations/standard_test.cpp index 8cf5681999..fde486b3b6 100644 --- a/ets2panda/test/unit/annotations/standard_test.cpp +++ b/ets2panda/test/unit/annotations/standard_test.cpp @@ -71,11 +71,11 @@ public: {"authorAge", "35.000000"}, {"testBool", "0"}, {"favorColor", "1"}, - {"color", "MyClass$ClassAuthor$color$8"}, - {"reviewers", "MyClass$ClassAuthor$reviewers$9"}, - {"reviewersAge", "MyClass$ClassAuthor$reviewersAge$10"}, - {"testBools", "MyClass$ClassAuthor$testBools$11"}, - {"mutiArray", "MyClass$ClassAuthor$mutiArray$15"}, + {"color", "MyClass$ClassAuthor$color$12"}, + {"reviewers", "MyClass$ClassAuthor$reviewers$14"}, + {"reviewersAge", "MyClass$ClassAuthor$reviewersAge$15"}, + {"testBools", "MyClass$ClassAuthor$testBools$13"}, + {"mutiArray", "MyClass$ClassAuthor$mutiArray$11"}, }}, }; AnnotationEmitTest::CheckRecordAnnotations(program, recordName, expectedClassAnnotations); @@ -87,13 +87,13 @@ public: const AnnotationMap expectedFuncAnnotations = { {"ClassAuthor", { - {"mutiArray", "MyClass.foo:void;$ClassAuthor$mutiArray$23"}, - {"color", "MyClass.foo:void;$ClassAuthor$color$16"}, - {"testBools", "MyClass.foo:void;$ClassAuthor$testBools$19"}, - {"reviewers", "MyClass.foo:void;$ClassAuthor$reviewers$17"}, + {"mutiArray", "MyClass.foo:void;$ClassAuthor$mutiArray$19"}, + {"color", "MyClass.foo:void;$ClassAuthor$color$20"}, + {"testBools", "MyClass.foo:void;$ClassAuthor$testBools$21"}, + {"reviewers", "MyClass.foo:void;$ClassAuthor$reviewers$22"}, {"favorColor", "1"}, {"testBool", "0"}, - {"reviewersAge", "MyClass.foo:void;$ClassAuthor$reviewersAge$18"}, + {"reviewersAge", "MyClass.foo:void;$ClassAuthor$reviewersAge$23"}, {"authorAge", "35.000000"}, {"authorName", "Jim"}, }}, @@ -116,35 +116,35 @@ public: std::vector {std::string("ETSGLOBAL$ClassAuthor$mutiArray$4"), std::string("ETSGLOBAL$ClassAuthor$mutiArray$5"), std::string("ETSGLOBAL$ClassAuthor$mutiArray$6")}}, - {"MyClass$ClassAuthor$color$8", std::vector {COLOR_OPTION_0, COLOR_OPTION_1}}, - {"MyClass$ClassAuthor$reviewers$9", + {"MyClass$ClassAuthor$color$12", std::vector {COLOR_OPTION_0, COLOR_OPTION_1}}, + {"MyClass$ClassAuthor$reviewers$14", std::vector {std::string("Bob"), std::string("Jim"), std::string("Tom")}}, - {"MyClass$ClassAuthor$reviewersAge$10", std::vector {AGE_18, AGE_21, AGE_32}}, - {"MyClass$ClassAuthor$testBools$11", std::vector {false, true, false}}, - {"MyClass$ClassAuthor$mutiArray$12", std::vector {VALUE_1, VALUE_2, VALUE_3}}, - {"MyClass$ClassAuthor$mutiArray$13", std::vector {VALUE_4, VALUE_5, VALUE_6}}, - {"MyClass$ClassAuthor$mutiArray$14", std::vector {VALUE_7, VALUE_8, VALUE_9}}, - {"MyClass$ClassAuthor$mutiArray$15", - std::vector {std::string("MyClass$ClassAuthor$mutiArray$12"), - std::string("MyClass$ClassAuthor$mutiArray$13"), - std::string("MyClass$ClassAuthor$mutiArray$14")}}, - {"MyClass.foo:void;$ClassAuthor$color$16", + {"MyClass$ClassAuthor$reviewersAge$15", std::vector {AGE_18, AGE_21, AGE_32}}, + {"MyClass$ClassAuthor$testBools$13", std::vector {false, true, false}}, + {"MyClass$ClassAuthor$mutiArray$8", std::vector {VALUE_1, VALUE_2, VALUE_3}}, + {"MyClass$ClassAuthor$mutiArray$9", std::vector {VALUE_4, VALUE_5, VALUE_6}}, + {"MyClass$ClassAuthor$mutiArray$10", std::vector {VALUE_7, VALUE_8, VALUE_9}}, + {"MyClass$ClassAuthor$mutiArray$11", + std::vector {std::string("MyClass$ClassAuthor$mutiArray$8"), + std::string("MyClass$ClassAuthor$mutiArray$9"), + std::string("MyClass$ClassAuthor$mutiArray$10")}}, + {"MyClass.foo:void;$ClassAuthor$color$20", std::vector {COLOR_OPTION_0, COLOR_OPTION_1}}, - {"MyClass.foo:void;$ClassAuthor$reviewers$17", + {"MyClass.foo:void;$ClassAuthor$reviewers$22", std::vector {std::string("Bob"), std::string("Jim"), std::string("Tom")}}, - {"MyClass.foo:void;$ClassAuthor$reviewersAge$18", + {"MyClass.foo:void;$ClassAuthor$reviewersAge$23", std::vector {AGE_18, AGE_21, AGE_32}}, - {"MyClass.foo:void;$ClassAuthor$testBools$19", std::vector {false, true, false}}, - {"MyClass.foo:void;$ClassAuthor$mutiArray$20", + {"MyClass.foo:void;$ClassAuthor$testBools$21", std::vector {false, true, false}}, + {"MyClass.foo:void;$ClassAuthor$mutiArray$16", std::vector {VALUE_1, VALUE_2, VALUE_3}}, - {"MyClass.foo:void;$ClassAuthor$mutiArray$21", + {"MyClass.foo:void;$ClassAuthor$mutiArray$17", std::vector {VALUE_4, VALUE_5, VALUE_6}}, - {"MyClass.foo:void;$ClassAuthor$mutiArray$22", + {"MyClass.foo:void;$ClassAuthor$mutiArray$18", std::vector {VALUE_7, VALUE_8, VALUE_9}}, - {"MyClass.foo:void;$ClassAuthor$mutiArray$23", - std::vector {std::string("MyClass.foo:void;$ClassAuthor$mutiArray$20"), - std::string("MyClass.foo:void;$ClassAuthor$mutiArray$21"), - std::string("MyClass.foo:void;$ClassAuthor$mutiArray$22")}}, + {"MyClass.foo:void;$ClassAuthor$mutiArray$19", + std::vector {std::string("MyClass.foo:void;$ClassAuthor$mutiArray$16"), + std::string("MyClass.foo:void;$ClassAuthor$mutiArray$17"), + std::string("MyClass.foo:void;$ClassAuthor$mutiArray$18")}}, }; AnnotationEmitTest::CheckLiteralArrayTable(program, expectedLiteralArrayTable); -- Gitee