[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 }}; | ||||
|         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: | ||||
|     runs-on: ubuntu-20.04 | ||||
|     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