aboutsummaryrefslogtreecommitdiff
path: root/tests/rep-info.test
blob: 3bb0d3c7a83daa5dc9e0e05f26acdc40215fe54a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# file      : tests/rep-info.test
# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
# license   : MIT; see accompanying LICENSE file

.include common.test auth.test remote.test

# Source repository:
#
# rep-info
# `-- testing          -> stable (complement), ../foo/testing (prerequisite)
#     |-- foo-1.tar.gz
#     `-- repositories

# Prepare repositories used by tests if running in the local mode.
#
+if ($remote != true)
  rc = $rep_create 2>!

  # Create the unsigned 'testing' repository.
  #
  cp -r $src/testing $out/testing
  $rc $out/testing &$out/testing/packages

  # Create the signed 'testing' repository.
  #
  cp -r $src/testing $out/signed
  cat <<<$cert_manifest >+$out/signed/repositories
  $rc --key $key $out/signed &$out/signed/packages &$out/signed/signature
end

test.options += --auth all --trust-yes

: no-location
:
$* 2>>EOE != 0
error: repository location argument expected
  info: run 'bpkg help rep-info' for more information
EOE

: default
:
{
  : unsigned
  :
  $* $rep/testing >>"EOO"
  build2.org/rep-info/testing ($rep/testing)
  prerequisite build2.org/foo/testing ($rep_root/foo/testing)
  complement build2.org/rep-info/stable ($rep/stable)

  foo/1
  EOO

  : signed
  :
  $* $rep/signed >>"EOO"
  build2.org/rep-info/signed ($rep/signed)
  CN=build2.org/O=Code Synthesis/info@build2.org
  $cert_fp
  prerequisite build2.org/foo/testing ($rep_root/foo/testing)
  complement build2.org/rep-info/stable ($rep/stable)

  foo/1
  EOO
}

: name
:
$* --name $rep/testing >"build2.org/rep-info/testing ($rep/testing)"

: packages
:
{
  : list
  :
  $* --packages $rep/testing >>EOO

  foo/1
  EOO

  : manifest
  :
  $* --packages --manifest $rep/testing >>EOO
  : 1
  sha256sum: 7cdc5965cf41742a7feb1c4b73f1438f35e6a6ed7e4e6b30d9fba36c26baca04
  :
  name: foo
  version: 1
  summary: The "Foo" utility
  license: MIT
  url: http://www.example.org/foo
  email: foo-users@example.org
  location: foo-1.tar.gz
  sha256sum: fee330a362a4f87ff42a954aa305b6446d541b7b60000ebcd2fbf68f2b1ae58e
  EOO
}

: repositories
:
{
  : list
  :
  $* --repositories $rep/testing >>"EOO"
  prerequisite build2.org/foo/testing ($rep_root/foo/testing)
  complement build2.org/rep-info/stable ($rep/stable)
  EOO

  : manifest
  :
  $* --repositories --manifest $rep/testing >>EOO
  : 1
  location: ../../foo/testing
  :
  location: ../stable
  role: complement
  :
  EOO
}

: cert
:
{
  test.arguments += $rep/signed

  $* --cert-fingerprint  >"$cert_fp"        : fingerprint
  $* --cert-name         >'name:build2.org' : name
  $* --cert-organization >'Code Synthesis'  : organization
  $* --cert-email        >'info@build2.org' : email
}