repo.sh
1 #! /usr/bin/env atf-sh 2 3 . $(atf_get_srcdir)/test_environment.sh 4 5 tests_init \ 6 repo_v2 \ 7 repo_multiversion \ 8 repo_multiformat \ 9 repo_content 10 11 repo_v2_body() { 12 touch plop 13 touch bla 14 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg test test 1 "${TMPDIR}" 15 cat >> test.ucl << EOF 16 files: { 17 "${TMPDIR}/plop": "" 18 "${TMPDIR}/bla": "" 19 } 20 EOF 21 22 cat > meta.ucl << EOF 23 version = 2 24 EOF 25 atf_check \ 26 -o empty \ 27 -e empty \ 28 -s exit:0 \ 29 pkg create -M test.ucl 30 31 atf_check \ 32 -o inline:"Creating repository in .: done\nPacking files for repository: done\n" \ 33 -e empty \ 34 -s exit:0 \ 35 pkg repo --meta-file meta.ucl . 36 37 ln -s test-1.pkg test.pkg 38 39 atf_check \ 40 -o inline:"Creating repository in .: done\nPacking files for repository: done\n" \ 41 -e empty \ 42 -s exit:0 \ 43 pkg repo --meta-file meta.ucl . 44 45 if [ `uname -s` = "Darwin" ]; then 46 atf_pass 47 fi 48 49 atf_check -s exit:127 -o ignore -e ignore "ls digest.pkg" 50 51 mkdir Latest 52 ln -s test-1.pkg Latest/test.pkg 53 54 atf_check \ 55 -o inline:"Creating repository in .: done\nPacking files for repository: done\n" \ 56 -e empty \ 57 -s exit:0 \ 58 pkg repo . 59 60 } 61 62 repo_multiversion_body() { 63 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg test test 1.0 "${TMPDIR}" 64 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg test1 test 1.1 "${TMPDIR}" 65 for i in test test1; do 66 atf_check pkg create -M $i.ucl 67 done 68 69 atf_check \ 70 -o inline:"Creating repository in .: done\nPacking files for repository: done\n" \ 71 pkg repo . 72 73 cat > pkg.conf << EOF 74 PKG_DBDIR=${TMPDIR} 75 REPOS_DIR=[] 76 repositories: { 77 local: { url : file://${TMPDIR} } 78 } 79 EOF 80 81 atf_check -o ignore \ 82 pkg -C ./pkg.conf update 83 84 # Ensure we can pickup the old version 85 atf_check -o match:"Installing test-1\.0" \ 86 pkg -C ./pkg.conf install -y test-1.0 87 88 atf_check -o match:"Upgrading.*to 1\.1" \ 89 pkg -C ./pkg.conf install -y test 90 91 atf_check -o ignore pkg delete -y test 92 93 atf_check -o match:"Installing test-1\.0" \ 94 pkg -C ./pkg.conf install -y test-1.0 95 96 atf_check -o match:"Upgrading.*to 1\.1" \ 97 pkg -C ./pkg.conf upgrade -y 98 99 atf_check -o ignore pkg -C ./pkg.conf delete -y test 100 101 # Ensure the latest version is installed 102 atf_check -o match:"Installing test-1.1" \ 103 pkg -C ./pkg.conf install -y test 104 } 105 106 repo_multiformat_body() { 107 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg test test 1.0 "${TMPDIR}" 108 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg plop plop 1.1 "${TMPDIR}" 109 atf_check pkg create -M test.ucl 110 atf_check pkg create --format tar -M plop.ucl 111 112 atf_check \ 113 -o inline:"Creating repository in .: done\nPacking files for repository: done\n" \ 114 pkg repo . 115 116 cat > pkg.conf << EOF 117 PKG_DBDIR=${TMPDIR} 118 REPOS_DIR=[] 119 repositories: { 120 local: { url : file://${TMPDIR} } 121 } 122 EOF 123 124 atf_check -o ignore \ 125 pkg -C ./pkg.conf update 126 127 # Ensure we can pickup the old version 128 atf_check -o match:"Installing test-1\.0" \ 129 pkg -C ./pkg.conf install -y test 130 131 atf_check -o match:"Installing plop-1\.1" \ 132 pkg -C ./pkg.conf install -y plop 133 } 134 135 repo_symlinks_body() { 136 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg test test 1.0 "${TMPDIR}" 137 atf_check pkg create --format txz -M test.ucl 138 mkdir repo 139 ln -sf ../test-1.0.pkg ./repo/meh-1.0.pkg 140 atf_check -o ignore pkg repo repo 141 cat > pkg.conf << EOF 142 PKG_DBDIR=${TMPDIR} 143 REPOS_DIR=[] 144 repositories: { 145 local: { url : file://${TMPDIR}/repo } 146 } 147 EOF 148 149 atf_check -o ignore \ 150 pkg -C ./pkg.conf update 151 atf_check -o inline:"test\n" \ 152 pkg -C ./pkg.conf rquery "%n" 153 atf_check -o inline:"test\n" \ 154 pkg -C ./pkg.conf rquery -a "%n" 155 atf_check -o inline:"test\n" \ 156 pkg -C ./pkg.conf rquery -e "%n == test" "%n" 157 atf_check -o empty \ 158 pkg -C ./pkg.conf rquery -e "%n != test" "%n" 159 atf_check -o inline:"test\n" \ 160 pkg -C ./pkg.conf rquery -e "%n == test" "%n" test 161 atf_check -o empty \ 162 -s exit:1 \ 163 pkg -C ./pkg.conf rquery -e "%n != test" "%n" test 164 atf_check -o empty \ 165 -s exit:1 \ 166 pkg -C ./pkg.conf rquery -e "%n == test" "%n" nottest 167 168 rm -rf repo 169 mkdir repo 170 cp test-1.0.pkg repo/ 171 ln -fs test-1.0.pkg ./repo/meh-1.0.pkg 172 173 atf_check -o ignore pkg repo repo 174 atf_check -o ignore \ 175 pkg -C ./pkg.conf update -f 176 atf_check -o inline:"test\n" \ 177 pkg -C ./pkg.conf rquery -a "%n" 178 } 179 180 repo_content_body() { 181 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg test test 1.0 "${TMPDIR}" 182 atf_check pkg create --format txz -M test.ucl 183 atf_check -o ignore pkg repo . 184 nb=$(tar -xf packagesite.pkg -O - packagesite.yaml | wc -l) 185 [ $nb -eq 1 ] || atf_fail "packagesite has $nb entries instead of 1" 186 }