Initial commit

This commit is contained in:
Your Name
2026-04-23 17:07:55 +08:00
commit b7e39e063b
16725 changed files with 1625565 additions and 0 deletions
@@ -0,0 +1,21 @@
SUMMARY = "Shell functions for testing shell scripts"
PR = "r1"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://lib.sh"
SRC_URI += "file://test.sh"
S = "${WORKDIR}"
DATA = "${datadir}/test"
FILES:${PN} += "${DATA}"
do_compile() {
SYSROOT="$PKG_CONFIG_SYSROOT_DIR" bash test.sh || exit
}
do_install:append() {
install -d -m0755 ${D}${DATA}
install -m0644 lib.sh ${D}${DATA}/
}
+57
View File
@@ -0,0 +1,57 @@
#!/bin/bash
# Copyright 2021 Google LLC
#
# 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.
expect_streq() {
local r="${2-$(cat)}"
[ "$1" = "$r" ] && return
echo " Line ${BASH_LINENO[0]} '$1' != '$r'" >&2
test_err=1
}
expect_numeq() {
(( "$1" == "$2" )) && return
echo " Line ${BASH_LINENO[0]} '$1' != '$2'" >&2
test_err=1
}
expect_err() {
local expected=$1
shift
local rc=0
"$@" || rc="$?"
(( rc == expected )) && return
echo " Line ${BASH_LINENO[0]} Status '$rc' != '$expected'" >&2
test_err=1
}
fail() {
echo " Line ${BASH_LINENO[0]} Fail" >&2
test_err=1
}
main() {
local agg_err=0
for f in $(declare -F | grep 'declare -f test[A-Z_]' | awk '{print $3}'); do
echo "[$f] Running..." >&2
local test_err=0
if "$f" && (( test_err == 0 )); then
echo "[$f] Success" >&2
else
echo "[$f] Failed ($?)" >&2
agg_err=1
fi
done
return $agg_err
}
+147
View File
@@ -0,0 +1,147 @@
#!/bin/bash
# shellcheck disable=SC2317
# Copyright 2021 Google LLC
#
# 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.
# shellcheck source=meta-google/recipes-google/test/test-sh/lib.sh
source "$(dirname "$0")/lib.sh" || exit
(
echo '## Test Pass' >&2
test_pass() {
return 0
}
main || exit
) || exit
(
echo '## Test Fail' >&2
i=0
test_pass1() {
(( i++ ))
return 0
}
test_fail() {
return 1
(( i++ ))
return 0
}
test_pass2() {
(( i++ ))
return 0
}
! main || exit
(( i == 2 )) || exit
) || exit
(
echo '## Test Deferred Fail' >&2
i=0
test_expect_fail() {
test_err=1 || return
(( i++ ))
return 0
}
test_pass() {
(( i++ ))
return 0
}
! main || exit
(( i == 2 )) || exit
) || exit
(
echo '## Test Fail' >&2
i=0
test_fail() {
fail 'Failed' || return
(( i++ ))
return 0
}
! main || exit
(( i == 1 )) || exit
) || exit
(
echo '## Test Expect Err' >&2
i=0
test_expect_err() {
expect_err 1 false || return
(( i++ ))
return 0
}
main || exit
(( i == 1 )) || exit
) || exit
(
echo '## Test Expect Err Error' >&2
i=0
test_expect_err() {
expect_err 0 false || return
(( i++ ))
return 0
}
! main || exit
(( i == 1 )) || exit
) || exit
(
echo '## Test Num EQ' >&2
i=0
test_num_eq() {
expect_numeq 15 0xf || return
expect_numeq 1 1 || return
(( i++ ))
return 0
}
main || exit
(( i == 1 )) || exit
) || exit
(
echo '## Test Num EQ Error' >&2
i=0
test_num_eq() {
expect_numeq 15 10 || return
(( i++ ))
return 0
}
! main || exit
(( i == 1 )) || exit
) || exit
(
echo '## Test Str EQ' >&2
i=0
test_str_eq() {
expect_streq abz abz || return
(( i++ ))
return 0
}
main || exit
(( i == 1 )) || exit
) || exit
(
echo '## Test Str EQ Error' >&2
i=0
test_str_eq() {
expect_streq 15 0xf || return
(( i++ ))
return 0
}
! main || exit
(( i == 1 )) || exit
) || exit