| 
									
										
										
										
											2016-04-13 05:03:25 +08:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							| 
									
										
										
										
											2016-06-23 02:28:45 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Copyright 2016 The Kubernetes Authors All rights reserved. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # 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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-13 05:03:25 +08:00
										 |  |  | set -euo pipefail | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-07 11:03:10 +08:00
										 |  |  | covermode=${COVERMODE:-atomic} | 
					
						
							|  |  |  | coverdir=$(mktemp -d /tmp/coverage.XXXXXXXXXX) | 
					
						
							|  |  |  | profile="${coverdir}/cover.out" | 
					
						
							| 
									
										
										
										
											2016-04-13 05:03:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-07 11:03:10 +08:00
										 |  |  | hash goveralls 2>/dev/null || go get github.com/mattn/goveralls | 
					
						
							| 
									
										
										
										
											2016-07-08 00:39:41 +08:00
										 |  |  | hash godir 2>/dev/null || go get github.com/Masterminds/godir | 
					
						
							| 
									
										
										
										
											2016-04-13 05:03:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-07 11:03:10 +08:00
										 |  |  | generate_cover_data() { | 
					
						
							|  |  |  |   for d in $(godir) ; do | 
					
						
							| 
									
										
										
										
											2016-07-22 14:31:39 +08:00
										 |  |  |     ( | 
					
						
							|  |  |  |       local output="${coverdir}/${d//\//-}.cover" | 
					
						
							|  |  |  |       go test -coverprofile="${output}" -covermode="$covermode" "$d" | 
					
						
							| 
									
										
										
										
											2016-08-11 04:08:24 +08:00
										 |  |  |     ) | 
					
						
							| 
									
										
										
										
											2016-07-07 11:03:10 +08:00
										 |  |  |   done | 
					
						
							| 
									
										
										
										
											2016-04-13 05:03:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-07 11:03:10 +08:00
										 |  |  |   echo "mode: $covermode" >"$profile" | 
					
						
							|  |  |  |   grep -h -v "^mode:" "$coverdir"/*.cover >>"$profile" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | push_to_coveralls() { | 
					
						
							|  |  |  |   goveralls -coverprofile="${profile}" -service=circle-ci | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | generate_cover_data | 
					
						
							|  |  |  | go tool cover -func "${profile}" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-22 14:31:39 +08:00
										 |  |  | case "${1-}" in | 
					
						
							| 
									
										
										
										
											2016-07-07 11:03:10 +08:00
										 |  |  |   --html) | 
					
						
							|  |  |  |     go tool cover -html "${profile}" | 
					
						
							|  |  |  |     ;; | 
					
						
							|  |  |  |   --coveralls) | 
					
						
							|  |  |  |     push_to_coveralls | 
					
						
							|  |  |  |     ;; | 
					
						
							|  |  |  | esac | 
					
						
							| 
									
										
										
										
											2016-04-13 05:03:25 +08:00
										 |  |  | 
 |