[Demo] Add Netty unit test demo
This commit is contained in:
parent
8b62532cbb
commit
cc11864ac6
18
.github/workflows/demo_test.yml
vendored
18
.github/workflows/demo_test.yml
vendored
@ -646,6 +646,24 @@ jobs:
|
|||||||
sleep ${{ env.nap_time }};
|
sleep ${{ env.nap_time }};
|
||||||
docker exec ${{ github.job }} bash -c "curl -s http://localhost:8080/actuator/readiness | grep -v DOWN"
|
docker exec ${{ github.job }} bash -c "curl -s http://localhost:8080/actuator/readiness | grep -v DOWN"
|
||||||
|
|
||||||
|
Netty_UT_test:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- uses: ./.github/workflows/composite_action/sim
|
||||||
|
with:
|
||||||
|
container-name: ${{ github.job }}
|
||||||
|
build-envs: 'OCCLUM_RELEASE_BUILD=1'
|
||||||
|
|
||||||
|
- name: Download and compile netty unit test demos
|
||||||
|
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/netty_ut && ./build.sh"
|
||||||
|
|
||||||
|
- name: Run netty unit test demo
|
||||||
|
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/netty_ut && SGX_MODE=SIM ./run_netty_ut_jdk11.sh"
|
||||||
|
|
||||||
Bash_test:
|
Bash_test:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
steps:
|
steps:
|
||||||
|
13
demos/netty_ut/README
Normal file
13
demos/netty_ut/README
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# A Simple netty unit test usage demo
|
||||||
|
|
||||||
|
This project demonstrates how to verify the completeness of Netty on Occlum.
|
||||||
|
|
||||||
|
1. Download junit and related netty jars
|
||||||
|
```
|
||||||
|
./build.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Run `netty unit test ` on Occlum
|
||||||
|
```
|
||||||
|
./run_netty_ut_jdk11.sh
|
||||||
|
```
|
10
demos/netty_ut/build.sh
Executable file
10
demos/netty_ut/build.sh
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install openjdk-11-jdk
|
||||||
|
rm -rf /usr/lib/jvm/java-11-openjdk-amd64/lib/security/blacklisted.certs
|
||||||
|
|
||||||
|
# Download netty testsuite, junit platform and related dependencies
|
||||||
|
|
||||||
|
if [ ! -d "netty" ]; then
|
||||||
|
wget -i ./ut-jar.url -P ./netty
|
||||||
|
fi
|
9
demos/netty_ut/netty-ut-jdk11.yaml
Normal file
9
demos/netty_ut/netty-ut-jdk11.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
includes:
|
||||||
|
- base.yaml
|
||||||
|
- java-11-openjdk-amd64.yaml
|
||||||
|
targets:
|
||||||
|
# copy sofaboot jar
|
||||||
|
- target: /usr/lib
|
||||||
|
copy:
|
||||||
|
- dirs:
|
||||||
|
- ../netty
|
52
demos/netty_ut/run_netty_ut_jdk11.sh
Executable file
52
demos/netty_ut/run_netty_ut_jdk11.sh
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
BLUE='\033[1;34m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
check_dir_exist() {
|
||||||
|
dir=$1
|
||||||
|
if [ ! -d ${dir} ];then
|
||||||
|
echo "Error: cannot stat file '${dir}'"
|
||||||
|
echo "Please see README and build it"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
init_instance() {
|
||||||
|
# Init Occlum instance
|
||||||
|
rm -rf occlum_netty_ut_instance && occlum new occlum_netty_ut_instance
|
||||||
|
cd occlum_netty_ut_instance
|
||||||
|
new_json="$(jq '.resource_limits.user_space_size = "4680MB" |
|
||||||
|
.resource_limits.kernel_space_heap_size="64MB" |
|
||||||
|
.resource_limits.max_num_of_threads = 128 |
|
||||||
|
.process.default_heap_size = "512MB" |
|
||||||
|
.entry_points = [ "/usr/lib/jvm/java-11-openjdk-amd64/bin" ] |
|
||||||
|
.env.default = [ "LD_LIBRARY_PATH=/usr/lib/jvm/java-11-openjdk-amd64/lib/server:/usr/lib/jvm/java-11-openjdk-amd64/lib:/usr/lib/jvm/java-11-openjdk-amd64/../lib:/lib" ]' Occlum.json)" && \
|
||||||
|
echo "${new_json}" > Occlum.json
|
||||||
|
}
|
||||||
|
|
||||||
|
build_netty_ut() {
|
||||||
|
# Copy JVM and JAR file into Occlum instance and build
|
||||||
|
rm -rf image
|
||||||
|
copy_bom -f ../netty-ut-jdk11.yaml --root image --include-dir /opt/occlum/etc/template
|
||||||
|
occlum build
|
||||||
|
}
|
||||||
|
|
||||||
|
run_netty_ut() {
|
||||||
|
jar_dir_path=./netty
|
||||||
|
check_dir_exist ${jar_dir_path}
|
||||||
|
|
||||||
|
init_instance
|
||||||
|
build_netty_ut
|
||||||
|
echo -e "${BLUE}occlum run netty ut${NC}"
|
||||||
|
occlum run /usr/lib/jvm/java-11-openjdk-amd64/bin/java \
|
||||||
|
-Xmx1048m -XX:-UseCompressedOops -XX:MaxMetaspaceSize=128m \
|
||||||
|
-XX:ActiveProcessorCount=2 \
|
||||||
|
-Dos.name=Linux \
|
||||||
|
-jar /usr/lib/netty/junit-platform-console-standalone-1.8.2.jar \
|
||||||
|
-cp /usr/lib/netty/netty-testsuite-4.1.51.Final.jar:/usr/lib/netty/netty-all-4.1.51.Final.jar:/usr/lib/netty/xz-1.5.jar:/usr/lib/netty/hamcrest-library-1.3.jar:/usr/lib/netty/logback-classic-1.1.7.jar \
|
||||||
|
--scan-classpath > netty-test-heap512m.log
|
||||||
|
}
|
||||||
|
|
||||||
|
run_netty_ut
|
6
demos/netty_ut/ut-jar.url
Normal file
6
demos/netty_ut/ut-jar.url
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
https://repo1.maven.org/maven2/io/netty/netty-testsuite/4.1.51.Final/netty-testsuite-4.1.51.Final.jar
|
||||||
|
https://repo1.maven.org/maven2/io/netty/netty-all/4.1.51.Final/netty-all-4.1.51.Final.jar
|
||||||
|
https://repo1.maven.org/maven2/org/tukaani/xz/1.5/xz-1.5.jar
|
||||||
|
https://repo1.maven.org/maven2/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.jar
|
||||||
|
https://repo1.maven.org/maven2/ch/qos/logback/logback-classic/1.1.7/logback-classic-1.1.7.jar
|
||||||
|
https://repo1.maven.org/maven2/org/junit/platform/junit-platform-console-standalone/1.8.2/junit-platform-console-standalone-1.8.2.jar
|
Loading…
Reference in New Issue
Block a user