github.com/rkt/rkt@v1.30.1-0.20200224141603-171c416fac02/tests/rkt_prepare_test.go (about) 1 // Copyright 2016 The rkt Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // +build host coreos src kvm 16 17 package main 18 19 import ( 20 "fmt" 21 "testing" 22 23 "github.com/rkt/rkt/tests/testutils" 24 ) 25 26 // TestPrepareConflictingFlags tests that 'rkt prepare' will complain and abort 27 // if conflicting flags are specified together with a pod manifest. 28 func TestPrepareConflictingFlags(t *testing.T) { 29 ctx := testutils.NewRktRunCtx() 30 defer ctx.Cleanup() 31 32 prepareConflictingFlagsMsg := "conflicting flags set with --pod-manifest (see --help)" 33 podManifestFlag := "--pod-manifest=/dev/null" 34 conflictingFlags := []struct { 35 flag string 36 args string 37 }{ 38 {"--inherit-env", ""}, 39 {"--no-store", ""}, 40 {"--store-only", ""}, 41 {"--port=", "foo:80"}, 42 {"--set-env=", "foo=bar"}, 43 {"--volume=", "foo,kind=host,source=/tmp"}, 44 {"--mount=", "volume=foo,target=/tmp --volume=foo,kind=host,source=/tmp"}, 45 } 46 imageConflictingFlags := []struct { 47 flag string 48 args string 49 }{ 50 {"--exec=", "/bin/sh"}, 51 {"--user=", "user_foo"}, 52 {"--group=", "group_foo"}, 53 } 54 55 for _, cf := range conflictingFlags { 56 cmd := fmt.Sprintf("%s prepare %s %s%s", ctx.Cmd(), podManifestFlag, cf.flag, cf.args) 57 runRktAndCheckOutput(t, cmd, prepareConflictingFlagsMsg, true) 58 } 59 for _, icf := range imageConflictingFlags { 60 cmd := fmt.Sprintf("%s prepare dummy-image.aci %s %s%s", ctx.Cmd(), podManifestFlag, icf.flag, icf.args) 61 runRktAndCheckOutput(t, cmd, prepareConflictingFlagsMsg, true) 62 } 63 }