Skip to content

Commit 6ab04e6

Browse files
committed
add tests for parts of PR 59936
Not hooked up yet pending review
1 parent 837a7d2 commit 6ab04e6

3 files changed

Lines changed: 199 additions & 0 deletions

File tree

tests/usr.bin/netpgpkeys/Makefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# $NetBSD: Makefile,v 1.1 2026/01/23 20:57:09 wiz Exp $
2+
3+
.include <bsd.own.mk>
4+
5+
TESTSDIR= ${TESTSBASE}/usr.bin/netpgpkeys
6+
7+
TESTS_SH+= t_netpgpkeys
8+
9+
.include <bsd.test.mk>

tests/usr.bin/netpgpkeys/Testspec

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#! /bin/sh
2+
3+
# $NetBSD: Testspec,v 1.1 2026/01/23 20:57:10 wiz Exp $
4+
5+
# Copyright (c) 2026 Thomas Klausner <wiz@NetBSD.org>
6+
# All rights reserved.
7+
#
8+
# Redistribution and use in source and binary forms, with or without
9+
# modification, are permitted provided that the following conditions
10+
# are met:
11+
# 1. Redistributions of source code must retain the above copyright
12+
# notice, this list of conditions and the following disclaimer.
13+
# 2. Redistributions in binary form must reproduce the above copyright
14+
# notice, this list of conditions and the following disclaimer in the
15+
# documentation and/or other materials provided with the distribution.
16+
#
17+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18+
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19+
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20+
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22+
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23+
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24+
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25+
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26+
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27+
#
28+
29+
TESTNAME=netpgpkeys
30+
31+
TESTSET_1_NAME=rsa_keys
32+
TESTSET_1_FILES='
33+
testkey-rsa.pub
34+
expected_rsa.out
35+
pubring.gpg
36+
'
37+
TESTSET_1_CASE_1="-s exit:0 -o file:expected_rsa.out -e empty env TZ=US/Pacific netpgpkeys --keyring pubring.gpg --import-key testkey-rsa.pub"
38+
39+
TESTSET_2_NAME=ec_keys
40+
TESTSET_2_FILES='
41+
testkey-ec.pub
42+
expected_ec.out
43+
pubring.gpg
44+
'
45+
TESTSET_2_CASE_1="-s exit:0 -o file:expected_ec.out -e empty env TZ=US/Pacific netpgpkeys --keyring pubring.gpg --import-key testkey-ec.pub"
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
#! /bin/sh
2+
3+
# $NetBSD: t_netpgpkeys.sh,v 1.1 2026/01/23 20:57:10 wiz Exp $
4+
5+
#
6+
# Copyright (c) 2026 The NetBSD Foundation, Inc.
7+
# All rights reserved.
8+
#
9+
# This code is derived from software contributed to The NetBSD Foundation
10+
# by Thomas Klausner <wiz@NetBSD.org>
11+
#
12+
# Redistribution and use in source and binary forms, with or without
13+
# modification, are permitted provided that the following conditions
14+
# are met:
15+
# 1. Redistributions of source code must retain the above copyright
16+
# notice, this list of conditions and the following disclaimer.
17+
# 2. Redistributions in binary form must reproduce the above copyright
18+
# notice, this list of conditions and the following disclaimer in the
19+
# documentation and/or other materials provided with the distribution.
20+
#
21+
# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
22+
# AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
23+
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
25+
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31+
# POSSIBILITY OF SUCH DAMAGE.
32+
#
33+
34+
# Test set 1 (rsa key) for netpgpkeys
35+
atf_test_case netpgpkeys_testset_1_rsa_keys
36+
37+
netpgpkeys_testset_1_rsa_keys_head() {
38+
atf_set "descr" "Test set 1 (rsa_keys) for netpgpkeys"
39+
}
40+
netpgpkeys_testset_1_rsa_keys_body() {
41+
atf_expect_fail "PR bin/59936 - does not support keys generated by gnugp2"
42+
uudecode << EOF
43+
begin-base64 664 testkey-rsa.pub
44+
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
91+
====
92+
EOF
93+
# TODO: fix netpgpkeys so it doesn't need an empty keyring
94+
uudecode << EOF
95+
begin-base64 664 pubring.gpg
96+
====
97+
EOF
98+
# TODO: needs fixing once netpgpkeys accepts the key
99+
uudecode << EOF
100+
begin-base64 664 expected_rsa.out
101+
====
102+
EOF
103+
atf_check -s exit:0 -o file:expected_rsa.out -e empty env TZ=US/Pacific netpgpkeys --keyring pubring.gpg --import-key testkey-rsa.pub
104+
}
105+
106+
# Test set 2 (elliptic curve keys) for netpgpkeys
107+
atf_test_case netpgpkeys_testset_2_ec_keys
108+
109+
netpgpkeys_testset_2_ec_keys_head() {
110+
atf_set "descr" "Test set 2 (ec_keys) for netpgpkeys"
111+
}
112+
netpgpkeys_testset_2_ec_keys_body() {
113+
atf_expect_fail "PR bin/59936 - does not support keys generated by gnugp2 - dumps core for EC keys"
114+
uudecode << EOF
115+
begin-base64 664 testkey-ec.pub
116+
mDMEaXPYGBYJKwYBBAHaRw8BAQdAJItrcRJ05uSrXI4pWRwwYBzcqq+DMVL951D6
117+
Uta3t/m0FnRlc3QgPHRlc3RATmV0QlNELm9yZz6ImQQTFgoAQRYhBCSzfniW90FO
118+
SQjiiNqj8eXPHLOfBQJpc9gYAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMB
119+
Ah4HAheAAAoJENqj8eXPHLOfgBQA/1dkSm8JHk1nKDbsAugPyEPhrCRXOdSPq/mH
120+
rjii7/M4AP0VteJ7uuxW7BNYNXQHaHokWVIrUaIjdybnB3SmCZnwBrg4BGlz2BgS
121+
CisGAQQBl1UBBQEBB0AoRgnCTqdaT7uCOLC/zzG0Ul15Sx36OxNBsYwBfrbkGwMB
122+
CAeIfgQYFgoAJhYhBCSzfniW90FOSQjiiNqj8eXPHLOfBQJpc9gYAhsMBQkFo5qA
123+
AAoJENqj8eXPHLOfGxkBAM+FmClSgZIon6yACCuhz8gSDtUAsaIhACG0tWVVYxaR
124+
AQCGIvbI0ZmcpPZ2ptYKiLxSfeOk1JigVxGG61Sy8k+oDg==
125+
====
126+
EOF
127+
# TODO: fix netpgpkeys so it doesn't need an empty keyring
128+
uudecode << EOF
129+
begin-base64 664 pubring.gpg
130+
====
131+
EOF
132+
# TODO: needs fixing once netpgpkeys doesn't dump core
133+
uudecode << EOF
134+
begin-base64 664 expected_ec.out
135+
====
136+
EOF
137+
atf_check -s exit:0 -o file:expected_ec.out -e empty env TZ=US/Pacific netpgpkeys --keyring pubring.gpg --import-key testkey-ec.pub
138+
}
139+
140+
# all test sets
141+
atf_init_test_cases() {
142+
atf_add_test_case netpgpkeys_testset_1_rsa_keys
143+
atf_add_test_case netpgpkeys_testset_2_ec_keys
144+
}
145+

0 commit comments

Comments
 (0)