rubypuppet.sh
1 #! /usr/bin/env atf-sh 2 3 # If you remove rubygem-ruby-augeas from puppet as deps pkg will not remove puppet 4 # but also don't reinstall it which is also wrong. 5 6 . $(atf_get_srcdir)/test_environment.sh 7 8 tests_init \ 9 pkg_puppet 10 11 pkg_puppet_body() { 12 touch puppet.file 13 touch ruby.file 14 touch rubygemrubyaugeas.file 15 touch rubygemhiera.file 16 touch rubygems.file 17 18 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkgf \ 19 rubygemrubyaugeas \ 20 rubygem-ruby-augeas \ 21 textproc/rubygem-augeas \ 22 1.0 23 cat << EOF >> rubygemrubyaugeas.ucl 24 deps: { 25 ruby: { 26 origin: "lang/ruby20", 27 version: "2.0" 28 }, 29 ruby20-gems: { 30 origin: "lang/ruby-gems", 31 version: "1.0" 32 } 33 } 34 files: { 35 ${TMPDIR}/rubygemrubyaugeas.file: "", 36 } 37 EOF 38 39 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkgf \ 40 puppet \ 41 puppet \ 42 sysutils/puppet \ 43 1.0 44 cat << EOF >> puppet.ucl 45 deps: { 46 ruby: { 47 origin: "lang/ruby20", 48 version: "2.0" 49 }, 50 rubygem-hiera: { 51 origin: "lang/rubygem-hiera", 52 version: "1.0" 53 }, 54 rubygem-ruby-augeas: { 55 origin: "textproc/rubygem-augeas", 56 version: "1.0" 57 } 58 } 59 files: { 60 ${TMPDIR}/puppet.file: "", 61 } 62 EOF 63 64 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkgf \ 65 ruby \ 66 ruby \ 67 lang/ruby20 \ 68 2.0 69 cat << EOF >> ruby.ucl 70 shlibs_provided [ 71 "libruby20.so.20", 72 ] 73 files: { 74 ${TMPDIR}/ruby.file: "", 75 } 76 EOF 77 78 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkgf \ 79 rubygem-hiera \ 80 rubygem-hiera \ 81 lang/rubygem-hiera \ 82 1.0 83 cat << EOF >> rubygem-hiera.ucl 84 deps: { 85 ruby: { 86 origin: "lang/ruby20", 87 version: "2.0" 88 }, 89 ruby20-gems: { 90 origin: "lang/ruby-gems", 91 version: "1.0" 92 }, 93 } 94 files: { 95 ${TMPDIR}/rubygemhiera.file: "", 96 } 97 EOF 98 99 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkgf \ 100 ruby-gems20 \ 101 ruby20-gems \ 102 lang/ruby-gems \ 103 1.0 104 cat << EOF >> ruby-gems20.ucl 105 deps: { 106 ruby { 107 origin: lang/ruby20, 108 version: "2.0" 109 } 110 } 111 files: { 112 ${TMPDIR}/rubygems.file: "", 113 } 114 EOF 115 116 mkdir reposconf 117 cat << EOF > reposconf/repo1.conf 118 local1: { 119 url: file://${TMPDIR}, 120 enabled: true 121 } 122 EOF 123 124 for p in ruby ruby-gems20 rubygem-hiera rubygemrubyaugeas puppet; do 125 atf_check \ 126 -o ignore \ 127 -e empty \ 128 -s exit:0 \ 129 pkg create -M ./${p}.ucl 130 done 131 132 atf_check \ 133 -o inline:"Creating repository in .: done\nPacking files for repository: done\n" \ 134 -e empty \ 135 -s exit:0 \ 136 pkg repo . 137 138 atf_check \ 139 -o ignore \ 140 -s exit:0 \ 141 pkg -o REPOS_DIR="${TMPDIR}"/reposconf -o PKG_CACHEDIR="${TMPDIR}" install -y puppet 142 143 #### NEW 144 rm reposconf/repo1.conf 145 rm -f *.ucl 146 rm *.txz 147 rm *.pkg 148 149 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkgf \ 150 rubygemrubyaugeas.new \ 151 rubygem-ruby-augeas \ 152 textproc/rubygem-augeas \ 153 1.0 154 cat << EOF >> rubygemrubyaugeas.new.ucl 155 deps: { 156 ruby: { 157 origin: "lang/ruby21", 158 version: "2.1" 159 }, 160 ruby21-gems: { 161 origin: "lang/ruby-gems", 162 version: "1.0" 163 } 164 } 165 files: { 166 ${TMPDIR}/rubygemrubyaugeas.file: "", 167 } 168 EOF 169 170 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkgf \ 171 puppet.new \ 172 puppet \ 173 lang/ruby21 \ 174 1.0 175 cat << EOF >> puppet.new.ucl 176 deps: { 177 ruby: { 178 origin: "lang/ruby21", 179 version: "2.1" 180 }, 181 rubygem-hiera: { 182 origin: "lang/rubygem-hiera", 183 version: "1.0" 184 }, 185 rubygem-ruby-augeas: { 186 origin: "textproc/rubygem-augeas", 187 version: "1.0" 188 } 189 } 190 files: { 191 ${TMPDIR}/puppet.file: "", 192 } 193 EOF 194 195 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg ruby.new ruby 2.1 196 cat << EOF >> ruby.new.ucl 197 shlibs_provided [ 198 "libruby21.so.21", 199 ] 200 files: { 201 ${TMPDIR}/ruby.file: "", 202 } 203 EOF 204 205 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg rubygem-hiera.new rubygem-hiera 1.0 206 cat << EOF >> rubygem-hiera.new.ucl 207 deps: { 208 ruby: { 209 origin: "lang/ruby21", 210 version: "2.1" 211 }, 212 ruby21-gems: { 213 origin: "lang/ruby-gems", 214 version: "1.0" 215 }, 216 } 217 files: { 218 ${TMPDIR}/rubygemhiera.file: "", 219 } 220 EOF 221 222 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg ruby-gems21.new ruby21-gems 1.0 223 cat << EOF >> ruby-gems21.new.ucl 224 deps: { 225 ruby { 226 origin: lang/ruby21, 227 version: "2.1" 228 } 229 } 230 files: { 231 ${TMPDIR}/rubygems.file: "", 232 } 233 EOF 234 235 for p in ruby ruby-gems21 rubygem-hiera rubygemrubyaugeas puppet; do 236 atf_check \ 237 -o ignore \ 238 -e empty \ 239 -s exit:0 \ 240 pkg create -M ./${p}.new.ucl 241 done 242 243 atf_check \ 244 -o inline:"Creating repository in .: done\nPacking files for repository: done\n" \ 245 -e empty \ 246 -s exit:0 \ 247 pkg repo . 248 249 mkdir reposconf 250 cat << EOF > reposconf/repo.conf 251 local: { 252 url: file://${TMPDIR}/, 253 enabled: true 254 } 255 EOF 256 257 OUTPUT="Updating local repository catalogue... 258 ${JAILED}Fetching meta.conf: done 259 ${JAILED}Fetching data: done 260 Processing entries: done 261 local repository update completed. 5 packages processed. 262 All repositories are up to date. 263 Checking for upgrades (4 candidates): done 264 Processing candidates (4 candidates): done 265 Checking integrity... done (1 conflicting) 266 - ruby21-gems-1.0 conflicts with ruby20-gems-1.0 on ${TMPDIR}/rubygems.file 267 Checking integrity... done (0 conflicting) 268 The following 6 package(s) will be affected (of 0 checked): 269 270 New packages to be INSTALLED: 271 ruby21-gems: 1.0 272 273 Installed packages to be UPGRADED: 274 ruby: 2.0 -> 2.1 275 276 Installed packages to be REINSTALLED: 277 puppet-1.0 (direct dependency changed: ruby) 278 rubygem-hiera-1.0 (direct dependency changed: ruby21-gems) 279 rubygem-ruby-augeas-1.0 (direct dependency changed: ruby21-gems) 280 281 Installed packages to be REMOVED: 282 ruby20-gems: 1.0 283 284 Number of packages to be removed: 1 285 Number of packages to be installed: 1 286 Number of packages to be upgraded: 1 287 Number of packages to be reinstalled: 3 288 " 289 290 atf_check \ 291 -o inline:"${OUTPUT}" \ 292 -s exit:0 \ 293 pkg -o REPOS_DIR="${TMPDIR}/reposconf" -o PKG_CACHEDIR="${TMPDIR}" upgrade -yn 294 }