go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/cli/prof/prof_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package prof 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestParse(t *testing.T) { 13 t.Run("no options provided", func(t *testing.T) { 14 { 15 opts, err := parseProf("") 16 require.NoError(t, err) 17 require.Equal(t, defaultOpts, opts) 18 } 19 20 { 21 opts, err := parseProf(" ") 22 require.NoError(t, err) 23 require.Equal(t, defaultOpts, opts) 24 } 25 26 { 27 opts, err := parseProf(" , ,,, ") 28 require.NoError(t, err) 29 require.Equal(t, defaultOpts, opts) 30 } 31 }) 32 33 t.Run("enable", func(t *testing.T) { 34 { 35 expected := defaultOpts 36 expected.Enabled = true 37 38 opts, err := parseProf("enable") 39 require.NoError(t, err) 40 require.Equal(t, expected, opts) 41 } 42 43 { 44 expected := defaultOpts 45 expected.Enabled = true 46 47 opts, err := parseProf("enable=true") 48 require.NoError(t, err) 49 require.Equal(t, expected, opts) 50 } 51 52 { 53 expected := defaultOpts 54 55 opts, err := parseProf("enable=truce") 56 require.NoError(t, err) 57 require.Equal(t, expected, opts) 58 } 59 }) 60 61 t.Run("enabled", func(t *testing.T) { 62 { 63 expected := defaultOpts 64 expected.Enabled = true 65 66 opts, err := parseProf("enabled") 67 require.NoError(t, err) 68 require.Equal(t, expected, opts) 69 } 70 71 { 72 expected := defaultOpts 73 expected.Enabled = true 74 75 opts, err := parseProf("enabled=true") 76 require.NoError(t, err) 77 require.Equal(t, expected, opts) 78 } 79 80 { 81 expected := defaultOpts 82 83 opts, err := parseProf("enabled=truce") 84 require.NoError(t, err) 85 require.Equal(t, expected, opts) 86 } 87 }) 88 89 t.Run("listen", func(t *testing.T) { 90 { 91 expected := defaultOpts 92 93 opts, err := parseProf("listen") 94 require.NoError(t, err) 95 require.Equal(t, expected, opts) 96 } 97 98 { 99 expected := defaultOpts 100 101 opts, err := parseProf("listen=") 102 require.NoError(t, err) 103 require.Equal(t, expected, opts) 104 } 105 106 { 107 expected := defaultOpts 108 expected.Listen = "localhost:7474" 109 opts, err := parseProf("listen=localhost:7474") 110 require.NoError(t, err) 111 require.Equal(t, expected, opts) 112 } 113 }) 114 115 t.Run("memprofilerate", func(t *testing.T) { 116 { 117 expected := defaultOpts 118 119 opts, err := parseProf("memprofilerate") 120 require.NoError(t, err) 121 require.Equal(t, expected, opts) 122 } 123 124 { 125 expected := defaultOpts 126 127 opts, err := parseProf("memprofilerate=") 128 require.NoError(t, err) 129 require.Equal(t, expected, opts) 130 } 131 132 { 133 _, err := parseProf("memprofilerate=notanumber") 134 require.Error(t, err) 135 } 136 137 { 138 expected := defaultOpts 139 expectedMemProfileRate := 43 140 expected.MemProfileRate = &expectedMemProfileRate 141 142 opts, err := parseProf("memprofilerate=43") 143 require.NoError(t, err) 144 require.Equal(t, expected, opts) 145 } 146 }) 147 148 t.Run("all together", func(t *testing.T) { 149 { 150 expected := defaultOpts 151 expected.Enabled = true 152 expectedMemProfileRate := 43 153 expected.MemProfileRate = &expectedMemProfileRate 154 expected.Listen = "localhost:7474" 155 156 opts, err := parseProf("enabled,memprofilerate = 43, listen= localhost:7474") 157 require.NoError(t, err) 158 require.Equal(t, expected, opts) 159 } 160 }) 161 }