| Sean Dague | bb35715 | 2016-06-07 11:20:55 -0400 | [diff] [blame] | 1 | #!/usr/bin/env bash | 
 | 2 | # | 
 | 3 | # Licensed under the Apache License, Version 2.0 (the "License"); you may | 
 | 4 | # not use this file except in compliance with the License. You may obtain | 
 | 5 | # 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 | 
 | 12 | # implied. See the License for the specific language governing | 
 | 13 | # permissions and limitations under the License. | 
 | 14 |  | 
 | 15 | # Tests for DevStack INI functions | 
 | 16 |  | 
 | 17 | TOP=$(cd $(dirname "$0")/.. && pwd) | 
 | 18 |  | 
 | 19 | # Import config functions | 
 | 20 | source $TOP/inc/ini-config | 
 | 21 |  | 
 | 22 | source $TOP/tests/unittest.sh | 
 | 23 |  | 
 | 24 | echo "Testing INI local.conf functions" | 
 | 25 |  | 
 | 26 | # test that can determine if file has section in specified meta-section | 
 | 27 |  | 
 | 28 | function test_localconf_has_section { | 
 | 29 |     local file_localconf | 
 | 30 |     local file_conf1 | 
 | 31 |     local file_conf2 | 
 | 32 |     file_localconf=`mktemp` | 
 | 33 |     file_conf1=`mktemp` | 
 | 34 |     file_conf2=`mktemp` | 
 | 35 |  | 
 | 36 |     cat <<- EOF > $file_localconf | 
 | 37 | [[local|localrc]] | 
 | 38 | LOCALRC_VAR1=localrc_val1 | 
 | 39 | LOCALRC_VAR2=localrc_val2 | 
 | 40 | LOCALRC_VAR3=localrc_val3 | 
 | 41 |  | 
 | 42 | [[post-config|$file_conf1]] | 
 | 43 | [conf1_t1] | 
 | 44 | conf1_t1_opt1=conf1_t1_val1 | 
 | 45 | conf1_t1_opt2=conf1_t1_val2 | 
 | 46 | conf1_t1_opt3=conf1_t1_val3 | 
 | 47 | [conf1_t2] | 
 | 48 | conf1_t2_opt1=conf1_t2_val1 | 
 | 49 | conf1_t2_opt2=conf1_t2_val2 | 
 | 50 | conf1_t2_opt3=conf1_t2_val3 | 
 | 51 | [conf1_t3] | 
 | 52 | conf1_t3_opt1=conf1_t3_val1 | 
 | 53 | conf1_t3_opt2=conf1_t3_val2 | 
 | 54 | conf1_t3_opt3=conf1_t3_val3 | 
 | 55 |  | 
 | 56 | [[post-extra|$file_conf2]] | 
 | 57 | [conf2_t1] | 
 | 58 | conf2_t1_opt1=conf2_t1_val1 | 
 | 59 | conf2_t1_opt2=conf2_t1_val2 | 
 | 60 | conf2_t1_opt3=conf2_t1_val3 | 
 | 61 | EOF | 
 | 62 |  | 
 | 63 |     localconf_has_section $file_localconf post-config $file_conf1 conf1_t1 | 
 | 64 |     assert_equal $? 0 | 
 | 65 |     localconf_has_section $file_localconf post-config $file_conf1 conf1_t2 | 
 | 66 |     assert_equal $? 0 | 
 | 67 |     localconf_has_section $file_localconf post-config $file_conf1 conf1_t3 | 
 | 68 |     assert_equal $? 0 | 
 | 69 |     localconf_has_section $file_localconf post-extra $file_conf2 conf2_t1 | 
 | 70 |     assert_equal $? 0 | 
 | 71 |     localconf_has_section $file_localconf post-config $file_conf1 conf1_t4 | 
 | 72 |     assert_equal $? 1 | 
 | 73 |     localconf_has_section $file_localconf post-install $file_conf1 conf1_t1 | 
 | 74 |     assert_equal $? 1 | 
 | 75 |     localconf_has_section $file_localconf local localrc conf1_t2 | 
 | 76 |     assert_equal $? 1 | 
 | 77 |     rm -f $file_localconf $file_conf1 $file_conf2 | 
 | 78 | } | 
 | 79 |  | 
 | 80 | # test that can determine if file has option in specified meta-section and section | 
 | 81 | function test_localconf_has_option { | 
 | 82 |     local file_localconf | 
 | 83 |     local file_conf1 | 
 | 84 |     local file_conf2 | 
 | 85 |     file_localconf=`mktemp` | 
 | 86 |     file_conf1=`mktemp` | 
 | 87 |     file_conf2=`mktemp` | 
 | 88 |     cat <<- EOF > $file_localconf | 
 | 89 | [[post-config|$file_conf1]] | 
 | 90 | [conf1_t1] | 
 | 91 | conf1_t1_opt1 = conf1_t1_val1 | 
 | 92 | conf1_t1_opt2 = conf1_t1_val2 | 
 | 93 | conf1_t1_opt3 = conf1_t1_val3 | 
 | 94 | [conf1_t2] | 
 | 95 | conf1_t2_opt1=conf1_t2_val1 | 
 | 96 | conf1_t2_opt2=conf1_t2_val2 | 
 | 97 | conf1_t2_opt3=conf1_t2_val3 | 
 | 98 | [conf1_t3] | 
 | 99 | conf1_t3_opt1=conf1_t3_val1 | 
 | 100 | conf1_t3_opt2=conf1_t3_val2 | 
 | 101 | conf1_t3_opt3=conf1_t3_val3 | 
 | 102 |  | 
 | 103 | [[local|localrc]] | 
 | 104 | LOCALRC_VAR1=localrc_val1 | 
 | 105 | LOCALRC_VAR2=localrc_val2 | 
 | 106 | LOCALRC_VAR3=localrc_val3 | 
 | 107 |  | 
 | 108 | [[post-extra|$file_conf2]] | 
 | 109 | [conf2_t1] | 
 | 110 | conf2_t1_opt1=conf2_t1_val1 | 
 | 111 | conf2_t1_opt2=conf2_t1_val2 | 
 | 112 | conf2_t1_opt3=conf2_t1_val3 | 
 | 113 | EOF | 
 | 114 |  | 
 | 115 |     localconf_has_option $file_localconf local localrc "" LOCALRC_VAR1 | 
 | 116 |     assert_equal $? 0 | 
 | 117 |     localconf_has_option $file_localconf local localrc "" LOCALRC_VAR2 | 
 | 118 |     assert_equal $? 0 | 
 | 119 |     localconf_has_option $file_localconf local localrc "" LOCALRC_VAR3 | 
 | 120 |     assert_equal $? 0 | 
 | 121 |     localconf_has_option $file_localconf post-config $file_conf1 conf1_t1 conf1_t1_opt1 | 
 | 122 |     assert_equal $? 0 | 
 | 123 |     localconf_has_option $file_localconf post-config $file_conf1 conf1_t2 conf1_t2_opt2 | 
 | 124 |     assert_equal $? 0 | 
 | 125 |     localconf_has_option $file_localconf post-config $file_conf1 conf1_t3 conf1_t3_opt3 | 
 | 126 |     assert_equal $? 0 | 
 | 127 |     localconf_has_option $file_localconf post-extra $file_conf2 conf2_t1 conf2_t1_opt2 | 
 | 128 |     assert_equal $? 0 | 
 | 129 |     localconf_has_option $file_localconf post-config $file_conf1 conf1_t1_opt4 | 
 | 130 |     assert_equal $? 1 | 
 | 131 |     localconf_has_option $file_localconf post-install $file_conf1 conf1_t1_opt1 | 
 | 132 |     assert_equal $? 1 | 
 | 133 |     localconf_has_option $file_localconf local localrc conf1_t2 conf1_t2_opt1 | 
 | 134 |     assert_equal $? 1 | 
 | 135 |     rm -f $file_localconf $file_conf1 $file_conf2 | 
 | 136 | } | 
 | 137 |  | 
 | 138 | # test that update option in specified meta-section and section | 
 | 139 | function test_localconf_update_option { | 
 | 140 |     local file_localconf | 
 | 141 |     local file_localconf_expected | 
 | 142 |     local file_conf1 | 
 | 143 |     local file_conf2 | 
 | 144 |     file_localconf=`mktemp` | 
 | 145 |     file_localconf_expected=`mktemp` | 
 | 146 |     file_conf1=`mktemp` | 
 | 147 |     file_conf2=`mktemp` | 
 | 148 |     cat <<- EOF > $file_localconf | 
 | 149 | [[local|localrc]] | 
 | 150 | LOCALRC_VAR1 = localrc_val1 | 
 | 151 | LOCALRC_VAR2 = localrc_val2 | 
 | 152 | LOCALRC_VAR3 = localrc_val3 | 
 | 153 |  | 
 | 154 | [[post-config|$file_conf1]] | 
 | 155 | [conf1_t1] | 
 | 156 | conf1_t1_opt1=conf1_t1_val1 | 
 | 157 | conf1_t1_opt2=conf1_t1_val2 | 
 | 158 | conf1_t1_opt3=conf1_t1_val3 | 
 | 159 | [conf1_t2] | 
 | 160 | conf1_t2_opt1=conf1_t2_val1 | 
 | 161 | conf1_t2_opt2=conf1_t2_val2 | 
 | 162 | conf1_t2_opt3=conf1_t2_val3 | 
 | 163 | [conf1_t3] | 
 | 164 | conf1_t3_opt1=conf1_t3_val1 | 
 | 165 | conf1_t3_opt2=conf1_t3_val2 | 
 | 166 | conf1_t3_opt3=conf1_t3_val3 | 
 | 167 |  | 
 | 168 | [[post-extra|$file_conf2]] | 
 | 169 | [conf2_t1] | 
 | 170 | conf2_t1_opt1=conf2_t1_val1 | 
 | 171 | conf2_t1_opt2=conf2_t1_val2 | 
 | 172 | conf2_t1_opt3=conf2_t1_val3 | 
 | 173 | EOF | 
 | 174 |     cat <<- EOF > $file_localconf_expected | 
 | 175 | [[local|localrc]] | 
 | 176 | LOCALRC_VAR1 = localrc_val1 | 
 | 177 | LOCALRC_VAR2 = localrc_val2_update | 
 | 178 | LOCALRC_VAR3 = localrc_val3 | 
 | 179 |  | 
 | 180 | [[post-config|$file_conf1]] | 
 | 181 | [conf1_t1] | 
 | 182 | conf1_t1_opt1=conf1_t1_val1_update | 
 | 183 | conf1_t1_opt2=conf1_t1_val2 | 
 | 184 | conf1_t1_opt3=conf1_t1_val3 | 
 | 185 | [conf1_t2] | 
 | 186 | conf1_t2_opt1=conf1_t2_val1 | 
 | 187 | conf1_t2_opt2=conf1_t2_val2_update | 
 | 188 | conf1_t2_opt3=conf1_t2_val3 | 
 | 189 | [conf1_t3] | 
 | 190 | conf1_t3_opt1=conf1_t3_val1 | 
 | 191 | conf1_t3_opt2=conf1_t3_val2 | 
 | 192 | conf1_t3_opt3=conf1_t3_val3_update | 
 | 193 |  | 
 | 194 | [[post-extra|$file_conf2]] | 
 | 195 | [conf2_t1] | 
 | 196 | conf2_t1_opt1=conf2_t1_val1 | 
 | 197 | conf2_t1_opt2=conf2_t1_val2 | 
 | 198 | conf2_t1_opt3=conf2_t1_val3_update | 
 | 199 | EOF | 
 | 200 |  | 
 | 201 |     localconf_update_option "$SUDO" $file_localconf local localrc "" LOCALRC_VAR2 localrc_val2_update | 
 | 202 |     localconf_update_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t1 conf1_t1_opt1 conf1_t1_val1_update | 
 | 203 |     localconf_update_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t2 conf1_t2_opt2 conf1_t2_val2_update | 
 | 204 |     localconf_update_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t3 conf1_t3_opt3 conf1_t3_val3_update | 
 | 205 |     localconf_update_option "$SUDO" $file_localconf post-extra $file_conf2 conf2_t1 conf2_t1_opt3 conf2_t1_val3_update | 
 | 206 |     result=`cat $file_localconf` | 
 | 207 |     result_expected=`cat $file_localconf_expected` | 
 | 208 |     assert_equal "$result" "$result_expected" | 
 | 209 |     localconf_update_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t2 conf1_t3_opt1 conf1_t3_val1_update | 
 | 210 |     localconf_update_option "$SUDO" $file_localconf post-extra $file_conf2 conf2_t1 conf2_t1_opt4 conf2_t1_val4_update | 
 | 211 |     localconf_update_option "$SUDO" $file_localconf post-install $file_conf2 conf2_t1 conf2_t1_opt1 conf2_t1_val1_update | 
 | 212 |     localconf_update_option "$SUDO" $file_localconf local localrc "" LOCALRC_VAR4 localrc_val4_update | 
 | 213 |     result=`cat $file_localconf` | 
 | 214 |     result_expected=`cat $file_localconf_expected` | 
 | 215 |     assert_equal "$result" "$result_expected" | 
 | 216 |     rm -f $file_localconf $file_localconf_expected $file_conf1 $file_conf2 | 
 | 217 | } | 
 | 218 |  | 
 | 219 | # test that add option in specified meta-section and section | 
 | 220 | function test_localconf_add_option { | 
 | 221 |     local file_localconf | 
 | 222 |     local file_localconf_expected | 
 | 223 |     local file_conf1 | 
 | 224 |     local file_conf2 | 
 | 225 |     file_localconf=`mktemp` | 
 | 226 |     file_localconf_expected=`mktemp` | 
 | 227 |     file_conf1=`mktemp` | 
 | 228 |     file_conf2=`mktemp` | 
 | 229 |     cat <<- EOF > $file_localconf | 
 | 230 | [[post-config|$file_conf1]] | 
 | 231 | [conf1_t1] | 
 | 232 | conf1_t1_opt1=conf1_t1_val1 | 
 | 233 | conf1_t1_opt2=conf1_t1_val2 | 
 | 234 | conf1_t1_opt3=conf1_t1_val3 | 
 | 235 | [conf1_t2] | 
 | 236 | conf1_t2_opt1=conf1_t2_val1 | 
 | 237 | conf1_t2_opt2=conf1_t2_val2 | 
 | 238 | conf1_t2_opt3=conf1_t2_val3 | 
 | 239 | [conf1_t3] | 
 | 240 | conf1_t3_opt1=conf1_t3_val1 | 
 | 241 | conf1_t3_opt2=conf1_t3_val2 | 
 | 242 | conf1_t3_opt3=conf1_t3_val3 | 
 | 243 |  | 
 | 244 | [[local|localrc]] | 
 | 245 | LOCALRC_VAR1=localrc_val1 | 
 | 246 | LOCALRC_VAR2=localrc_val2 | 
 | 247 | LOCALRC_VAR3=localrc_val3 | 
 | 248 |  | 
 | 249 | [[post-extra|$file_conf2]] | 
 | 250 | [conf2_t1] | 
 | 251 | conf2_t1_opt1 = conf2_t1_val1 | 
 | 252 | conf2_t1_opt2 = conf2_t1_val2 | 
 | 253 | conf2_t1_opt3 = conf2_t1_val3 | 
 | 254 | EOF | 
 | 255 |     cat <<- EOF > $file_localconf_expected | 
 | 256 | [[post-config|$file_conf1]] | 
 | 257 | [conf1_t1] | 
 | 258 | conf1_t1_opt4 = conf1_t1_val4 | 
 | 259 | conf1_t1_opt1=conf1_t1_val1 | 
 | 260 | conf1_t1_opt2=conf1_t1_val2 | 
 | 261 | conf1_t1_opt3=conf1_t1_val3 | 
 | 262 | [conf1_t2] | 
 | 263 | conf1_t2_opt4 = conf1_t2_val4 | 
 | 264 | conf1_t2_opt1=conf1_t2_val1 | 
 | 265 | conf1_t2_opt2=conf1_t2_val2 | 
 | 266 | conf1_t2_opt3=conf1_t2_val3 | 
 | 267 | [conf1_t3] | 
 | 268 | conf1_t3_opt4 = conf1_t3_val4 | 
 | 269 | conf1_t3_opt1=conf1_t3_val1 | 
 | 270 | conf1_t3_opt2=conf1_t3_val2 | 
 | 271 | conf1_t3_opt3=conf1_t3_val3 | 
 | 272 |  | 
 | 273 | [[local|localrc]] | 
 | 274 | LOCALRC_VAR4 = localrc_val4 | 
 | 275 | LOCALRC_VAR1=localrc_val1 | 
 | 276 | LOCALRC_VAR2=localrc_val2 | 
 | 277 | LOCALRC_VAR3=localrc_val3 | 
 | 278 |  | 
 | 279 | [[post-extra|$file_conf2]] | 
 | 280 | [conf2_t1] | 
 | 281 | conf2_t1_opt4 = conf2_t1_val4 | 
 | 282 | conf2_t1_opt1 = conf2_t1_val1 | 
 | 283 | conf2_t1_opt2 = conf2_t1_val2 | 
 | 284 | conf2_t1_opt3 = conf2_t1_val3 | 
 | 285 | EOF | 
 | 286 |  | 
 | 287 |     localconf_add_option "$SUDO" $file_localconf local localrc "" LOCALRC_VAR4 localrc_val4 | 
 | 288 |     localconf_add_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t1 conf1_t1_opt4 conf1_t1_val4 | 
 | 289 |     localconf_add_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t2 conf1_t2_opt4 conf1_t2_val4 | 
 | 290 |     localconf_add_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t3 conf1_t3_opt4 conf1_t3_val4 | 
 | 291 |     localconf_add_option "$SUDO" $file_localconf post-extra $file_conf2 conf2_t1 conf2_t1_opt4 conf2_t1_val4 | 
 | 292 |     result=`cat $file_localconf` | 
 | 293 |     result_expected=`cat $file_localconf_expected` | 
 | 294 |     assert_equal "$result" "$result_expected" | 
 | 295 |     localconf_add_option "$SUDO" $file_localconf local localrc.conf "" LOCALRC_VAR4 localrc_val4_update | 
 | 296 |     localconf_add_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t4 conf1_t4_opt1 conf1_t4_val1 | 
 | 297 |     localconf_add_option "$SUDO" $file_localconf post-extra $file_conf2 conf2_t2 conf2_t2_opt4 conf2_t2_val4 | 
 | 298 |     localconf_add_option "$SUDO" $file_localconf post-install $file_conf2 conf2_t1 conf2_t1_opt4 conf2_t2_val4 | 
 | 299 |     result=`cat $file_localconf` | 
 | 300 |     result_expected=`cat $file_localconf_expected` | 
 | 301 |     assert_equal "$result" "$result_expected" | 
 | 302 |     rm -f $file_localconf $file_localconf_expected $file_conf1 $file_conf2 | 
 | 303 | } | 
 | 304 |  | 
 | 305 | # test that add section and option in specified meta-section | 
 | 306 | function test_localconf_add_section_and_option { | 
 | 307 |     local file_localconf | 
 | 308 |     local file_localconf_expected | 
 | 309 |     local file_conf1 | 
 | 310 |     local file_conf2 | 
 | 311 |     file_localconf=`mktemp` | 
 | 312 |     file_localconf_expected=`mktemp` | 
 | 313 |     file_conf1=`mktemp` | 
 | 314 |     file_conf2=`mktemp` | 
 | 315 |     cat <<- EOF > $file_localconf | 
 | 316 | [[post-config|$file_conf1]] | 
 | 317 | [conf1_t1] | 
 | 318 | conf1_t1_opt1=conf1_t1_val1 | 
 | 319 | conf1_t1_opt2=conf1_t1_val2 | 
 | 320 | conf1_t1_opt3=conf1_t1_val3 | 
 | 321 | [conf1_t2] | 
 | 322 | conf1_t2_opt1=conf1_t2_val1 | 
 | 323 | conf1_t2_opt2=conf1_t2_val2 | 
 | 324 | conf1_t2_opt3=conf1_t2_val3 | 
 | 325 | [conf1_t3] | 
 | 326 | conf1_t3_opt1=conf1_t3_val1 | 
 | 327 | conf1_t3_opt2=conf1_t3_val2 | 
 | 328 | conf1_t3_opt3=conf1_t3_val3 | 
 | 329 |  | 
 | 330 | [[local|localrc]] | 
 | 331 | LOCALRC_VAR1=localrc_val1 | 
 | 332 | LOCALRC_VAR2=localrc_val2 | 
 | 333 | LOCALRC_VAR3=localrc_val3 | 
 | 334 |  | 
 | 335 | [[post-extra|$file_conf2]] | 
 | 336 | [conf2_t1] | 
 | 337 | conf2_t1_opt1=conf2_t1_val1 | 
 | 338 | conf2_t1_opt2=conf2_t1_val2 | 
 | 339 | conf2_t1_opt3=conf2_t1_val3 | 
 | 340 | EOF | 
 | 341 |     cat <<- EOF > $file_localconf_expected | 
 | 342 | [[post-config|$file_conf1]] | 
 | 343 | [conf1_t4] | 
 | 344 | conf1_t4_opt1 = conf1_t4_val1 | 
 | 345 | [conf1_t1] | 
 | 346 | conf1_t1_opt1=conf1_t1_val1 | 
 | 347 | conf1_t1_opt2=conf1_t1_val2 | 
 | 348 | conf1_t1_opt3=conf1_t1_val3 | 
 | 349 | [conf1_t2] | 
 | 350 | conf1_t2_opt1=conf1_t2_val1 | 
 | 351 | conf1_t2_opt2=conf1_t2_val2 | 
 | 352 | conf1_t2_opt3=conf1_t2_val3 | 
 | 353 | [conf1_t3] | 
 | 354 | conf1_t3_opt1=conf1_t3_val1 | 
 | 355 | conf1_t3_opt2=conf1_t3_val2 | 
 | 356 | conf1_t3_opt3=conf1_t3_val3 | 
 | 357 |  | 
 | 358 | [[local|localrc]] | 
 | 359 | LOCALRC_VAR1=localrc_val1 | 
 | 360 | LOCALRC_VAR2=localrc_val2 | 
 | 361 | LOCALRC_VAR3=localrc_val3 | 
 | 362 |  | 
 | 363 | [[post-extra|$file_conf2]] | 
 | 364 | [conf2_t2] | 
 | 365 | conf2_t2_opt1 = conf2_t2_val1 | 
 | 366 | [conf2_t1] | 
 | 367 | conf2_t1_opt1=conf2_t1_val1 | 
 | 368 | conf2_t1_opt2=conf2_t1_val2 | 
 | 369 | conf2_t1_opt3=conf2_t1_val3 | 
 | 370 | EOF | 
 | 371 |  | 
 | 372 |     localconf_add_section_and_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t4 conf1_t4_opt1 conf1_t4_val1 | 
 | 373 |     localconf_add_section_and_option "$SUDO" $file_localconf post-extra $file_conf2 conf2_t2 conf2_t2_opt1 conf2_t2_val1 | 
 | 374 |     result=`cat $file_localconf` | 
 | 375 |     result_expected=`cat $file_localconf_expected` | 
 | 376 |     assert_equal "$result" "$result_expected" | 
 | 377 |     localconf_add_section_and_option "$SUDO" $file_localconf post-install $file_conf2 conf2_t2 conf2_t2_opt1 conf2_t2_val1 | 
 | 378 |     result=`cat $file_localconf` | 
 | 379 |     result_expected=`cat $file_localconf_expected` | 
 | 380 |     assert_equal "$result" "$result_expected" | 
 | 381 |     rm -f $file_localconf $file_localconf_expected $file_conf1 $file_conf2 | 
 | 382 | } | 
 | 383 |  | 
 | 384 | # test that add section and option in specified meta-section | 
 | 385 | function test_localconf_set { | 
 | 386 |     local file_localconf | 
 | 387 |     local file_localconf_expected | 
 | 388 |     local file_conf1 | 
 | 389 |     local file_conf2 | 
 | 390 |     file_localconf=`mktemp` | 
 | 391 |     file_localconf_expected=`mktemp` | 
 | 392 |     file_conf1=`mktemp` | 
 | 393 |     file_conf2=`mktemp` | 
 | 394 |     cat <<- EOF > $file_localconf | 
 | 395 | [[local|localrc]] | 
 | 396 | LOCALRC_VAR1=localrc_val1 | 
 | 397 | LOCALRC_VAR2=localrc_val2 | 
 | 398 | LOCALRC_VAR3=localrc_val3 | 
 | 399 |  | 
 | 400 | [[post-config|$file_conf1]] | 
 | 401 | [conf1_t1] | 
 | 402 | conf1_t1_opt1=conf1_t1_val1 | 
 | 403 | conf1_t1_opt2=conf1_t1_val2 | 
 | 404 | conf1_t1_opt3=conf1_t1_val3 | 
 | 405 | [conf1_t2] | 
 | 406 | conf1_t2_opt1=conf1_t2_val1 | 
 | 407 | conf1_t2_opt2=conf1_t2_val2 | 
 | 408 | conf1_t2_opt3=conf1_t2_val3 | 
 | 409 | [conf1_t3] | 
 | 410 | conf1_t3_opt1=conf1_t3_val1 | 
 | 411 | conf1_t3_opt2=conf1_t3_val2 | 
 | 412 | conf1_t3_opt3=conf1_t3_val3 | 
 | 413 |  | 
 | 414 | [[post-extra|$file_conf2]] | 
 | 415 | [conf2_t1] | 
 | 416 | conf2_t1_opt1=conf2_t1_val1 | 
 | 417 | conf2_t1_opt2=conf2_t1_val2 | 
 | 418 | conf2_t1_opt3=conf2_t1_val3 | 
 | 419 | EOF | 
 | 420 |     cat <<- EOF > $file_localconf_expected | 
 | 421 | [[local|localrc]] | 
 | 422 | LOCALRC_VAR1=localrc_val1 | 
 | 423 | LOCALRC_VAR2=localrc_val2_update | 
 | 424 | LOCALRC_VAR3=localrc_val3 | 
 | 425 |  | 
 | 426 | [[post-config|$file_conf1]] | 
 | 427 | [conf1_t4] | 
 | 428 | conf1_t4_opt1 = conf1_t4_val1 | 
 | 429 | [conf1_t1] | 
 | 430 | conf1_t1_opt1=conf1_t1_val1 | 
 | 431 | conf1_t1_opt2=conf1_t1_val2 | 
 | 432 | conf1_t1_opt3=conf1_t1_val3 | 
 | 433 | [conf1_t2] | 
 | 434 | conf1_t2_opt1=conf1_t2_val1 | 
 | 435 | conf1_t2_opt2=conf1_t2_val2 | 
 | 436 | conf1_t2_opt3=conf1_t2_val3 | 
 | 437 | [conf1_t3] | 
 | 438 | conf1_t3_opt1=conf1_t3_val1 | 
 | 439 | conf1_t3_opt2=conf1_t3_val2 | 
 | 440 | conf1_t3_opt3=conf1_t3_val3 | 
 | 441 |  | 
 | 442 | [[post-extra|$file_conf2]] | 
 | 443 | [conf2_t1] | 
 | 444 | conf2_t1_opt4 = conf2_t1_val4 | 
 | 445 | conf2_t1_opt1=conf2_t1_val1 | 
 | 446 | conf2_t1_opt2=conf2_t1_val2 | 
 | 447 | conf2_t1_opt3=conf2_t1_val3 | 
 | 448 |  | 
 | 449 | [[post-install|/etc/neutron/plugin/ml2/ml2_conf.ini]] | 
 | 450 | [ml2] | 
 | 451 | ml2_opt1 = ml2_val1 | 
 | 452 | EOF | 
 | 453 |  | 
 | 454 |     if [[ -n "$SUDO" ]]; then | 
 | 455 |         SUDO_ARG="-sudo" | 
 | 456 |     else | 
 | 457 |         SUDO_ARG="" | 
 | 458 |     fi | 
 | 459 |     localconf_set $SUDO_ARG $file_localconf post-install /etc/neutron/plugin/ml2/ml2_conf.ini ml2 ml2_opt1 ml2_val1 | 
 | 460 |     localconf_set $SUDO_ARG $file_localconf local localrc "" LOCALRC_VAR2 localrc_val2_update | 
 | 461 |     localconf_set $SUDO_ARG $file_localconf post-config $file_conf1 conf1_t4 conf1_t4_opt1 conf1_t4_val1 | 
 | 462 |     localconf_set $SUDO_ARG $file_localconf post-extra $file_conf2 conf2_t1 conf2_t1_opt4 conf2_t1_val4 | 
 | 463 |     result=`cat $file_localconf` | 
 | 464 |     result_expected=`cat $file_localconf_expected` | 
 | 465 |     assert_equal "$result" "$result_expected" | 
 | 466 |     rm -f $file_localconf $file_localconf_expected $file_conf1 $file_conf2 | 
 | 467 | } | 
 | 468 |  | 
 | 469 |  | 
 | 470 | test_localconf_has_section | 
 | 471 | test_localconf_has_option | 
 | 472 | test_localconf_update_option | 
 | 473 | test_localconf_add_option | 
 | 474 | test_localconf_add_section_and_option | 
 | 475 | test_localconf_set |