Mercurial > hg
annotate tests/test-gpg.t @ 40093:726cfc47f17a
contrib: add an utility module to parse test scripts
This patch centralizes the logic to pick up code fragments embedded in
*.t script, in order to:
- apply checking with patterns in check-code.py on such embedded
code fragments
Now, check-code.py completely ignores embedded code
fragments. I'll post another patch series to check them.
- replace similar code path in contrib/import-checker.py
Current import-checker.py has problems below. Fixing each of them
is a little difficult, because parsing logic and pattern strings
are tightly coupled.
- overlook (or mis-detect) the end of inline script in doctest
style
8a8dd6e4a97a fixed a part of this issue, but not enough.
- it overlooks inline script in doctest style at the end of file
(and ignores invalid un-closed heredoc at the end of file, too)
- it overlooks code fragment in styles below
- "python <<EOF" (heredoc should be "cat > file <<EOF" style)
- "cat > foobar.py << ANYLIMIT" (limit mark should be "EOF")
- "cat << EOF > foobar.py" (filename should be placed before limit mark)
- "cat >> foobar.py << EOF" (appending is ignored)
- it is not extensible for other than python code fragments
(e.g. shell script, hgrc file, and so on)
This new module can detect python code fragments in styles below:
- inline script in doctest style (starting by " >>> " line)
- python invocation with heredoc script ("python <<EOF")
- python script in heredoc style (redirected into ".py" file)
As an example of extensibility of new module, this patch also contains
implementation to pick up code fragment below. This will be useful to
add additional restriction for them, for example.
- shell script in heredoc style (redirected into ".sh" file)
- hgrc configuration in heredoc style (redirected into hgrc or $HGRCPATH)
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Thu, 23 Aug 2018 12:25:54 +0900 |
parents | 80ba176bad62 |
children | f58928715d0c |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
21711
diff
changeset
|
1 #require gpg |
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
21711
diff
changeset
|
2 |
12428 | 3 Test the GPG extension |
8809 | 4 |
12428 | 5 $ cat <<EOF >> $HGRCPATH |
6 > [extensions] | |
7 > gpg= | |
8 > | |
9 > [gpg] | |
29789
66e038fb3c0d
test-gpg: make temporary copy of GNUPGHOME
Yuya Nishihara <yuya@tcha.org>
parents:
25472
diff
changeset
|
10 > cmd=gpg --no-permission-warning --no-secmem-warning --no-auto-check-trustdb |
12428 | 11 > EOF |
29789
66e038fb3c0d
test-gpg: make temporary copy of GNUPGHOME
Yuya Nishihara <yuya@tcha.org>
parents:
25472
diff
changeset
|
12 $ GNUPGHOME="$TESTTMP/gpg"; export GNUPGHOME |
66e038fb3c0d
test-gpg: make temporary copy of GNUPGHOME
Yuya Nishihara <yuya@tcha.org>
parents:
25472
diff
changeset
|
13 $ cp -R "$TESTDIR/gpg" "$GNUPGHOME" |
66e038fb3c0d
test-gpg: make temporary copy of GNUPGHOME
Yuya Nishihara <yuya@tcha.org>
parents:
25472
diff
changeset
|
14 |
29873
80ba176bad62
test-gpg: start gpg-agent by gpg-connect-agent only if GnuPG v2.1+ detected
Yuya Nishihara <yuya@tcha.org>
parents:
29791
diff
changeset
|
15 Start gpg-agent, which is required by GnuPG v2 |
80ba176bad62
test-gpg: start gpg-agent by gpg-connect-agent only if GnuPG v2.1+ detected
Yuya Nishihara <yuya@tcha.org>
parents:
29791
diff
changeset
|
16 |
80ba176bad62
test-gpg: start gpg-agent by gpg-connect-agent only if GnuPG v2.1+ detected
Yuya Nishihara <yuya@tcha.org>
parents:
29791
diff
changeset
|
17 #if gpg21 |
80ba176bad62
test-gpg: start gpg-agent by gpg-connect-agent only if GnuPG v2.1+ detected
Yuya Nishihara <yuya@tcha.org>
parents:
29791
diff
changeset
|
18 $ gpg-connect-agent -q --subst /serverpid '/echo ${get serverpid}' /bye \ |
80ba176bad62
test-gpg: start gpg-agent by gpg-connect-agent only if GnuPG v2.1+ detected
Yuya Nishihara <yuya@tcha.org>
parents:
29791
diff
changeset
|
19 > >> $DAEMON_PIDS |
80ba176bad62
test-gpg: start gpg-agent by gpg-connect-agent only if GnuPG v2.1+ detected
Yuya Nishihara <yuya@tcha.org>
parents:
29791
diff
changeset
|
20 #endif |
80ba176bad62
test-gpg: start gpg-agent by gpg-connect-agent only if GnuPG v2.1+ detected
Yuya Nishihara <yuya@tcha.org>
parents:
29791
diff
changeset
|
21 |
80ba176bad62
test-gpg: start gpg-agent by gpg-connect-agent only if GnuPG v2.1+ detected
Yuya Nishihara <yuya@tcha.org>
parents:
29791
diff
changeset
|
22 and migrate secret keys |
29790
94fb0458a791
test-gpg: start gpg-agent under control of the test runner
Yuya Nishihara <yuya@tcha.org>
parents:
29789
diff
changeset
|
23 |
94fb0458a791
test-gpg: start gpg-agent under control of the test runner
Yuya Nishihara <yuya@tcha.org>
parents:
29789
diff
changeset
|
24 #if gpg2 |
29791
28591876fa63
test-gpg: run migration of v1 secret keys beforehand
Yuya Nishihara <yuya@tcha.org>
parents:
29790
diff
changeset
|
25 $ gpg --no-permission-warning --no-secmem-warning --list-secret-keys \ |
28591876fa63
test-gpg: run migration of v1 secret keys beforehand
Yuya Nishihara <yuya@tcha.org>
parents:
29790
diff
changeset
|
26 > > /dev/null 2>&1 |
29790
94fb0458a791
test-gpg: start gpg-agent under control of the test runner
Yuya Nishihara <yuya@tcha.org>
parents:
29789
diff
changeset
|
27 #endif |
94fb0458a791
test-gpg: start gpg-agent under control of the test runner
Yuya Nishihara <yuya@tcha.org>
parents:
29789
diff
changeset
|
28 |
12428 | 29 $ hg init r |
30 $ cd r | |
31 $ echo foo > foo | |
32 $ hg ci -Amfoo | |
33 adding foo | |
8809 | 34 |
12428 | 35 $ hg sigs |
36 | |
21711
0986af9e7006
gpg: accept '--edit' like other commands creating new changeset
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20305
diff
changeset
|
37 $ HGEDITOR=cat hg sign -e 0 |
16927 | 38 signing 0:e63c23eaa88a |
21711
0986af9e7006
gpg: accept '--edit' like other commands creating new changeset
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20305
diff
changeset
|
39 Added signature for changeset e63c23eaa88a |
0986af9e7006
gpg: accept '--edit' like other commands creating new changeset
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20305
diff
changeset
|
40 |
0986af9e7006
gpg: accept '--edit' like other commands creating new changeset
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20305
diff
changeset
|
41 |
0986af9e7006
gpg: accept '--edit' like other commands creating new changeset
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20305
diff
changeset
|
42 HG: Enter commit message. Lines beginning with 'HG:' are removed. |
0986af9e7006
gpg: accept '--edit' like other commands creating new changeset
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20305
diff
changeset
|
43 HG: Leave message empty to abort commit. |
0986af9e7006
gpg: accept '--edit' like other commands creating new changeset
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20305
diff
changeset
|
44 HG: -- |
0986af9e7006
gpg: accept '--edit' like other commands creating new changeset
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20305
diff
changeset
|
45 HG: user: test |
0986af9e7006
gpg: accept '--edit' like other commands creating new changeset
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20305
diff
changeset
|
46 HG: branch 'default' |
0986af9e7006
gpg: accept '--edit' like other commands creating new changeset
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20305
diff
changeset
|
47 HG: added .hgsigs |
8809 | 48 |
12428 | 49 $ hg sigs |
50 hgtest 0:e63c23eaa88ae77967edcf4ea194d31167c478b0 | |
8809 | 51 |
12428 | 52 $ hg sigcheck 0 |
53 e63c23eaa88a is signed by: | |
54 hgtest | |
16289
aae219a99a6e
test-gpg: make sure gpg does not modify the trustdb.gpg file
Greg Ward <greg@gerg.ca>
parents:
12428
diff
changeset
|
55 |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
56 $ cd .. |