Commit Graph

43 Commits

Author SHA1 Message Date
Jacob Hoffman-Andrews 305d7fad22 Merge branch 'master' into ocsp-unflake-integration
Conflicts:
	test/amqp-integration-test.py
2015-10-22 14:30:37 -07:00
Roland Shoemaker aff276fc7d Change node test to request a domain using mixed-case 2015-10-21 15:18:13 -07:00
Jacob Hoffman-Andrews 090b71b031 Unflake OCSP integration test
Fixes #982.

Rather than failing immediately if two OCSP responses differ, which can happen
if ocsp-updater fires in between two requests, we wait until all OCSP responses
reach their expected state, and then check for equality.

Additionally, reorganize the OCSP checking to be somewhat cleaner, and improve
detection of verify failures (e.g. when a OpenSSL can't find a signer
certificate).
2015-10-21 14:38:15 -07:00
Jacob Hoffman-Andrews 78d391f03c Use a root and intermediate in integration test
Fixes https://github.com/letsencrypt/boulder/issues/790
2015-10-20 13:47:11 -07:00
Jacob Hoffman-Andrews 6c6687898c Set simple HTTP port to 5002 in integration test. 2015-10-17 09:17:57 -07:00
Roland Shoemaker 9e567f62f8 Fix spelling errors 2015-10-12 17:52:15 -07:00
Roland Shoemaker 2b604eef6e Review fixes pt. 2 2015-10-09 18:02:02 -07:00
Roland Shoemaker 10b6bb5548 Refactor certificate revocation and OCSP generation workflows
* Moves revocation from the CA to the OCSP-Updater, the RA will mark certificates as
  revoked then wait for the OCSP-Updater to create a new (final) revoked response
* Merges the ocspResponses table with the certificateStatus table and only use UPDATES
  to update the OCSP response (vs INSERT-only since this happens quite often and will
  lead to an extremely large table)
2015-10-08 18:55:11 -07:00
Jacob Hoffman-Andrews 1d91d81158 Implement rate limiting by domain name. 2015-10-04 21:04:26 -07:00
Jacob Hoffman-Andrews a0ba72ea35 Merge branch 'master' into ocsp-decoding
Conflicts:
	test/amqp-integration-test.py
2015-10-01 17:48:26 -07:00
Jacob Hoffman-Andrews 4d6716ab5a Add GET to OCSP integration test. 2015-10-01 16:42:52 -07:00
Roland Shoemaker 2d0dee4ce1 Daemonize the OCSP updater tool so we are constantly updating OCSP responses.
also moves the first OCSP responses generation from the CA to the OCSP updater. This patch lays the
ground work for moving CT submission and adding CT backfill to the OCSP updater.
2015-10-01 16:36:51 -07:00
Roland Shoemaker 9287d7ecd8 Check a CT submission happens during integration tests 2015-09-28 16:17:41 -07:00
Jeff Hodges dbb3f4d999 Merge branch 'master' into static-responder 2015-09-24 10:13:05 -07:00
Jacob Hoffman-Andrews bc0d98a820 Fix amqp-integration-test.py when run alone.
Previously, test.sh was responsible for running venv/bin/activate, meaning that
`python test/amqp-integration-test.py` would fail to run the letsencrypt client.
Now, so long as LETSENCRYPT_PATH is already set to a valid dir (e.g. in your
.bashrc), `python test/amqp-integration-test.py` should work.
2015-09-23 17:06:14 -07:00
Jacob Hoffman-Andrews 540c792474 Add an OCSP responder that serves from a file.
This is useful for intermediate and root OCSP, which are generated manually one
a year.
2015-09-23 16:34:13 -07:00
Jacob Hoffman-Andrews 18e25ff67a Remove SERVER env var in integration test.
Per @Kuba, this is no longer needed for the letsencrypt client.
2015-09-09 16:54:13 -04:00
Jacob Hoffman-Andrews 9b9dd76f54 Fix flaky OCSP.
If two OCSP responses were generated in the same second, the earlier would
previously take priority sometimes, leading to a "good" response for revoked
certificates and causing the OCSP integration test to be flaky.
2015-08-24 15:31:26 -07:00
Jacob Hoffman-Andrews f6c21120b0 Add OCSP testing to integration test. 2015-08-20 09:37:24 -07:00
Jacob Hoffman-Andrews a4c4b473f1 Speed up start.py and integration test.
Run builds in parallell as well as starting servers in parallel.
Wait for the servers to come up, so tests don't start running too early.
Enable race detection only for the integration test, not for start.py.
Previously I'd suggested it should always be on, but after running with it for a
while I'm convinced it's too slow for start.py (but still very valuable for
integration tests!).
2015-07-28 18:07:22 -07:00
Tom Clegg 43c738cc93 Set GORACE env var only in "go build", not everywhere. 2015-07-25 14:51:22 -04:00
Tom Clegg de5cce8c03 De-duplicate start.py and test/amqp-integration-test.py 2015-07-25 04:04:20 -04:00
Jeff Hodges cfcd6dfc88 remove pkcs11 tag for build and test scripts
With #525 in place, we no longer need to worry about setting the pkcs11
tag everywhere.
2015-07-24 16:33:05 -07:00
Roland Shoemaker b569e6aa3d Review fixes 2015-07-20 11:27:40 -07:00
Roland Shoemaker 77ee133c0e Add tiny DNS server for client integration tests! 2015-07-17 21:53:30 -07:00
Jeff Hodges 24217f1cba run tests in CI with the race detector on
The race detector has found at least one race in our current code. See
issue #465. Turn it on for the unit and integration tests running in
TravisCI.

Also, allow the local user to add new test flags with the `GOTESTFLAGS`
environment variable.

To ease speed of debugging issues, the ability to skip the unit or
integration tests is also provided.
2015-07-16 09:43:11 -07:00
Jeff Hodges c110468366 harden test.sh and amqp-integration-test.py
amqp-integration-test.py gains a way to print out what processes
failed to start.

test.sh gains:

  * the ability to continue the build correctly if
LETSENCRYPT_PATH was provided but does not exist on disk.
  * an explanatory exit message if the LETSENCRYPT_PATH does
exist, but there is not finished build in it.
  * a working detection for a python 2.7 binary on OS X
2015-07-13 17:02:25 -07:00
J.C. Jones 4d3731ba73 Issue #419 - Provide more details from Travis on PRs.
This uses a node.js module to post `status` updates to Github, and uses a Travis
secret to authenticate.

- Post comments from static analysis tools
- Change to posting from LetsEncryptBot
- For integration testing, only fail if the compile fails, or
  the NodeJS-client fails. Log if the Python client fails.
2015-06-30 15:32:50 -07:00
Jakub Warmuz 596010968e
Pass SERVER to letsencrypt integration test, fix review comments. 2015-06-26 07:23:22 +00:00
Jakub Warmuz f8b3750c02
Run letsencrypt/tests/boulder-integration.sh from integration tests. 2015-06-26 06:32:10 +00:00
Jakub Warmuz 9e892b0773
integration tests: sync letsencrypt flags (config-dir/work-dir/logs-dir). 2015-06-26 05:36:15 +00:00
J.C. Jones ecf3cec9f6 Update execution of the integration test to match new parameters. 2015-06-25 15:05:51 -07:00
Jacob Hoffman-Andrews ee4626aa0d Integration test runs without root. 2015-06-19 14:12:23 -07:00
William Budington 76d76d33cd Adding integration tests.
Travis:
  * Downloads the Let's Encrypt client
  * Installs system requirements for client
  * Sets up virtualenv

Dockerfile:
  * Buildout for development
  * Includes numerous pacakges needed for integration testing
    (including all of the above in Travis)

test.sh:
  * If no path is defined for the LE client
    * Download the Let's Encrypt client
    * Set up virtualenv

test/amqp-integration-test.py:
  * Run client test with sensible defaults
  * One test: auth for foo.com
2015-06-19 12:18:23 -07:00
Jacob Hoffman-Andrews 2b2f4110d4 Revoke path should not end in slash. 2015-06-12 13:26:43 -07:00
Roland Shoemaker 28db5aab45 Merge master 2015-06-06 02:47:55 +01:00
Roland Shoemaker 23b0cfa29f Extend email parsing 2015-06-06 02:46:51 +01:00
Jacob Hoffman-Andrews 625eab5ad3 Move boulder to using local signer.
This allows us to use the same PKCS#11 key for both cert signing and OCSP
signing, and simplifies config and startup.

This also starts building with -tags pkcs11 in all scripts, which is required
now that the CA can choose between pkcs11 and non-pkcs11.

In order to successfully issue using a pkcs11 key, you'll need to run a version
of Go built off the master branch. The released versions are missing this
commit:
fe40cdd756,
which is necessary for PKCS#11 signing.
2015-06-05 08:13:39 -07:00
Jacob Hoffman-Andrews 1110666226 AMQP integration test improvements.
Clean up tempfiles on exit.
Print exceptions instead of hiding them.
Exit early if a build fails, and clean up processes that are running at the time.
Update README to reflect RabbitMQ requirement.
2015-06-02 13:39:05 -07:00
Jacob Hoffman-Andrews 38ef231c10 Make integration test fail correctly.
If a build command fails, try running the command, so shutdown can happen
normally and error can be handled there.
2015-06-02 12:02:14 -07:00
Roland Shoemaker e03a6b50d8 add 'npm install' 2015-06-02 12:02:05 -07:00
Roland Shoemaker be7943d432 quick cleanup 2015-06-02 12:02:05 -07:00
Roland Shoemaker af3abc97f6 add amqp-integration-test.py and use it in test.sh, also tell travis to give us RabbitMQ 2015-06-02 12:02:05 -07:00