1#!/usr/bin/env bash
2# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15set -eo pipefail
16set -x
17
18PANDA_SDK_BUILD_TYPE="${1:-"Release"}"
19
20SCRIPT_DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")"
21
22BUILD_DIR=${BUILD_DIR:-'.'}
23mkdir -p "$BUILD_DIR" && cd "$BUILD_DIR"
24
25OHOS_SDK_NATIVE_URL=${OHOS_SDK_NATIVE_URL:-'https://contentcenter-drcn.dbankcdn.com/pub_1/DevEcoSpace_1_900_9/4a/v3/oidhh45PQ-qFyqu2pO5Kmw/nZgBfyRtTzuaBczj9WgsWQ.zip'}
26
27# Search for default OHOS SDK native or download it
28if [ -z "$OHOS_SDK_NATIVE" ]; then
29    OHOS_SDK_NATIVE_DEFAULT_1=/opt/ohos-sdk/native
30    OHOS_SDK_NATIVE_DEFAULT_2="$(realpath ./native)"
31    if [ -d "$OHOS_SDK_NATIVE_DEFAULT_1" ]; then
32        OHOS_SDK_NATIVE="$OHOS_SDK_NATIVE_DEFAULT_1"
33    elif [ -d "$OHOS_SDK_NATIVE_DEFAULT_2" ]; then
34        OHOS_SDK_NATIVE="$OHOS_SDK_NATIVE_DEFAULT_2"
35    else
36        if [ -z "$OHOS_SDK_NATIVE_URL" ]; then
37            echo "Error: OHOS SDK not found, please set OHOS_SDK_NATIVE or OHOS_SDK_NATIVE_URL environment variable"
38            exit 1
39        fi
40        curl --retry 5 -Lo ohos-sdk-native.zip "${OHOS_SDK_NATIVE_URL}"
41        unzip -q ohos-sdk-native.zip
42        OHOS_SDK_NATIVE=native
43    fi
44fi
45
46# Build panda SDK
47SDK_VERSION=$(grep '"version":' "$SCRIPT_DIR"/package.json | sed 's|.*"version":.*"\(.*\)".*|\1|')
48"$SCRIPT_DIR"/build_sdk.sh "$OHOS_SDK_NATIVE" build-sdk "$PANDA_SDK_BUILD_TYPE"
49
50ACTUAL="/tmp/panda_sdk_test_actual.txt"
51EXPECTED="/tmp/panda_sdk_test_expected.txt"
52
53# Test 1
54find build-sdk -maxdepth 1 | sort --version-sort >"$ACTUAL"
55echo "build-sdk
56build-sdk/linux_arm64_host_tools
57build-sdk/linux_host_tools
58build-sdk/ohos_arm64
59build-sdk/panda-sdk-$SDK_VERSION.tgz
60build-sdk/sdk
61build-sdk/windows_host_tools" >"$EXPECTED"
62diff "$ACTUAL" "$EXPECTED"
63
64# Test 2
65find build-sdk/sdk/ -maxdepth 3 | sort --version-sort >"$ACTUAL"
66EXPECTED_TEST2="$SCRIPT_DIR/test2_file_list_expected.txt"
67diff "$ACTUAL" "$EXPECTED_TEST2"
68
69rm "$ACTUAL" "$EXPECTED"
70