diff --git a/nspr/testcase/nspr-test.c b/nspr/testcase/nspr-test.c new file mode 100644 index 0000000000000000000000000000000000000000..e0befaf5160ddabd5b439fc828e51907e378da79 --- /dev/null +++ b/nspr/testcase/nspr-test.c @@ -0,0 +1,35 @@ +#include +#include + + +PRLock* g_lock; + +void Thread_A(char* buf) +{ + PR_Lock(g_lock); + for (int i = 0; i < 5; i++) + { + printf("In thread A %d: %s\n", i,buf); + } + PR_Unlock(g_lock); +} + + +int main() +{ + PR_Init(PR_USER_THREAD, PR_PRIORITY_NORMAL, 0); + PRThread* p_tha; + g_lock = PR_NewLock(); + p_tha = PR_CreateThread(PR_USER_THREAD, + (void (PR_CALLBACK *)(void *))Thread_A, + "buffer to thread A", + PR_PRIORITY_HIGH, + PR_LOCAL_THREAD, + PR_JOINABLE_THREAD, + 0); + + PR_JoinThread(p_tha); + PR_DestroyLock(g_lock); + PR_Cleanup(); + return 0; +} \ No newline at end of file diff --git a/nspr/testcase/test-nspr.sh b/nspr/testcase/test-nspr.sh new file mode 100644 index 0000000000000000000000000000000000000000..001fa75dd7101aa72e9afa43a1aaa6f6315275f2 --- /dev/null +++ b/nspr/testcase/test-nspr.sh @@ -0,0 +1,52 @@ +#!/bin/bash +############################################################################### +# @用例ID: 20230528-094601-722793050 +# @用例名称: nspr-test +# @用例级别: 3 +# @用例标签: +# @用例类型: 功能 +############################################################################### +[ -z "$TST_TS_TOPDIR" ] && { + TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")" + export TST_TS_TOPDIR +} +source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1 +############################################################################### + +g_tmpdir="$(mktemp -d)" + +tc_setup() { + msg "this is tc_setup" + # @预置条件: 查看nspr是否安装 + yum install -y nspr + assert_true [ $? -eq 0 ] + # @预置条件: 查看gcc是否安装 + yum install -y gcc + assert_true [ $? -eq 0 ] + return 0 +} + +do_test() { + msg "this is do_test" + + # @测试步骤:1: 运行nspr程序 + # @预期结果:1: 程序正常运行 + gcc nspr-test.c -o test -lnspr4 + assert_true [ $? -eq 0 ] + ./test + assert_true [ $? -eq 0 ] + + + return 0 +} + +tc_teardown() { + msg "this is tc_teardown" + rm test || return 1 + rm -rfv "$g_tmpdir" || return 1 + return 0 +} + +############################################################################### +tst_main "$@" +############################################################################### \ No newline at end of file