mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-02 03:52:49 -05:00
Test suite for mpint.c and ecc.c.
This is a reasonably comprehensive test that exercises basically all the functions I rewrote at the end of last year, and it's how I found a lot of the bugs in them that I fixed earlier today. It's written in Python, using the unittest framework, which is convenient because that way I can cross-check Python's own large integers against PuTTY's. While I'm here, I've also added a few tests of higher-level crypto primitives such as Ed25519, AES and HMAC, when I could find official test vectors for them. I hope to add to that collection at some point, and also add unit tests of some of the other primitives like ECDH and RSA KEX. The test suite is run automatically by my top-level build script, so that I won't be able to accidentally ship anything which regresses it. When it's run at build time, the testcrypt binary is built using both Address and Leak Sanitiser, so anything they don't like will also cause a test failure.
This commit is contained in:
10
Buildscr
10
Buildscr
@ -143,6 +143,16 @@ in putty do ./mkunxarc.sh '$(Autoconfver)' '$(Uxarcsuffix)' $(Docmakever)
|
||||
in putty do perl mkfiles.pl
|
||||
in putty/doc do make $(Docmakever) putty.hlp putty.chm -j$(nproc)
|
||||
|
||||
delegate -
|
||||
# Run the test suite, under self-delegation so that we don't leave any
|
||||
# cruft lying around. This involves doing a build of the Unix tools
|
||||
# (which is a useful double-check anyway to pick up any build failures)
|
||||
in putty do ./mkauto.sh
|
||||
in putty do ./configure CC=clang CFLAGS="-fsanitize=address -fsanitize=leak"
|
||||
in putty do make -j$(nproc)
|
||||
in putty do python test/cryptsuite.py
|
||||
enddelegate
|
||||
|
||||
# Munge the installer script locally so that it reports the version
|
||||
# we're really building.
|
||||
in putty/windows do perl -i~ -pe 'BEGIN{$$a=shift@ARGV;}s/^(AppVerName=).*$$/$$1$$a/' '$(Puttytextver)' putty.iss
|
||||
|
Reference in New Issue
Block a user