Files
Hailiang Hu 45dd942ea2 aot add test and enable test on ut
Issue: https://gitee.com/openharmony/ark_js_runtime/issues/I5EYP3

Signed-off-by: Hailiang Hu <allenpas@huawei.com>
Change-Id: I771a63cf807e9971badf7228f337cb9a62ee258e
2022-07-08 11:03:58 +08:00

140 lines
6.3 KiB
Makefile

# Copyright (c) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
debug:=no
log:=no
arm:=no
args:=
product:=
product_dir:=
qemu:=
compiler:=
compiler_args:=
stub_compiler:=
jsvm:=
module_flag:=
empty:=
space:=$(empty) $(empty)
root_dir=$(shell pwd)
ifeq ($(test), )
test_name=helloaot
else
test_name=$(test)
endif
ifeq ($(module), yes)
module_flag=-m
endif
ifeq ($(log), yes)
args+= --log-compiled-methods=all --log-level=info
endif
ifeq ($(arm), no)
product=hispark_taurus
product_dir=$(root_dir)/out/$(product)
ifeq ($(debug), no)
export LD_LIBRARY_PATH=$(product_dir)/clang_x64/ark/ark:$(product_dir)/clang_x64/ark/ark_js_runtime:$(product_dir)/clang_x64/thirdparty/icu:$(root_dir)/prebuilts/clang/ohos/linux-x86_64/llvm/lib
compiler=$(product_dir)/clang_x64/ark/ark_js_runtime/ark_aot_compiler
stub_compiler=$(product_dir)/clang_x64/ark/ark_js_runtime/ark_stub_compiler
jsvm=$(product_dir)/clang_x64/ark/ark_js_runtime/ark_js_vm
else
export LD_LIBRARY_PATH=$(product_dir)/clang_x64/exe.unstripped/clang_x64/ark/ark:$(product_dir)/clang_x64/exe.unstripped/clang_x64/ark/ark_js_runtime:$(product_dir)/clang_x64/lib.unstripped/clang_x64/ark/ark:$(product_dir)/clang_x64/lib.unstripped/clang_x64/ark/ark_js_runtime:$(product_dir)/clang_x64/lib.unstripped/clang_x64/test/test:$(product_dir)/clang_x64/lib.unstripped/clang_x64/thirdparty/icu:$(root_dir)/prebuilts/clang/ohos/linux-x86_64/llvm/lib
compiler=$(product_dir)/clang_x64/exe.unstripped/clang_x64/ark/ark_js_runtime/ark_aot_compiler
stub_compiler=$(product_dir)/clang_x64/exe.unstripped/clang_x64/ark/ark_js_runtime/ark_stub_compiler
jsvm=$(product_dir)/clang_x64/exe.unstripped/clang_x64/ark/ark_js_runtime/ark_js_vm
endif
else
product=rk3568
product_dir=$(root_dir)/out/$(product)
qemu=qemu-aarch64
compiler_args+= --target-triple=aarch64-unknown-linux-gnu
ifeq ($(debug), no)
export LD_LIBRARY_PATH=$(product_dir)/ark/ark/:$(product_dir)/ark/ark_js_runtime/:$(root_dir)/prebuilts/clang/ohos/linux-x86_64/llvm/lib/aarch64-linux-ohos/c++/:$(product_dir)/utils/utils_base/:$(product_dir)/thirdparty/icu:$(product_dir)/securec/thirdparty_bounds_checking_function/:$(product_dir)/hiviewdfx/hitrace_native/:$(product_dir)/clang_x64/ark/ark/:$(product_dir)/clang_x64/thirdparty/icu/:$(product_dir)/clang_x64/ark/ark_js_runtime
compiler=$(product_dir)/clang_x64/ark/ark_js_runtime/ark_aot_compiler
stub_compiler=$(product_dir)/clang_x64/ark/ark_js_runtime/ark_stub_compiler
jsvm=$(product_dir)/ark/ark_js_runtime/ark_js_vm
else
export LD_LIBRARY_PATH=$(product_dir)/lib.unstripped/ark/ark/:$(product_dir)/lib.unstripped/ark/ark_js_runtime/:$(root_dir)/prebuilts/clang/ohos/linux-x86_64/llvm/lib/aarch64-linux-ohos/c++/:$(product_dir)/lib.unstripped/utils/utils_base/:$(product_dir)/lib.unstripped/thirdparty/icu:$(product_dir)/lib.unstripped/securec/thirdparty_bounds_checking_function/:$(product_dir)/lib.unstripped/hiviewdfx/hitrace_native/:$(product_dir)/lib.unstripped/clang_x64/ark/ark/:$(product_dir)/clang_x64/lib.unstripped/clang_x64/thirdparty/icu/:$(product_dir)/clang_x64/lib.unstripped/clang_x64/ark/ark/:$(product_dir)/clang_x64/lib.unstripped/clang_x64/ark/ark_js_runtime
compiler=$(product_dir)/clang_x64/exe.unstripped/clang_x64/ark/ark_js_runtime/ark_aot_compiler
stub_compiler=$(product_dir)/clang_x64/exe.unstripped/clang_x64/ark/ark_js_runtime/ark_stub_compiler
jsvm=$(product_dir)/exe.unstripped/ark/ark_js_runtime/ark_js_vm
endif
endif
test_dir=$(root_dir)/ark/js_runtime/test/aottest
ts2abc=$(product_dir)/clang_x64/obj/ark/ts2abc/ts2panda/build/src/index.js
out_dir=$(product_dir)/clang_x64/aottest
case_dir=$(out_dir)/$(test_name)
com_stub_args=--asm-interpreter=true --stub-file=$(out_dir)/stub.m
abc:
mkdir -p $(case_dir)
node --expose-gc $(ts2abc) $(wildcard $(test_dir)/$(test_name)/$(test_name).[tj]s) $(module_flag)
stub:
mkdir -p $(out_dir)
$(stub_compiler) $(compiler_args) $(args) --stub-file=$(out_dir)/stub.m
aot:
$(compiler) $(compiler_args) $(args) --aot-file=$(case_dir)/aot_file.m $(subst $(space),:,$(wildcard $(test_dir)/$(test_name)/*.abc))
aotd:
gdb --args $(compiler) $(compiler_args) $(args) --aot-file=$(case_dir)/aot_file.m $(subst $(space),:,$(wildcard $(test_dir)/$(test_name)/*.abc))
run:
$(qemu) $(jsvm) $(args) --aot-file=$(case_dir)/aot_file.m $(com_stub_args) $(test_dir)/$(test_name)/$(test_name).abc
rund:
ifeq ($(arm), no)
gdb --args $(jsvm) $(args) --aot-file=$(case_dir)/aot_file.m $(com_stub_args) $(test_dir)/$(test_name)/$(test_name).abc
else
@echo "gdb-client start: gdb-multiarch $(jsvm)"
@echo "gdb-server connect: target remote:123456"
$(qemu) -cpu max,sve=off -g 123456 $(jsvm) $(args) --aot-file=$(case_dir)/aot_file.m $(com_stub_args) $(test_dir)/$(test_name)/$(test_name).abc
endif
int:
$(qemu) $(jsvm) $(args) $(test_dir)/$(test_name)/$(test_name).abc
intd:
ifeq ($(arm), no)
gdb --args $(jsvm) $(args) $(test_dir)/$(test_name)/$(test_name).abc
else
@echo "gdb-client start: gdb-multiarch $(jsvm)"
@echo "gdb-server connect: target remote:123456"
$(qemu) -cpu max,sve=off -g 123456 $(jsvm) $(args) $(test_dir)/$(test_name)/$(test_name).abc
endif
asmint:
$(qemu) $(jsvm) $(args) $(com_stub_args) $(test_dir)/$(test_name)/$(test_name).abc
asmintd:
ifeq ($(arm), no)
gdb --args $(jsvm) $(args) $(com_stub_args) $(test_dir)/$(test_name)/$(test_name).abc
else
@echo "gdb-client start: gdb-multiarch $(jsvm)"
@echo "gdb-server connect: target remote:123456"
$(qemu) -cpu max,sve=off -g 123456 $(jsvm) $(args) $(com_stub_args) $(test_dir)/$(test_name)/$(test_name).abc
endif
clean:
rm $(test_dir)/$(test_name)/*.abc
rm -rf $(case_dir)
env:
@echo "root_dir=$(root_dir)"
@echo "test_name=$(test_name)"
@echo "test_dir=$(test_dir)"
@echo "case_dir=$(case_dir)"
@echo "export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)"