From a4b6fabf0df3eab1b7fad580a048b36ebef9863f Mon Sep 17 00:00:00 2001 From: jiangkai43 Date: Sat, 9 Jul 2022 11:41:37 +0800 Subject: [PATCH] Description: add atomics ut test case issues:https://gitee.com/openharmony/ark_js_runtime/issues/I5GAGW?from=project-issue Signed-off-by: jiangkai43 --- .../builtins/tests/builtins_atomics_test.cpp | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ecmascript/builtins/tests/builtins_atomics_test.cpp b/ecmascript/builtins/tests/builtins_atomics_test.cpp index 383e7d79..5bae0a19 100644 --- a/ecmascript/builtins/tests/builtins_atomics_test.cpp +++ b/ecmascript/builtins/tests/builtins_atomics_test.cpp @@ -154,6 +154,30 @@ HWTEST_F_L0(BuiltinsAtomicsTest, Add_3) ASSERT_EQ(results.GetInt(), 2); } +HWTEST_F_L0(BuiltinsAtomicsTest, SubAndAdd_1) +{ + ASSERT_NE(thread, nullptr); + ObjectFactory *factory = thread->GetEcmaVM()->GetFactory(); + [[maybe_unused]] JSHandle array(factory->NewTaggedArray(3)); + array->Set(thread, 0, JSTaggedValue(5)); + array->Set(thread, 1, JSTaggedValue(0)); + array->Set(thread, 2, JSTaggedValue(0)); + + JSHandle obj = JSHandle(thread, CreateTypedArray(thread, array)); + auto ecmaRuntimeCallInfo = TestHelper::CreateEcmaRuntimeCallInfo(thread, JSTaggedValue::Undefined(), 10); + ecmaRuntimeCallInfo->SetFunction(JSTaggedValue::Undefined()); + ecmaRuntimeCallInfo->SetThis(JSTaggedValue::Undefined()); + ecmaRuntimeCallInfo->SetCallArg(0, obj.GetTaggedValue()); + ecmaRuntimeCallInfo->SetCallArg(1, JSTaggedValue(static_cast(0))); + ecmaRuntimeCallInfo->SetCallArg(2, JSTaggedValue(static_cast(2))); + + [[maybe_unused]] auto prev = TestHelper::SetupFrame(thread, ecmaRuntimeCallInfo); + BuiltinsAtomics::Sub(ecmaRuntimeCallInfo); + JSTaggedValue addResult = BuiltinsAtomics::Add(ecmaRuntimeCallInfo); + TestHelper::TearDownFrame(thread, prev); + ASSERT_EQ(addResult.GetInt(), 3); +} + HWTEST_F_L0(BuiltinsAtomicsTest, And_1) { ASSERT_NE(thread, nullptr);