29 lines
		
	
	
		
			824 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			824 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| LOGFILE="h2server.log"
 | |
| 
 | |
| if ! [ -e "h2spec" ] ; then
 | |
|     # if we don't already have a h2spec executable, wget it from github
 | |
|     wget https://github.com/summerwind/h2spec/releases/download/v2.1.1/h2spec_linux_amd64.tar.gz
 | |
|     tar xf h2spec_linux_amd64.tar.gz
 | |
| fi
 | |
| 
 | |
| cargo build --example server
 | |
| exec 3< <(./target/debug/examples/server);
 | |
| SERVER_PID=$!
 | |
| 
 | |
| # wait 'til the server is listening before running h2spec, and pipe server's
 | |
| # stdout to a log file.
 | |
| sed '/listening on Ok(V4(127.0.0.1:5928))/q' <&3 ; cat <&3 > "${LOGFILE}" &
 | |
| 
 | |
| # run h2spec against the server, printing the server log if h2spec failed
 | |
| ./h2spec -p 5928
 | |
| H2SPEC_STATUS=$?
 | |
| if [ "${H2SPEC_STATUS}" -eq 0 ]; then
 | |
|     echo "h2spec passed!"
 | |
| else
 | |
|     echo "h2spec failed! server logs:"
 | |
|     cat "${LOGFILE}"
 | |
| fi
 | |
| kill "${SERVER_PID}"
 | |
| exit "${H2SPEC_STATUS}"
 |