123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- #! /bin/bash
- #
- # © 2018 Ansgar Burchardt <ansgar@debian.org>
- # License: GPL-2+
- #
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program. If not, see <https://www.gnu.org/licenses/>.
- set -e
- set -u
- shopt -s extglob
- . ${DAK_ROOT:?}/integration-tests/common
- . ${DAK_ROOT:?}/integration-tests/setup
- # add a unstable suite with amd64
- dak admin architecture add amd64 AMD64
- dak admin suite add unstable "" codename=sid
- dak admin suite-architecture add unstable source all amd64
- dak admin suite-component add unstable main contrib non-free
- dak admin suite add-build-queue unstable buildd-unstable buildd-sid ${DAKHOST}
- dak admin suite-config set unstable allowcsset=yes
- packages=${DAK_ROOT:?}/tests/fixtures/packages
- ln -sf ${packages:?}/gpg/pubring.gpg ${DAKBASE:?}/keyrings/upload-keyring.gpg
- dak import-keyring -U "%s" ${DAKBASE}/keyrings/upload-keyring.gpg
- cat >> ${DAKBASE}/etc/dak.conf <<-EOT
- External-Signature-Requests {
- Sources {
- linux {
- Packages { "linux-image-all-signed-template"; };
- Architectures { "all"; } ;
- };
- };
- Default-Suites { "unstable"; "proposed-updates"; };
- Export "${DAKBASE}/ftp/external-signature-requests.json";
- };
- EOT
- expected='
- {
- "packages": [
- {
- "suite": "unstable",
- "codename": "sid",
- "version": "42.0-1",
- "architecture": "all",
- "package": "linux-image-all-signed-template"
- }
- ]
- }
- '
- expected_empty='
- {
- "packages": []
- }
- '
- # try NEW upload
- (
- cp ${packages:?}/linux@(_|-image)* ${DAKBASE}/tmp
- dak process-upload -d ${DAKBASE}/tmp --automatic
- # TODO: test upload is in NEW
- dak control-override -s unstable --add <<-EOT
- linux-image-all-signed-template optional misc
- linux-image-all optional misc
- EOT
- dak control-override -s unstable -t dsc --add <<-EOT
- linux misc
- EOT
- dak process-new --automatic
- dak process-policy new
- dak manage-external-signature-requests
- if ! diff -u <(jq -S . <<< "${expected}") <(jq -S . ${DAKBASE}/ftp/external-signature-requests.json); then
- echo >&2 "E: external-signature-requests.json differs from expected value"
- exit 1
- fi
- )
- # remove upload, should go away from external-signature-requests
- (
- dak control-suite --set unstable </dev/null
- dak manage-build-queues
- dak manage-external-signature-requests
- if ! diff -u <(jq -S . <<< "${expected_empty}") <(jq -S . ${DAKBASE}/ftp/external-signature-requests.json); then
- echo >&2 "E: external-signature-requests.json differs from expected value"
- exit 1
- fi
- )
- # try non-NEW upload
- (
- cp ${packages:?}/linux@(_|-image)* ${DAKBASE}/tmp
- dak admin forget-signature ${DAKBASE}/tmp/linux_*.changes
- dak process-upload -d ${DAKBASE}/tmp --automatic
- dak manage-external-signature-requests
- if ! diff -u <(jq -S . <<< "${expected}") <(jq -S . ${DAKBASE}/ftp/external-signature-requests.json); then
- echo >&2 "E: external-signature-requests.json differs from expected value"
- exit 1
- fi
- )
- # try upload to policy queue w/ build queue (like on security-master)
- (
- # configure a policy queue first...
- dak admin suite add embargoed "" codename=embargoed
- dak admin suite-architecture add unstable source all amd64
- dak admin suite-component add unstable main contrib non-free
- psql -1 -d projectb <<-EOT
- \set ON_ERROR_STOP
- INSERT INTO policy_queue (queue_name, path, send_to_build_queues, suite_id)
- VALUES ('embargoed',
- '${DAKBASE}/queue/embargoed',
- TRUE,
- (SELECT id FROM suite WHERE suite_name = 'embargoed'));
- UPDATE suite
- SET policy_queue_id = (SELECT id FROM policy_queue WHERE queue_name = 'embargoed')
- WHERE suite_name = 'unstable';
- EOT
- dak control-suite --set unstable </dev/null
- dak manage-build-queues
- cp ${packages:?}/linux@(_|-image)* ${DAKBASE}/tmp
- dak admin forget-signature ${DAKBASE}/tmp/linux_*.changes
- dak process-upload -d ${DAKBASE}/tmp --automatic
- dak manage-external-signature-requests
- if ! diff -u <(jq -S . <<< "${expected}") <(jq -S . ${DAKBASE}/ftp/external-signature-requests.json); then
- echo >&2 "E: external-signature-requests.json differs from expected value"
- exit 1
- fi
- commentdir=${DAKBASE}/queue/embargoed/COMMENTS
- mkdir -p ${commentdir}
- echo OK > ${commentdir}/ACCEPT.linux_42.0-1
- dak process-policy embargoed
- dak manage-external-signature-requests
- if ! diff -u <(jq -S . <<< "${expected}") <(jq -S . ${DAKBASE}/ftp/external-signature-requests.json); then
- echo >&2 "E: external-signature-requests.json differs from expected value"
- exit 1
- fi
- )
|