github.com/rkt/rkt@v1.30.1-0.20200224141603-171c416fac02/tests/rkt_oom_score_adj_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 16 17 package main 18 19 import ( 20 "fmt" 21 "os" 22 "testing" 23 24 "github.com/rkt/rkt/tests/testutils" 25 ) 26 27 func TestOOMScoreAdjust(t *testing.T) { 28 for _, tt := range []struct { 29 patch []string 30 appArgs string 31 expected string 32 }{ 33 { 34 patch: []string{"--isolators=os/linux/oom-score-adj,99"}, 35 expected: "<<<99", 36 }, 37 { 38 patch: []string{"--isolators=os/linux/oom-score-adj,-50"}, 39 expected: "<<<-50", 40 }, 41 { 42 patch: nil, 43 expected: "<<<0", 44 }, 45 { 46 patch: nil, 47 appArgs: "--oom-score-adj 42", 48 expected: "<<<42", 49 }, 50 } { 51 func() { 52 ctx := testutils.NewRktRunCtx() 53 defer ctx.Cleanup() 54 55 ps := []string{} 56 if len(tt.patch) > 0 { 57 ps = append(ps, tt.patch...) 58 } 59 60 image := patchTestACI("rkt-oom-adj.aci", ps...) 61 defer os.Remove(image) 62 63 imageParams := "--exec=/inspect -- -read-file -file-name /proc/self/oom_score_adj" 64 65 rktCmd := fmt.Sprintf( 66 "%s --debug --insecure-options=image run %s %s %s", 67 ctx.Cmd(), 68 image, 69 tt.appArgs, 70 imageParams, 71 ) 72 73 runRktAndCheckOutput(t, rktCmd, tt.expected, false) 74 }() 75 } 76 }