18c339a94Sopenharmony_ci# !/usr/bin/env python3
28c339a94Sopenharmony_ci# coding=utf-8
38c339a94Sopenharmony_ci"""
48c339a94Sopenharmony_ci* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
58c339a94Sopenharmony_ci*
68c339a94Sopenharmony_ci* HDF is dual licensed: you can use it either under the terms of
78c339a94Sopenharmony_ci* the GPL, or the BSD license, at your option.
88c339a94Sopenharmony_ci* See the LICENSE file in the root of this repository for complete details.
98c339a94Sopenharmony_ci"""
108c339a94Sopenharmony_ciimport os
118c339a94Sopenharmony_ciimport sys
128c339a94Sopenharmony_ci
138c339a94Sopenharmony_cidef do_test():
148c339a94Sopenharmony_ci    if not os.path.isfile("@ohos.test.d.ts"):
158c339a94Sopenharmony_ci        return
168c339a94Sopenharmony_ci    if not os.path.exists("out"):
178c339a94Sopenharmony_ci        os.mkdir("out")
188c339a94Sopenharmony_ci    ret = os.popen("node ../../../src/gen/cmd_gen.js -f @ohos.test.d.ts -o ./out")
198c339a94Sopenharmony_ci    print(ret.read())
208c339a94Sopenharmony_ci
218c339a94Sopenharmony_ci    os.chdir("out")
228c339a94Sopenharmony_ci    ret = os.popen("npx node-gyp configure build")
238c339a94Sopenharmony_ci    os.chdir("..")
248c339a94Sopenharmony_ci
258c339a94Sopenharmony_ci    if "COPY Release" not in ret.read():
268c339a94Sopenharmony_ci        print("error compile failed")
278c339a94Sopenharmony_ci        return
288c339a94Sopenharmony_ci    else:
298c339a94Sopenharmony_ci        print("compile ok")
308c339a94Sopenharmony_ci
318c339a94Sopenharmony_ci    os.system("npx mocha test.js")
328c339a94Sopenharmony_ci
338c339a94Sopenharmony_ci
348c339a94Sopenharmony_ciif __name__ == "__main__":
358c339a94Sopenharmony_ci    work_path = os.path.split(sys.argv[0])[0]
368c339a94Sopenharmony_ci    os.chdir(work_path)
378c339a94Sopenharmony_ci
388c339a94Sopenharmony_ci    if len(sys.argv) >= 2:
398c339a94Sopenharmony_ci        for fn in sys.argv[1:]:
408c339a94Sopenharmony_ci            if os.path.isdir(fn):
418c339a94Sopenharmony_ci                os.chdir(fn)
428c339a94Sopenharmony_ci                do_test()
438c339a94Sopenharmony_ci                os.chdir("..")
448c339a94Sopenharmony_ci            else:
458c339a94Sopenharmony_ci                print("error",fn,"is not exist")
468c339a94Sopenharmony_ci    else:
478c339a94Sopenharmony_ci        for fn in os.listdir("."):
488c339a94Sopenharmony_ci            if os.path.isdir(fn):
498c339a94Sopenharmony_ci                os.chdir(fn)
508c339a94Sopenharmony_ci                do_test()
518c339a94Sopenharmony_ci                os.chdir("..")
52