/ tests / frontend / autoupgrade.sh
autoupgrade.sh
  1  #! /usr/bin/env atf-sh
  2  
  3  . $(atf_get_srcdir)/test_environment.sh
  4  
  5  tests_init \
  6  	autoupgrade \
  7  	autoupgrade_multirepo
  8  
  9  autoupgrade_body() {
 10  	atf_skip_on Linux Test fails on Linux
 11  
 12  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg pkg1 pkg 1
 13  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg pkg2 pkg 1_1
 14  
 15  	atf_check \
 16  		-o match:".*Installing.*\.\.\.$" \
 17  		-e empty \
 18  		-s exit:0 \
 19  		pkg register -M pkg1.ucl
 20  
 21  	atf_check \
 22  		-o ignore \
 23  		-e empty \
 24  		-s exit:0 \
 25  		pkg create -M ./pkg2.ucl
 26  
 27  	atf_check \
 28  		-o inline:"Creating repository in .:  done\nPacking files for repository:  done\n" \
 29  		-e empty \
 30  		-s exit:0 \
 31  		pkg repo .
 32  
 33  	mkdir repoconf
 34  	cat << EOF > repoconf/repo.conf
 35  local: {
 36  	url: file:///$TMPDIR,
 37  	enabled: true
 38  }
 39  EOF
 40  
 41  	atf_check \
 42  		-o match:".*New version of pkg detected.*" \
 43  		-e ignore \
 44  		-s exit:0 \
 45  		pkg -o REPOS_DIR="$TMPDIR/repoconf" -o PKG_CACHEDIR="$TMPDIR" upgrade -y
 46  }
 47  
 48  autoupgrade_multirepo_head() {
 49  	atf_set "timeout" 40
 50  }
 51  
 52  autoupgrade_multirepo_body() {
 53  	atf_skip_on Linux Test fails on Linux
 54  
 55  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg pkg1 pkg 1
 56  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg pkg2 pkg 1.1
 57  
 58  	atf_check \
 59  		-o match:".*Installing.*\.\.\.$" \
 60  		-e empty \
 61  		-s exit:0 \
 62  		pkg register -M pkg1.ucl
 63  
 64  	mkdir repo1 repo2
 65  
 66  	atf_check \
 67  		-o ignore \
 68  		-e empty \
 69  		-s exit:0 \
 70  		pkg create -M ./pkg1.ucl -o repo1
 71  
 72  	atf_check \
 73  		-o ignore \
 74  		-e empty \
 75  		-s exit:0 \
 76  		pkg create -M ./pkg2.ucl -o repo2
 77  
 78  	atf_check \
 79  		-o ignore \
 80  		-e empty \
 81  		-s exit:0 \
 82  		pkg repo repo1
 83  
 84  	atf_check \
 85  		-o ignore \
 86  		-e empty \
 87  		-s exit:0 \
 88  		pkg repo repo2
 89  
 90  	mkdir repoconf
 91  	cat << EOF > repoconf/repo.conf
 92  repo1: {
 93  	url: file:///$TMPDIR/repo1,
 94  	enabled: true
 95  }
 96  repo2: {
 97  	url: file:///$TMPDIR/repo2,
 98  	enabled: true
 99  }
100  EOF
101  
102  	export REPOS_DIR="${TMPDIR}/repoconf"
103  	atf_check \
104  		-o ignore \
105  		-s exit:0 \
106  		pkg install -r repo1 -fy pkg-1
107  
108  	atf_check \
109  		-o match:".*New version of pkg detected.*" \
110  		-s exit:0 \
111  		pkg upgrade -y
112  
113  	atf_check \
114  		-o ignore \
115  		-e empty \
116  		-s exit:0 \
117  		pkg upgrade -y
118  }
119