github.com/dctrud/umoci@v0.4.3-0.20191016193643-05a1d37de015/cmd/umoci/main_test.go (about) 1 /* 2 * umoci: Umoci Modifies Open Containers' Images 3 * Copyright (C) 2016, 2017, 2018 SUSE LLC. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 package main 19 20 import ( 21 "os" 22 "strings" 23 "testing" 24 ) 25 26 // Build: 27 // $ go test -c -covermode=count -o umoci \ 28 // -cover -coverpkg=github.com/openSUSE/umoci/... \ 29 // github.com/openSUSE/umoci/cmd/umoci 30 // Run: 31 // $ ./umoci __DEVEL--i-heard-you-like-tests -test.coverprofile [file] [args]... 32 33 // TestUmoci is a hack that allows us to figure out what the coverage is during 34 // integration tests. I would not recommend that you use a binary built using 35 // this hack outside of a test suite. 36 func TestUmoci(t *testing.T) { 37 var ( 38 args []string 39 run bool 40 ) 41 42 for _, arg := range os.Args { 43 switch { 44 case arg == "__DEVEL--i-heard-you-like-tests": 45 run = true 46 case strings.HasPrefix(arg, "-test"): 47 case strings.HasPrefix(arg, "__DEVEL"): 48 default: 49 args = append(args, arg) 50 } 51 } 52 os.Args = args 53 54 if run { 55 main() 56 } 57 }