/ tests / frontend / packagemerge.sh
packagemerge.sh
  1  #! /usr/bin/env atf-sh
  2  
  3  . $(atf_get_srcdir)/test_environment.sh
  4  
  5  tests_init \
  6  	package_merge
  7  
  8  package_merge_body() {
  9  	touch file1
 10  	touch file2
 11  	touch file3
 12  
 13  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg pkg1 test-file1 1
 14  	cat << EOF >> pkg1.ucl
 15  files: {
 16  	${TMPDIR}/file1: "",
 17  }
 18  EOF
 19  
 20  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg pkg2 test-file2 1
 21  	cat << EOF >> pkg2.ucl
 22  files: {
 23  	${TMPDIR}/file2: "",
 24  }
 25  EOF
 26  
 27  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg pkg3 test-file3 1
 28  	cat << EOF >> pkg3.ucl
 29  files: {
 30  	${TMPDIR}/file3: "",
 31  }
 32  EOF
 33  
 34  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg pkg4 test 1
 35  	cat << EOF >> pkg4.ucl
 36  deps: {
 37  	test-file1: {
 38  		origin: test
 39  		version: 1
 40  	},
 41  	test-file2: {
 42  		origin: test
 43  		version: 1
 44  	}
 45  	test-file3: {
 46  		origin: test
 47  		version: 1
 48  	}
 49  }
 50  EOF
 51  
 52  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg dep1 test1 1
 53  	cat << EOF >> dep1.ucl
 54  deps: {
 55  	test-file1: {
 56  		origin: test
 57  		version: 1
 58  	},
 59  }
 60  EOF
 61  
 62  	for p in pkg1 pkg2 pkg3 pkg4 dep1; do
 63  		atf_check \
 64  			-o match:".*Installing.*\.\.\.$" \
 65  			-e empty \
 66  			-s exit:0 \
 67  			pkg register -M ${p}.ucl
 68  	done
 69  
 70  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg pkg5 test 1.1
 71  	cat << EOF >> pkg5.ucl
 72  files: {
 73  	${TMPDIR}/file1: "",
 74  	${TMPDIR}/file2: "",
 75  	${TMPDIR}/file3: "",
 76  }
 77  EOF
 78  
 79  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg dep2 test1 1
 80  	cat << EOF >> dep2.ucl
 81  deps: {
 82  	test: {
 83  		origin: test
 84  		version: "1.1"
 85  	},
 86  }
 87  EOF
 88  	for p in pkg5 dep2; do
 89  		atf_check \
 90  			-o ignore \
 91  			-e empty \
 92  			-s exit:0 \
 93  			 pkg create -M ./${p}.ucl
 94  	done
 95  
 96  	atf_check \
 97  		-o inline:"Creating repository in .:  done\nPacking files for repository:  done\n" \
 98  		-e empty \
 99  		-s exit:0 \
100  		pkg repo .
101  
102  	mkdir reposconf
103  	cat << EOF > reposconf/repo.conf
104  local: {
105  	url: file:///$TMPDIR,
106  	enabled: true
107  }
108  EOF
109  
110  	atf_check \
111  		-o ignore \
112  		-s exit:0 \
113  		pkg -o REPOS_DIR="$TMPDIR/reposconf" -o PKG_CACHEDIR="$TMPDIR" upgrade -y
114  
115  	test -f file1 || atf_fail "file1 is not present"
116  	test -f file2 || atf_fail "file2 is not present"
117  	test -f file3 || atf_fail "file3 is not present"
118  }